On Mon, 23 Jan 2006, David Brownell wrote:

> @@ -366,21 +366,39 @@ static int rh_call_control (struct usb_h
...
>       case DeviceOutRequest | USB_REQ_SET_FEATURE:
> -             if (hcd->can_wakeup && wValue == USB_DEVICE_REMOTE_WAKEUP)
> -                     hcd->remote_wakeup = 1;
> +             if (device_can_wakeup(&hcd->self.root_hub->dev)
> +                             && wValue == USB_DEVICE_REMOTE_WAKEUP)
> +                     device_set_wakeup_enable(&hcd->self.root_hub->dev, 1);

I realize that it's sort of an unimportant side effect, but it still seems
ironic that this code gets invoked when the root hub is suspended, _after_
the wakeup_enable setting has already been used during the root-hub
interface suspend (call to HCD's bus_suspend method).  In effect this is a
no-op.

> @@ -490,7 +508,7 @@ error:
>  
>               /* report whether RH hardware supports remote wakeup */
>               if (patch_wakeup &&
> -                             len > offsetof (struct usb_config_descriptor,
> +                             len >= offsetof (struct usb_config_descriptor,
>                                               bmAttributes))
>                       ((struct usb_config_descriptor *)ubuf)->bmAttributes
>                               |= USB_CONFIG_ATT_WAKEUP;

Looks like you just introduced an off-by-one error in code that used to
be okay.

Alan Stern



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to