Re: [PATCH v2 1/3] usb: add is_usb_mouse routine and remote wakeup quirk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 28, 2013 at 11:13:12AM +0800, Huang Rui wrote:
> This patch add a routine to judge if the usb device is a mouse or not.
> The is_usb_mouse only has one input parameter of usb_device. The
> return value is bool type, and true means this device is mouse and
> vice-versa.

No, sorry, this isn't ok for a number of reasons.

You got "lucky" in that you can duplicate this with a mouse, the fact
that it is a mouse that caused your problems should never mean that the
os only triggers on a mouse device.  I can create a "keyboard" device
that has the exact same USB characteristics that a mouse does, that
should also be able to trigger your problem.  Or a vendor specific
device.

That's why the USB core doesn't care about the device type, they are all
just "pipes".  So please deal with it on that level, never do something
only depending on the "type" of device plugged into the system.

> It also add a remote wakeup quirk for some special AMD platforms. This
> quirk filters southbridge revision which is 0x39 or 0x3a.

Whenever your changelog description has the phrase "it also...", that is
a big hint that you should be breaking this up into multiple patches.
You are doing two different things in this patch, which is another
reason why I can't take it.

Please fix this up properly, and that means, not doing things depending
on the "type" of device, from a protocol standpoint, as that is always
wrong.

Hint, I bet you didn't fix this bug in Windows this way, right?  :)

thanks,

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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux