lkml.org 
[lkml]   [2015]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 3.12 019/142] cdc-wdm: fix endianness bug in debug statements
    Date
    From: Oliver Neukum <oneukum@suse.de>

    3.12-stable review patch. If anyone has any objections, please let me know.

    ===============

    commit 323ece54e0761198946ecd0c2091f1d2bfdfcb64 upstream.

    Values directly from descriptors given in debug statements
    must be converted to native endianness.

    Signed-off-by: Oliver Neukum <oneukum@suse.de>
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    ---
    drivers/usb/class/cdc-wdm.c | 12 +++++++-----
    1 file changed, 7 insertions(+), 5 deletions(-)

    diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
    index 6463ca3bcfba..07133d0c971b 100644
    --- a/drivers/usb/class/cdc-wdm.c
    +++ b/drivers/usb/class/cdc-wdm.c
    @@ -244,7 +244,7 @@ static void wdm_int_callback(struct urb *urb)
    case USB_CDC_NOTIFY_RESPONSE_AVAILABLE:
    dev_dbg(&desc->intf->dev,
    "NOTIFY_RESPONSE_AVAILABLE received: index %d len %d",
    - dr->wIndex, dr->wLength);
    + le16_to_cpu(dr->wIndex), le16_to_cpu(dr->wLength));
    break;

    case USB_CDC_NOTIFY_NETWORK_CONNECTION:
    @@ -257,7 +257,9 @@ static void wdm_int_callback(struct urb *urb)
    clear_bit(WDM_POLL_RUNNING, &desc->flags);
    dev_err(&desc->intf->dev,
    "unknown notification %d received: index %d len %d\n",
    - dr->bNotificationType, dr->wIndex, dr->wLength);
    + dr->bNotificationType,
    + le16_to_cpu(dr->wIndex),
    + le16_to_cpu(dr->wLength));
    goto exit;
    }

    @@ -403,7 +405,7 @@ static ssize_t wdm_write
    USB_RECIP_INTERFACE);
    req->bRequest = USB_CDC_SEND_ENCAPSULATED_COMMAND;
    req->wValue = 0;
    - req->wIndex = desc->inum;
    + req->wIndex = desc->inum; /* already converted */
    req->wLength = cpu_to_le16(count);
    set_bit(WDM_IN_USE, &desc->flags);
    desc->outbuf = buf;
    @@ -417,7 +419,7 @@ static ssize_t wdm_write
    rv = usb_translate_errors(rv);
    } else {
    dev_dbg(&desc->intf->dev, "Tx URB has been submitted index=%d",
    - req->wIndex);
    + le16_to_cpu(req->wIndex));
    }
    out:
    usb_autopm_put_interface(desc->intf);
    @@ -780,7 +782,7 @@ static int wdm_create(struct usb_interface *intf, struct usb_endpoint_descriptor
    desc->irq->bRequestType = (USB_DIR_IN | USB_TYPE_CLASS | USB_RECIP_INTERFACE);
    desc->irq->bRequest = USB_CDC_GET_ENCAPSULATED_RESPONSE;
    desc->irq->wValue = 0;
    - desc->irq->wIndex = desc->inum;
    + desc->irq->wIndex = desc->inum; /* already converted */
    desc->irq->wLength = cpu_to_le16(desc->wMaxCommand);

    usb_fill_control_urb(
    --
    2.3.7


    \
     
     \ /
      Last update: 2015-05-16 10:41    [W:3.661 / U:0.084 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site