On Tue, 17 Jun 2014, Dan Williams wrote:

> In the case where platform firmware has specified conflicting values for
> port locations it is confusing and otherwise not helpful to throw a
> backtrace.  Instead, include enough information to determine that
> firmware has done something wrong and globally disable port poweroff.


> @@ -251,6 +264,7 @@ static void link_peers_report(struct usb_port *left, 
> struct usb_port *right)
>               dev_warn(&left->dev, "failed to peer to %s (%d)\n",
>                               dev_name(&right->dev), rc);
>               pr_warn_once("usb: port power management may be unreliable\n");
> +             usb_port_block_power_off = 1;
>       }
>  }

Ironically, since you've got usb_port_block_power_off, you don't need 
to make this pr_warn_once().  Instead, you can do

                if (!usb_port_block_power_off) {
                        usb_port_block_power_off = 1;
                        pr_warn(...);
                }

which is pretty much what pr_warn_once() does.

Furthermore, since power poweroff is now globally disabled, you can say 
something stronger than "may be unreliable", such as "has been 
disabled".

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to