diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-22 22:22:33 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-22 22:22:33 -0400 |
commit | f09cc910fe3af7e63298105bc0482653eb534c3c (patch) | |
tree | a09dca8a3d033352edff6cb1d911f3cd0e980f1f /net/core | |
parent | 8b0eaccab4584ace24d233214bfee3cb50e49a60 (diff) | |
parent | ea2c47b42f12dadbad9d879fb6df102b9003ab82 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (30 commits)
[IPSEC] IPV6: Fix to add tunnel mode SA correctly.
[NET]: Cut off the queue_mapping field from sk_buff
[NET]: Hide the queue_mapping field inside netif_subqueue_stopped
[NET]: Make and use skb_get_queue_mapping
[NET]: Use the skb_set_queue_mapping where appropriate
[INET]: Use MODULE_ALIAS_NET_PF_PROTO_TYPE where possible.
[INET]: Let inet_diag and friends autoload
[NIU]: Cleanup PAGE_SIZE checks a bit
[NET]: Fix SKB_WITH_OVERHEAD calculation
[ATM]: Fix clip module reload crash.
[TG3]: Update version to 3.85
[TG3]: PCI command adjustment
[TG3]: Add management FW version to ethtool report
[TG3]: Add 5723 support
[Bluetooth] Convert RFCOMM to use kthread API
[Bluetooth] Add constant for Bluetooth socket options level
[Bluetooth] Add support for handling simple eSCO links
[Bluetooth] Add address and channel attribute to RFCOMM TTY device
[Bluetooth] Fix wrong argument in debug code of HIDP
[Bluetooth] Add generic driver for Bluetooth USB devices
...
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dev.c | 6 | ||||
-rw-r--r-- | net/core/neighbour.c | 3 | ||||
-rw-r--r-- | net/core/netpoll.c | 4 | ||||
-rw-r--r-- | net/core/pktgen.c | 12 |
4 files changed, 13 insertions, 12 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 38b03da5c1ca..872658927e47 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1553,7 +1553,7 @@ gso: | |||
1553 | return rc; | 1553 | return rc; |
1554 | } | 1554 | } |
1555 | if (unlikely((netif_queue_stopped(dev) || | 1555 | if (unlikely((netif_queue_stopped(dev) || |
1556 | netif_subqueue_stopped(dev, skb->queue_mapping)) && | 1556 | netif_subqueue_stopped(dev, skb)) && |
1557 | skb->next)) | 1557 | skb->next)) |
1558 | return NETDEV_TX_BUSY; | 1558 | return NETDEV_TX_BUSY; |
1559 | } while (skb->next); | 1559 | } while (skb->next); |
@@ -1661,7 +1661,7 @@ gso: | |||
1661 | q = dev->qdisc; | 1661 | q = dev->qdisc; |
1662 | if (q->enqueue) { | 1662 | if (q->enqueue) { |
1663 | /* reset queue_mapping to zero */ | 1663 | /* reset queue_mapping to zero */ |
1664 | skb->queue_mapping = 0; | 1664 | skb_set_queue_mapping(skb, 0); |
1665 | rc = q->enqueue(skb, q); | 1665 | rc = q->enqueue(skb, q); |
1666 | qdisc_run(dev); | 1666 | qdisc_run(dev); |
1667 | spin_unlock(&dev->queue_lock); | 1667 | spin_unlock(&dev->queue_lock); |
@@ -1692,7 +1692,7 @@ gso: | |||
1692 | HARD_TX_LOCK(dev, cpu); | 1692 | HARD_TX_LOCK(dev, cpu); |
1693 | 1693 | ||
1694 | if (!netif_queue_stopped(dev) && | 1694 | if (!netif_queue_stopped(dev) && |
1695 | !netif_subqueue_stopped(dev, skb->queue_mapping)) { | 1695 | !netif_subqueue_stopped(dev, skb)) { |
1696 | rc = 0; | 1696 | rc = 0; |
1697 | if (!dev_hard_start_xmit(skb, dev)) { | 1697 | if (!dev_hard_start_xmit(skb, dev)) { |
1698 | HARD_TX_UNLOCK(dev); | 1698 | HARD_TX_UNLOCK(dev); |
diff --git a/net/core/neighbour.c b/net/core/neighbour.c index 67ba9914e52e..05979e356963 100644 --- a/net/core/neighbour.c +++ b/net/core/neighbour.c | |||
@@ -1438,6 +1438,9 @@ int neigh_table_clear(struct neigh_table *tbl) | |||
1438 | free_percpu(tbl->stats); | 1438 | free_percpu(tbl->stats); |
1439 | tbl->stats = NULL; | 1439 | tbl->stats = NULL; |
1440 | 1440 | ||
1441 | kmem_cache_destroy(tbl->kmem_cachep); | ||
1442 | tbl->kmem_cachep = NULL; | ||
1443 | |||
1441 | return 0; | 1444 | return 0; |
1442 | } | 1445 | } |
1443 | 1446 | ||
diff --git a/net/core/netpoll.c b/net/core/netpoll.c index 95daba624967..bf8d18f1b013 100644 --- a/net/core/netpoll.c +++ b/net/core/netpoll.c | |||
@@ -67,7 +67,7 @@ static void queue_process(struct work_struct *work) | |||
67 | local_irq_save(flags); | 67 | local_irq_save(flags); |
68 | netif_tx_lock(dev); | 68 | netif_tx_lock(dev); |
69 | if ((netif_queue_stopped(dev) || | 69 | if ((netif_queue_stopped(dev) || |
70 | netif_subqueue_stopped(dev, skb->queue_mapping)) || | 70 | netif_subqueue_stopped(dev, skb)) || |
71 | dev->hard_start_xmit(skb, dev) != NETDEV_TX_OK) { | 71 | dev->hard_start_xmit(skb, dev) != NETDEV_TX_OK) { |
72 | skb_queue_head(&npinfo->txq, skb); | 72 | skb_queue_head(&npinfo->txq, skb); |
73 | netif_tx_unlock(dev); | 73 | netif_tx_unlock(dev); |
@@ -269,7 +269,7 @@ static void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb) | |||
269 | tries > 0; --tries) { | 269 | tries > 0; --tries) { |
270 | if (netif_tx_trylock(dev)) { | 270 | if (netif_tx_trylock(dev)) { |
271 | if (!netif_queue_stopped(dev) && | 271 | if (!netif_queue_stopped(dev) && |
272 | !netif_subqueue_stopped(dev, skb->queue_mapping)) | 272 | !netif_subqueue_stopped(dev, skb)) |
273 | status = dev->hard_start_xmit(skb, dev); | 273 | status = dev->hard_start_xmit(skb, dev); |
274 | netif_tx_unlock(dev); | 274 | netif_tx_unlock(dev); |
275 | 275 | ||
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index c4719edb55c0..de33f36947e9 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c | |||
@@ -2603,8 +2603,7 @@ static struct sk_buff *fill_packet_ipv4(struct net_device *odev, | |||
2603 | skb->network_header = skb->tail; | 2603 | skb->network_header = skb->tail; |
2604 | skb->transport_header = skb->network_header + sizeof(struct iphdr); | 2604 | skb->transport_header = skb->network_header + sizeof(struct iphdr); |
2605 | skb_put(skb, sizeof(struct iphdr) + sizeof(struct udphdr)); | 2605 | skb_put(skb, sizeof(struct iphdr) + sizeof(struct udphdr)); |
2606 | skb->queue_mapping = pkt_dev->cur_queue_map; | 2606 | skb_set_queue_mapping(skb, pkt_dev->cur_queue_map); |
2607 | |||
2608 | iph = ip_hdr(skb); | 2607 | iph = ip_hdr(skb); |
2609 | udph = udp_hdr(skb); | 2608 | udph = udp_hdr(skb); |
2610 | 2609 | ||
@@ -2941,8 +2940,7 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev, | |||
2941 | skb->network_header = skb->tail; | 2940 | skb->network_header = skb->tail; |
2942 | skb->transport_header = skb->network_header + sizeof(struct ipv6hdr); | 2941 | skb->transport_header = skb->network_header + sizeof(struct ipv6hdr); |
2943 | skb_put(skb, sizeof(struct ipv6hdr) + sizeof(struct udphdr)); | 2942 | skb_put(skb, sizeof(struct ipv6hdr) + sizeof(struct udphdr)); |
2944 | skb->queue_mapping = pkt_dev->cur_queue_map; | 2943 | skb_set_queue_mapping(skb, pkt_dev->cur_queue_map); |
2945 | |||
2946 | iph = ipv6_hdr(skb); | 2944 | iph = ipv6_hdr(skb); |
2947 | udph = udp_hdr(skb); | 2945 | udph = udp_hdr(skb); |
2948 | 2946 | ||
@@ -3385,7 +3383,7 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev) | |||
3385 | 3383 | ||
3386 | if ((netif_queue_stopped(odev) || | 3384 | if ((netif_queue_stopped(odev) || |
3387 | (pkt_dev->skb && | 3385 | (pkt_dev->skb && |
3388 | netif_subqueue_stopped(odev, pkt_dev->skb->queue_mapping))) || | 3386 | netif_subqueue_stopped(odev, pkt_dev->skb))) || |
3389 | need_resched()) { | 3387 | need_resched()) { |
3390 | idle_start = getCurUs(); | 3388 | idle_start = getCurUs(); |
3391 | 3389 | ||
@@ -3402,7 +3400,7 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev) | |||
3402 | pkt_dev->idle_acc += getCurUs() - idle_start; | 3400 | pkt_dev->idle_acc += getCurUs() - idle_start; |
3403 | 3401 | ||
3404 | if (netif_queue_stopped(odev) || | 3402 | if (netif_queue_stopped(odev) || |
3405 | netif_subqueue_stopped(odev, pkt_dev->skb->queue_mapping)) { | 3403 | netif_subqueue_stopped(odev, pkt_dev->skb)) { |
3406 | pkt_dev->next_tx_us = getCurUs(); /* TODO */ | 3404 | pkt_dev->next_tx_us = getCurUs(); /* TODO */ |
3407 | pkt_dev->next_tx_ns = 0; | 3405 | pkt_dev->next_tx_ns = 0; |
3408 | goto out; /* Try the next interface */ | 3406 | goto out; /* Try the next interface */ |
@@ -3431,7 +3429,7 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev) | |||
3431 | 3429 | ||
3432 | netif_tx_lock_bh(odev); | 3430 | netif_tx_lock_bh(odev); |
3433 | if (!netif_queue_stopped(odev) && | 3431 | if (!netif_queue_stopped(odev) && |
3434 | !netif_subqueue_stopped(odev, pkt_dev->skb->queue_mapping)) { | 3432 | !netif_subqueue_stopped(odev, pkt_dev->skb)) { |
3435 | 3433 | ||
3436 | atomic_inc(&(pkt_dev->skb->users)); | 3434 | atomic_inc(&(pkt_dev->skb->users)); |
3437 | retry_now: | 3435 | retry_now: |