aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Neukum <oneukum@suse.de>2015-03-20 09:29:34 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-03-26 05:51:56 -0400
commit323ece54e0761198946ecd0c2091f1d2bfdfcb64 (patch)
treebee86d63d7e65023fd2403eda48850d251935b05
parent28965e17ee7a9591c241b831fee050d2391688c6 (diff)
cdc-wdm: fix endianness bug in debug statements
Values directly from descriptors given in debug statements must be converted to native endianness. Signed-off-by: Oliver Neukum <oneukum@suse.de> CC: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/class/cdc-wdm.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
index cdc93d066991..8e32b8d8115e 100644
--- a/drivers/usb/class/cdc-wdm.c
+++ b/drivers/usb/class/cdc-wdm.c
@@ -245,7 +245,7 @@ static void wdm_int_callback(struct urb *urb)
245 case USB_CDC_NOTIFY_RESPONSE_AVAILABLE: 245 case USB_CDC_NOTIFY_RESPONSE_AVAILABLE:
246 dev_dbg(&desc->intf->dev, 246 dev_dbg(&desc->intf->dev,
247 "NOTIFY_RESPONSE_AVAILABLE received: index %d len %d", 247 "NOTIFY_RESPONSE_AVAILABLE received: index %d len %d",
248 dr->wIndex, dr->wLength); 248 le16_to_cpu(dr->wIndex), le16_to_cpu(dr->wLength));
249 break; 249 break;
250 250
251 case USB_CDC_NOTIFY_NETWORK_CONNECTION: 251 case USB_CDC_NOTIFY_NETWORK_CONNECTION:
@@ -262,7 +262,9 @@ static void wdm_int_callback(struct urb *urb)
262 clear_bit(WDM_POLL_RUNNING, &desc->flags); 262 clear_bit(WDM_POLL_RUNNING, &desc->flags);
263 dev_err(&desc->intf->dev, 263 dev_err(&desc->intf->dev,
264 "unknown notification %d received: index %d len %d\n", 264 "unknown notification %d received: index %d len %d\n",
265 dr->bNotificationType, dr->wIndex, dr->wLength); 265 dr->bNotificationType,
266 le16_to_cpu(dr->wIndex),
267 le16_to_cpu(dr->wLength));
266 goto exit; 268 goto exit;
267 } 269 }
268 270
@@ -402,7 +404,7 @@ static ssize_t wdm_write
402 USB_RECIP_INTERFACE); 404 USB_RECIP_INTERFACE);
403 req->bRequest = USB_CDC_SEND_ENCAPSULATED_COMMAND; 405 req->bRequest = USB_CDC_SEND_ENCAPSULATED_COMMAND;
404 req->wValue = 0; 406 req->wValue = 0;
405 req->wIndex = desc->inum; 407 req->wIndex = desc->inum; /* already converted */
406 req->wLength = cpu_to_le16(count); 408 req->wLength = cpu_to_le16(count);
407 set_bit(WDM_IN_USE, &desc->flags); 409 set_bit(WDM_IN_USE, &desc->flags);
408 desc->outbuf = buf; 410 desc->outbuf = buf;
@@ -416,7 +418,7 @@ static ssize_t wdm_write
416 goto out_free_mem_pm; 418 goto out_free_mem_pm;
417 } else { 419 } else {
418 dev_dbg(&desc->intf->dev, "Tx URB has been submitted index=%d", 420 dev_dbg(&desc->intf->dev, "Tx URB has been submitted index=%d",
419 req->wIndex); 421 le16_to_cpu(req->wIndex));
420 } 422 }
421 423
422 usb_autopm_put_interface(desc->intf); 424 usb_autopm_put_interface(desc->intf);
@@ -821,7 +823,7 @@ static int wdm_create(struct usb_interface *intf, struct usb_endpoint_descriptor
821 desc->irq->bRequestType = (USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE); 823 desc->irq->bRequestType = (USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE);
822 desc->irq->bRequest = USB_CDC_GET_ENCAPSULATED_RESPONSE; 824 desc->irq->bRequest = USB_CDC_GET_ENCAPSULATED_RESPONSE;
823 desc->irq->wValue = 0; 825 desc->irq->wValue = 0;
824 desc->irq->wIndex = desc->inum; 826 desc->irq->wIndex = desc->inum; /* already converted */
825 desc->irq->wLength = cpu_to_le16(desc->wMaxCommand); 827 desc->irq->wLength = cpu_to_le16(desc->wMaxCommand);
826 828
827 usb_fill_control_urb( 829 usb_fill_control_urb(