aboutsummaryrefslogtreecommitdiffstats
path: root/net/core
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2009-04-16 20:35:26 -0400
committerDavid S. Miller <davem@davemloft.net>2009-04-16 20:35:26 -0400
commita54bfa40fd16aeb90bc556189221576f746f8567 (patch)
tree176bb7a99ffab5f42f0dd4e9671f335be3f3efa0 /net/core
parentfe957c40ec5e2763b9977c565beab3bde3aaf85b (diff)
parent134ffb4cad92a6aa534e55a9be145bca780a32c1 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'net/core')
-rw-r--r--net/core/dev.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/net/core/dev.c b/net/core/dev.c
index 619fa141b8f5..cfc614ec3719 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -1430,7 +1430,7 @@ void netif_device_detach(struct net_device *dev)
1430{ 1430{
1431 if (test_and_clear_bit(__LINK_STATE_PRESENT, &dev->state) && 1431 if (test_and_clear_bit(__LINK_STATE_PRESENT, &dev->state) &&
1432 netif_running(dev)) { 1432 netif_running(dev)) {
1433 netif_stop_queue(dev); 1433 netif_tx_stop_all_queues(dev);
1434 } 1434 }
1435} 1435}
1436EXPORT_SYMBOL(netif_device_detach); 1436EXPORT_SYMBOL(netif_device_detach);
@@ -1445,7 +1445,7 @@ void netif_device_attach(struct net_device *dev)
1445{ 1445{
1446 if (!test_and_set_bit(__LINK_STATE_PRESENT, &dev->state) && 1446 if (!test_and_set_bit(__LINK_STATE_PRESENT, &dev->state) &&
1447 netif_running(dev)) { 1447 netif_running(dev)) {
1448 netif_wake_queue(dev); 1448 netif_tx_wake_all_queues(dev);
1449 __netdev_watchdog_up(dev); 1449 __netdev_watchdog_up(dev);
1450 } 1450 }
1451} 1451}
@@ -2328,8 +2328,10 @@ static int napi_gro_complete(struct sk_buff *skb)
2328 struct list_head *head = &ptype_base[ntohs(type) & PTYPE_HASH_MASK]; 2328 struct list_head *head = &ptype_base[ntohs(type) & PTYPE_HASH_MASK];
2329 int err = -ENOENT; 2329 int err = -ENOENT;
2330 2330
2331 if (NAPI_GRO_CB(skb)->count == 1) 2331 if (NAPI_GRO_CB(skb)->count == 1) {
2332 skb_shinfo(skb)->gso_size = 0;
2332 goto out; 2333 goto out;
2334 }
2333 2335
2334 rcu_read_lock(); 2336 rcu_read_lock();
2335 list_for_each_entry_rcu(ptype, head, list) { 2337 list_for_each_entry_rcu(ptype, head, list) {
@@ -2348,7 +2350,6 @@ static int napi_gro_complete(struct sk_buff *skb)
2348 } 2350 }
2349 2351
2350out: 2352out:
2351 skb_shinfo(skb)->gso_size = 0;
2352 return netif_receive_skb(skb); 2353 return netif_receive_skb(skb);
2353} 2354}
2354 2355