lkml.org 
[lkml]   [2012]   [Oct]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[ 05/52] usb: gadget: dummy_hcd: fixup error probe path
    Date
    3.4-stable review patch.  If anyone has any objections, please let me know.

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

    From: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>

    commit 1b68a4ca2d038addb7314211d122fb6d7002b38b upstream.

    If USB2 host controller probes fine but USB3 does not then we don't
    remove the USB controller properly and lock up the system while the HUB
    code will try to enumerate the USB2 controller and access memory which
    is no longer available in case the dummy_hcd was compiled as a module.

    This is a problem since 448b6eb1 ("USB: Make sure to fetch the BOS desc
    for roothubs.) if used in USB3 mode because dummy does not provide this
    descriptor and explodes later.

    Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/usb/gadget/dummy_hcd.c | 8 ++++----
    1 file changed, 4 insertions(+), 4 deletions(-)

    --- a/drivers/usb/gadget/dummy_hcd.c
    +++ b/drivers/usb/gadget/dummy_hcd.c
    @@ -2505,10 +2505,8 @@ static int dummy_hcd_probe(struct platfo
    hs_hcd->has_tt = 1;

    retval = usb_add_hcd(hs_hcd, 0, 0);
    - if (retval != 0) {
    - usb_put_hcd(hs_hcd);
    - return retval;
    - }
    + if (retval)
    + goto put_usb2_hcd;

    if (mod_data.is_super_speed) {
    ss_hcd = usb_create_shared_hcd(&dummy_hcd, &pdev->dev,
    @@ -2527,6 +2525,8 @@ static int dummy_hcd_probe(struct platfo
    put_usb3_hcd:
    usb_put_hcd(ss_hcd);
    dealloc_usb2_hcd:
    + usb_remove_hcd(hs_hcd);
    +put_usb2_hcd:
    usb_put_hcd(hs_hcd);
    the_controller.hs_hcd = the_controller.ss_hcd = NULL;
    return retval;



    \
     
     \ /
      Last update: 2012-10-05 02:01    [W:4.046 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site