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 ...
This commit is contained in:
@ -1553,7 +1553,7 @@ gso:
|
||||
return rc;
|
||||
}
|
||||
if (unlikely((netif_queue_stopped(dev) ||
|
||||
netif_subqueue_stopped(dev, skb->queue_mapping)) &&
|
||||
netif_subqueue_stopped(dev, skb)) &&
|
||||
skb->next))
|
||||
return NETDEV_TX_BUSY;
|
||||
} while (skb->next);
|
||||
@ -1661,7 +1661,7 @@ gso:
|
||||
q = dev->qdisc;
|
||||
if (q->enqueue) {
|
||||
/* reset queue_mapping to zero */
|
||||
skb->queue_mapping = 0;
|
||||
skb_set_queue_mapping(skb, 0);
|
||||
rc = q->enqueue(skb, q);
|
||||
qdisc_run(dev);
|
||||
spin_unlock(&dev->queue_lock);
|
||||
@ -1692,7 +1692,7 @@ gso:
|
||||
HARD_TX_LOCK(dev, cpu);
|
||||
|
||||
if (!netif_queue_stopped(dev) &&
|
||||
!netif_subqueue_stopped(dev, skb->queue_mapping)) {
|
||||
!netif_subqueue_stopped(dev, skb)) {
|
||||
rc = 0;
|
||||
if (!dev_hard_start_xmit(skb, dev)) {
|
||||
HARD_TX_UNLOCK(dev);
|
||||
|
@ -1438,6 +1438,9 @@ int neigh_table_clear(struct neigh_table *tbl)
|
||||
free_percpu(tbl->stats);
|
||||
tbl->stats = NULL;
|
||||
|
||||
kmem_cache_destroy(tbl->kmem_cachep);
|
||||
tbl->kmem_cachep = NULL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,7 @@ static void queue_process(struct work_struct *work)
|
||||
local_irq_save(flags);
|
||||
netif_tx_lock(dev);
|
||||
if ((netif_queue_stopped(dev) ||
|
||||
netif_subqueue_stopped(dev, skb->queue_mapping)) ||
|
||||
netif_subqueue_stopped(dev, skb)) ||
|
||||
dev->hard_start_xmit(skb, dev) != NETDEV_TX_OK) {
|
||||
skb_queue_head(&npinfo->txq, skb);
|
||||
netif_tx_unlock(dev);
|
||||
@ -269,7 +269,7 @@ static void netpoll_send_skb(struct netpoll *np, struct sk_buff *skb)
|
||||
tries > 0; --tries) {
|
||||
if (netif_tx_trylock(dev)) {
|
||||
if (!netif_queue_stopped(dev) &&
|
||||
!netif_subqueue_stopped(dev, skb->queue_mapping))
|
||||
!netif_subqueue_stopped(dev, skb))
|
||||
status = dev->hard_start_xmit(skb, dev);
|
||||
netif_tx_unlock(dev);
|
||||
|
||||
|
@ -2603,8 +2603,7 @@ static struct sk_buff *fill_packet_ipv4(struct net_device *odev,
|
||||
skb->network_header = skb->tail;
|
||||
skb->transport_header = skb->network_header + sizeof(struct iphdr);
|
||||
skb_put(skb, sizeof(struct iphdr) + sizeof(struct udphdr));
|
||||
skb->queue_mapping = pkt_dev->cur_queue_map;
|
||||
|
||||
skb_set_queue_mapping(skb, pkt_dev->cur_queue_map);
|
||||
iph = ip_hdr(skb);
|
||||
udph = udp_hdr(skb);
|
||||
|
||||
@ -2941,8 +2940,7 @@ static struct sk_buff *fill_packet_ipv6(struct net_device *odev,
|
||||
skb->network_header = skb->tail;
|
||||
skb->transport_header = skb->network_header + sizeof(struct ipv6hdr);
|
||||
skb_put(skb, sizeof(struct ipv6hdr) + sizeof(struct udphdr));
|
||||
skb->queue_mapping = pkt_dev->cur_queue_map;
|
||||
|
||||
skb_set_queue_mapping(skb, pkt_dev->cur_queue_map);
|
||||
iph = ipv6_hdr(skb);
|
||||
udph = udp_hdr(skb);
|
||||
|
||||
@ -3385,7 +3383,7 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
|
||||
|
||||
if ((netif_queue_stopped(odev) ||
|
||||
(pkt_dev->skb &&
|
||||
netif_subqueue_stopped(odev, pkt_dev->skb->queue_mapping))) ||
|
||||
netif_subqueue_stopped(odev, pkt_dev->skb))) ||
|
||||
need_resched()) {
|
||||
idle_start = getCurUs();
|
||||
|
||||
@ -3402,7 +3400,7 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
|
||||
pkt_dev->idle_acc += getCurUs() - idle_start;
|
||||
|
||||
if (netif_queue_stopped(odev) ||
|
||||
netif_subqueue_stopped(odev, pkt_dev->skb->queue_mapping)) {
|
||||
netif_subqueue_stopped(odev, pkt_dev->skb)) {
|
||||
pkt_dev->next_tx_us = getCurUs(); /* TODO */
|
||||
pkt_dev->next_tx_ns = 0;
|
||||
goto out; /* Try the next interface */
|
||||
@ -3431,7 +3429,7 @@ static __inline__ void pktgen_xmit(struct pktgen_dev *pkt_dev)
|
||||
|
||||
netif_tx_lock_bh(odev);
|
||||
if (!netif_queue_stopped(odev) &&
|
||||
!netif_subqueue_stopped(odev, pkt_dev->skb->queue_mapping)) {
|
||||
!netif_subqueue_stopped(odev, pkt_dev->skb)) {
|
||||
|
||||
atomic_inc(&(pkt_dev->skb->users));
|
||||
retry_now:
|
||||
|
Reference in New Issue
Block a user