summaryrefslogtreecommitdiffstats
path: root/drivers/usb/class/usblp.c
diff options
context:
space:
mode:
authorC. Adam Oldham <oldhamca@gmail.com>2005-06-02 23:16:34 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2005-06-27 23:44:01 +0200
commit2c45b6feb394337b4b468229632b8737375caf1d (patch)
treefc212281c5e750a6d0b3d0148007462f96c1728c /drivers/usb/class/usblp.c
parent[PATCH] USB: wireless usb <linux/usb_ch9.h> declarations (diff)
downloadlinux-2c45b6feb394337b4b468229632b8737375caf1d.tar.xz
linux-2c45b6feb394337b4b468229632b8737375caf1d.zip
[PATCH] USB: Fix race condition in usblp_write
Initialize status fields in the read and write urbs to prevent a race condition with open/read/close - open/write/close sequences. Fixes bug #4432 at bugzilla.kernel.org Signed-off-by: Adam Oldham <oldhamca@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/class/usblp.c')
-rw-r--r--drivers/usb/class/usblp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/usb/class/usblp.c b/drivers/usb/class/usblp.c
index bba22e97ea0f..dff134185c18 100644
--- a/drivers/usb/class/usblp.c
+++ b/drivers/usb/class/usblp.c
@@ -379,6 +379,8 @@ static int usblp_open(struct inode *inode, struct file *file)
usblp->writeurb->transfer_buffer_length = 0;
usblp->wcomplete = 1; /* we begin writeable */
usblp->rcomplete = 0;
+ usblp->writeurb->status = 0;
+ usblp->readurb->status = 0;
if (usblp->bidir) {
usblp->readcount = 0;