lkml.org 
[lkml]   [2011]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[04/26] usb/config: use proper endian access for wMaxPacketSize
    3.0-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

    commit 7de7c7d2cb49900e0b967be871bf695c7d6135c9 upstream.

    wMaxPacketSize is __le16 and should be accessed as such. Also fix the
    wBytesPerInterval assignment while here.

    v2: also fix the wBytesPerInterval assigment, noticed by Matt Evans

    This patch should be backported to the 3.0 kernel.

    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
    Acked-by: Matt Evans <matt@ozlabs.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/usb/core/config.c | 11 ++++++-----
    1 file changed, 6 insertions(+), 5 deletions(-)

    --- a/drivers/usb/core/config.c
    +++ b/drivers/usb/core/config.c
    @@ -123,10 +123,11 @@ static void usb_parse_ss_endpoint_compan
    }

    if (usb_endpoint_xfer_isoc(&ep->desc))
    - max_tx = ep->desc.wMaxPacketSize * (desc->bMaxBurst + 1) *
    - (desc->bmAttributes + 1);
    + max_tx = (desc->bMaxBurst + 1) * (desc->bmAttributes + 1) *
    + le16_to_cpu(ep->desc.wMaxPacketSize);
    else if (usb_endpoint_xfer_int(&ep->desc))
    - max_tx = ep->desc.wMaxPacketSize * (desc->bMaxBurst + 1);
    + max_tx = le16_to_cpu(ep->desc.wMaxPacketSize) *
    + (desc->bMaxBurst + 1);
    else
    max_tx = 999999;
    if (le16_to_cpu(desc->wBytesPerInterval) > max_tx) {
    @@ -134,10 +135,10 @@ static void usb_parse_ss_endpoint_compan
    "config %d interface %d altsetting %d ep %d: "
    "setting to %d\n",
    usb_endpoint_xfer_isoc(&ep->desc) ? "Isoc" : "Int",
    - desc->wBytesPerInterval,
    + le16_to_cpu(desc->wBytesPerInterval),
    cfgno, inum, asnum, ep->desc.bEndpointAddress,
    max_tx);
    - ep->ss_ep_comp.wBytesPerInterval = max_tx;
    + ep->ss_ep_comp.wBytesPerInterval = cpu_to_le16(max_tx);
    }
    }




    \
     
     \ /
      Last update: 2011-08-16 04:55    [W:0.019 / U:32.168 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site