lkml.org 
[lkml]   [2005]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 16/22] USB: fix race in kaweth disconnect
    From: Herbert Xu <herbert@gondor.apana.org.au>

    this patch from Herbert Xu fixes a race by moving termination of
    the URBs into close() exclusively.

    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Oliver Neukum <oliver@neukum.name>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/usb/net/kaweth.c | 13 +------------
    1 file changed, 1 insertion(+), 12 deletions(-)
    --- usb-2.6.orig/drivers/usb/net/kaweth.c
    +++ usb-2.6/drivers/usb/net/kaweth.c
    @@ -219,7 +219,6 @@ struct kaweth_device

    __u32 status;
    int end;
    - int removed;
    int suspend_lowmem_rx;
    int suspend_lowmem_ctrl;
    int linkstate;
    @@ -699,6 +698,7 @@ static int kaweth_close(struct net_devic

    usb_kill_urb(kaweth->irq_urb);
    usb_kill_urb(kaweth->rx_urb);
    + usb_kill_urb(kaweth->tx_urb);

    flush_scheduled_work();

    @@ -750,13 +750,6 @@ static int kaweth_start_xmit(struct sk_b

    spin_lock(&kaweth->device_lock);

    - if (kaweth->removed) {
    - /* our device is undergoing disconnection - we bail out */
    - spin_unlock(&kaweth->device_lock);
    - dev_kfree_skb_irq(skb);
    - return 0;
    - }
    -
    kaweth_async_set_rx_mode(kaweth);
    netif_stop_queue(net);

    @@ -1136,10 +1129,6 @@ static void kaweth_disconnect(struct usb
    return;
    }
    netdev = kaweth->net;
    - kaweth->removed = 1;
    - usb_kill_urb(kaweth->irq_urb);
    - usb_kill_urb(kaweth->rx_urb);
    - usb_kill_urb(kaweth->tx_urb);

    kaweth_dbg("Unregistering net device");
    unregister_netdev(netdev);
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-11-17 19:13    [from the cache]
    ©2003-2014 Jasper Spaans. Advertise on this site