Re: [PATCH] usbhid: use GFP_NOIO in reset code path

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

 



Oliver Neukum <oliver@xxxxxxxxxx> writes:

> For mice with card readers the HID driver can deadlock
> as its post_reset() method allocates memory. GFP_NOIO
> must be used in a block layer error handler, which
> usbhid can be indirectly part of.

I am wondering a bit where this will eventually end.  Given enough time,
I assume we will see all USB interface drivers attached to some
composite device with a usb-storage function.  Although it probably
won't hurt that much, it feels somewhat wrong to put unnecessary
restrictions into all existing interface drivers just because there is
some device which in theory could cause the driver to lockup.  After
all, I am pretty sure that more than 99% of the devices using the mouse
driver won't have a card reader.

Instead of assuming the worst, wouldn't it make more sense to add some
real knowledge about the composite device restrictions at the device
level, and then use this knowledge in the interface drivers?

Maybe let drivers like usb-storage register a restriction and create a
pm_or_reset_gfp(struct usb_device *) function returning the appropriate
flag for the other interface drivers?  This function could the return
GFP_KERNEL to the mouse driver for the common single HID function
device, and GFP_NOIO for the composite mouse+storage device.


Bjørn
--
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