diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-11 12:33:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-11 12:33:18 -0400 |
commit | 4dd9ec4946b4651a295d3bc8df9c15ac692a8f4e (patch) | |
tree | afb300c752de7175bb2df4722d5c857e070c75d9 /drivers/usb | |
parent | 86ed5a93b8b56e4e0877b914af0e10883a196384 (diff) | |
parent | 6861ff35ec5b60fafaf8651754c9a75142bfa9a4 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1075 commits)
myri10ge: update driver version number to 1.4.3-1.369
r8169: add shutdown handler
r8169: preliminary 8168d support
r8169: support additional 8168cp chipset
r8169: change default behavior for mildly identified 8168c chipsets
r8169: add a new 8168cp flavor
r8169: add a new 8168c flavor (bis)
r8169: add a new 8168c flavor
r8169: sync existing 8168 device hardware start sequences with vendor driver
r8169: 8168b Tx performance tweak
r8169: make room for more specific 8168 hardware start procedure
r8169: shuffle some registers handling around (8168 operation only)
r8169: new phy init parameters for the 8168b
r8169: update phy init parameters
r8169: wake up the PHY of the 8168
af_key: fix SADB_X_SPDDELETE response
ath9k: Fix return code when ath9k_hw_setpower() fails on reset
ath9k: remove nasty FAIL macro from ath9k_hw_reset()
gre: minor cleanups in netlink interface
gre: fix copy and paste error
...
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/atm/usbatm.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c index 07228721cafe..0da2c25bab3b 100644 --- a/drivers/usb/atm/usbatm.c +++ b/drivers/usb/atm/usbatm.c | |||
@@ -640,14 +640,13 @@ static void usbatm_cancel_send(struct usbatm_data *instance, | |||
640 | 640 | ||
641 | atm_dbg(instance, "%s entered\n", __func__); | 641 | atm_dbg(instance, "%s entered\n", __func__); |
642 | spin_lock_irq(&instance->sndqueue.lock); | 642 | spin_lock_irq(&instance->sndqueue.lock); |
643 | for (skb = instance->sndqueue.next, n = skb->next; | 643 | skb_queue_walk_safe(&instance->sndqueue, skb, n) { |
644 | skb != (struct sk_buff *)&instance->sndqueue; | ||
645 | skb = n, n = skb->next) | ||
646 | if (UDSL_SKB(skb)->atm.vcc == vcc) { | 644 | if (UDSL_SKB(skb)->atm.vcc == vcc) { |
647 | atm_dbg(instance, "%s: popping skb 0x%p\n", __func__, skb); | 645 | atm_dbg(instance, "%s: popping skb 0x%p\n", __func__, skb); |
648 | __skb_unlink(skb, &instance->sndqueue); | 646 | __skb_unlink(skb, &instance->sndqueue); |
649 | usbatm_pop(vcc, skb); | 647 | usbatm_pop(vcc, skb); |
650 | } | 648 | } |
649 | } | ||
651 | spin_unlock_irq(&instance->sndqueue.lock); | 650 | spin_unlock_irq(&instance->sndqueue.lock); |
652 | 651 | ||
653 | tasklet_disable(&instance->tx_channel.tasklet); | 652 | tasklet_disable(&instance->tx_channel.tasklet); |