On Wed, 31 Jan 2007, Oliver Neukum wrote:

> In fact it should do this to all devices which are HID, claimed by the 
> input layer and support remote wakeup.

>From a quick look, in addition to Alan's comments, it seems to me that you 
don't handle a case in which the hid driver decides to send an output 
report to the suspended device.

A first example that comes to mind - suppose that you have two keyboards, 
at least one of them being HID. Now when the timer expires, the HID 
keyboard will be suspended. Then when you hit a capslock/numlock/... 
(basically anything corresponding to the EV_LED event) on the second 
(non-suspended) one, you will get errors from hid_submit_ctrl(), as it 
will try to deliver a report to the suspended device and it will of course 
fail to do so.

> +static ssize_t set_idle_time(struct device *dev, struct device_attribute 
> *attr, const char *buf, size_t count)
> +{
> +     struct usb_interface *intf = to_usb_interface(dev);             \
> +     struct hid_device *hh = usb_get_intfdata(intf);
> +     struct usbhid_device *uh = hh->driver_data;
> +     int old = uh->idle_time;
> +     int temp = simple_strtoul(buf, NULL, 10);
> +
> +     spin_lock_irq(&idle_guard);
> +     uh->idle_time = temp;
> +     spin_unlock_irq(&idle_guard);
> +
> +     return count;
> +}

You declare and initialize local old variable here, but never use it.

Thanks,

-- 
Jiri Kosina

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
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