summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.de>2014-05-19 13:52:20 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-05-27 16:03:58 -0700
commitc78d1ecfd7e639f21c7a809f4df6de1a644a91f0 (patch)
treee97d8999e4a7dc159f26153fc56fc76d746dc874
parent552e1f2679b7b766b8b8de3dc6d83d9cd28f28b2 (diff)
downloadlinux-c78d1ecfd7e639f21c7a809f4df6de1a644a91f0.tar.bz2
USB: yurex: fix race between probe() and read()
There's a window during which read() would return 0 instead of a correct error for no data yet. Reorder initialization to fix the race. Signed-off-by: Oliver Neukum <oneukum@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/misc/yurex.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
index 24278208bf74..1472805083de 100644
--- a/drivers/usb/misc/yurex.c
+++ b/drivers/usb/misc/yurex.c
@@ -296,6 +296,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
/* save our data pointer in this interface device */
usb_set_intfdata(interface, dev);
+ dev->bbu = -1;
/* we can register the device now, as it is ready */
retval = usb_register_dev(interface, &yurex_class);
@@ -306,8 +307,6 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
goto error;
}
- dev->bbu = -1;
-
dev_info(&interface->dev,
"USB YUREX device now attached to Yurex #%d\n",
interface->minor);