Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

USB: fix error handling in trancevibrator

trancevibrator should not pretend success if it returns an error.

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

authored by

Oliver Neukum and committed by
Greg Kroah-Hartman
0cc5e2e7 efa66f14

+3 -1
+3 -1
drivers/usb/misc/trancevibrator.c
··· 59 59 { 60 60 struct usb_interface *intf = to_usb_interface(dev); 61 61 struct trancevibrator *tv = usb_get_intfdata(intf); 62 - int temp, retval; 62 + int temp, retval, old; 63 63 64 64 temp = simple_strtoul(buf, NULL, 10); 65 65 if (temp > 255) 66 66 temp = 255; 67 67 else if (temp < 0) 68 68 temp = 0; 69 + old = tv->speed; 69 70 tv->speed = temp; 70 71 71 72 dev_dbg(&tv->udev->dev, "speed = %d\n", tv->speed); ··· 78 77 tv->speed, /* speed value */ 79 78 0, NULL, 0, USB_CTRL_GET_TIMEOUT); 80 79 if (retval) { 80 + tv->speed = old; 81 81 dev_dbg(&tv->udev->dev, "retval = %d\n", retval); 82 82 return retval; 83 83 }