Messages in this thread |  | | | Date | Thu, 22 Jan 2009 12:42:37 +0100 | | From | Pavel Machek <> | | Subject | Re: [PATCH] w35und: fix usb_control_msg() error handling in wb35_probe() |
| |
> From: Pekka Enberg <penberg@cs.helsinki.fi> > > If successful, the usb_control_msg() function returns the number of > bytes transferred. Fix up wb35_probe() to only bail out if the function > returns a negative number. > > Reported-by: Sandro Bonazzola <sandro.bonazzola@gmail.com> > Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Acked-by: Pavel Machek <pavel@suse.cz>
> --- > drivers/staging/winbond/wbusb.c | 14 ++++++++------ > 1 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c > index fd5c8eb..7ced028 100644 > --- a/drivers/staging/winbond/wbusb.c > +++ b/drivers/staging/winbond/wbusb.c > @@ -302,17 +302,19 @@ static int wb35_probe(struct usb_interface *intf, > struct usb_device *udev = interface_to_usbdev(intf); > struct wbsoft_priv *priv; > struct ieee80211_hw *dev; > - int err; > + int err, nr; > > usb_get_dev(udev); > > /* Check if the device has already been opened */ > - err = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), > - 0x01, > - USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, > - 0x0, 0x400, <mp, 4, HZ * 100); > - if (err) > + nr = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0), > + 0x01, > + USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN, > + 0x0, 0x400, <mp, 4, HZ * 100); > + if (nr < 0) { > + err = nr; > goto error; > + } > > /* Is already initialized? */ > ltmp = cpu_to_le32(ltmp);
-- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
|  |