diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-26 13:08:13 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-26 13:08:13 -0400 |
commit | 61a46dc9d1c10d07a2ed6b7d346b868803b52506 (patch) | |
tree | ac81648c6aa7315f42d1d17455ddf7f09d14e6b6 /net/core/dev.c | |
parent | b78709cfd4387c15a9894748bcada8a4ca75c561 (diff) | |
parent | 8070b2b1ecbeb5437c92c33b4dcea1d8d80399ee (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
[IOAT]: Do not dereference THIS_MODULE directly to set unsafe.
[NETROM]: Fix possible null pointer dereference.
[NET] netpoll: break recursive loop in netpoll rx path
[NET] netpoll: don't spin forever sending to stopped queues
[IRDA]: add some IBM think pads
[ATM]: atm/mpc.c warning fix
[NET]: skb_find_text ignores to argument
[NET]: make net/core/dev.c:netdev_nit static
[NET]: Fix GSO problems in dev_hard_start_xmit()
[NET]: Fix CHECKSUM_HW GSO problems.
[TIPC]: Fix incorrect correction to discovery timer frequency computation.
[TIPC]: Get rid of dynamically allocated arrays in broadcast code.
[TIPC]: Fixed link switchover bugs
[TIPC]: Enhanced & cleaned up system messages; fixed 2 obscure memory leaks.
[TIPC]: First phase of assert() cleanup
[TIPC]: Disallow config operations that aren't supported in certain modes.
[TIPC]: Fixed memory leak in tipc_link_send() when destination is unreachable
[TIPC]: Added missing warning for out-of-memory condition
[TIPC]: Withdrawing all names from nameless port now returns success, not error
[TIPC]: Optimized argument validation done by connect().
...
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index ea2469398bd5..f1c52cbd6ef7 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -230,7 +230,7 @@ extern void netdev_unregister_sysfs(struct net_device *); | |||
230 | * For efficiency | 230 | * For efficiency |
231 | */ | 231 | */ |
232 | 232 | ||
233 | int netdev_nit; | 233 | static int netdev_nit; |
234 | 234 | ||
235 | /* | 235 | /* |
236 | * Add a protocol ID to the list. Now that the input handler is | 236 | * Add a protocol ID to the list. Now that the input handler is |
@@ -1325,9 +1325,12 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev) | |||
1325 | nskb->next = NULL; | 1325 | nskb->next = NULL; |
1326 | rc = dev->hard_start_xmit(nskb, dev); | 1326 | rc = dev->hard_start_xmit(nskb, dev); |
1327 | if (unlikely(rc)) { | 1327 | if (unlikely(rc)) { |
1328 | nskb->next = skb->next; | ||
1328 | skb->next = nskb; | 1329 | skb->next = nskb; |
1329 | return rc; | 1330 | return rc; |
1330 | } | 1331 | } |
1332 | if (unlikely(netif_queue_stopped(dev) && skb->next)) | ||
1333 | return NETDEV_TX_BUSY; | ||
1331 | } while (skb->next); | 1334 | } while (skb->next); |
1332 | 1335 | ||
1333 | skb->destructor = DEV_GSO_CB(skb)->destructor; | 1336 | skb->destructor = DEV_GSO_CB(skb)->destructor; |