summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2013-01-24 21:04:13 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-24 23:03:56 +0100
commitbdb6bc06f7d694652c12fb8779bb031c2f220823 (patch)
tree26e79c17b43906807b735dd41b8f5edf3a78ff75
parentUSB: uhci: beautify source code (diff)
downloadlinux-bdb6bc06f7d694652c12fb8779bb031c2f220823.tar.xz
linux-bdb6bc06f7d694652c12fb8779bb031c2f220823.zip
USB: fix sign-extension bug in the hub driver
This patch (as1646) fixes a long-standing bug in the USB hub driver. Upon conversion from char to unsigned long, the bytes in the status buffer are subject to unwanted sign extension. The bytes should be declared as u8 rather than char, to prevent this. This effects of this bug are minimal. The hub driver may end up doing a little unnecessary extra work because it thinks events have occurred on some ports when they really haven't. Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/core/hub.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h
index d16a7c98aea9..c472058f8f27 100644
--- a/drivers/usb/core/hub.h
+++ b/drivers/usb/core/hub.h
@@ -31,7 +31,7 @@ struct usb_hub {
struct urb *urb; /* for interrupt polling pipe */
/* buffer for urb ... with extra space in case of babble */
- char (*buffer)[8];
+ u8 (*buffer)[8];
union {
struct usb_hub_status hub;
struct usb_port_status port;