Messages in this thread |  | | | From | Oliver Neukum <> | | Subject | Re: [PATCH] USB: USBHID: Fix race between disconnect and hiddev_ioctl | | Date | Sat, 4 Dec 2010 21:22:23 +0100 |
| |
Am Samstag, 4. Dezember 2010, 00:16:12 schrieb Dmitry Torokhov: > > Since disconnect can happen at any time, we can't initialize > > struct hid_device *hid = hiddev->hid at the beginning of ioctl > > and then use it. > > > > This change checks hiddev->exist flag while holding > > the existancelock and uses hid_device only if it exists. > > Why didn't you take the lock and check hiddev->exist at the beginning of > ioctl handler instead of pushing it down into individual command > handlers? I guess it would slow down HIDIOCGVERSION but I think we could > pay this price for code that is more clear ;)
Strictly speaking you'd change the semantics. Right now you can execute the ioctl even if you know you are holding an fd to a disconnected device open.
Regards Oliver
|  |