]> bbs.cooldavid.org Git - net-next-2.6.git/commitdiff
Merge commit 'v2.6.36-rc5' into perf/core
authorIngo Molnar <mingo@elte.hu>
Tue, 21 Sep 2010 11:55:04 +0000 (13:55 +0200)
committerIngo Molnar <mingo@elte.hu>
Tue, 21 Sep 2010 11:55:11 +0000 (13:55 +0200)
Merge reason: Pick up the latest fixes in -rc5.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
1  2 
net/core/dev.c

diff --combined net/core/dev.c
index 561ee3a86525aef6641b47a52c59dc73510ec829,660dd41aaaa6629c0d59547e04d23353ba935af8..7ec85e27beed840b8da5f9dae620bcd48453f3f7
  #include <linux/jhash.h>
  #include <linux/random.h>
  #include <trace/events/napi.h>
 +#include <trace/events/net.h>
 +#include <trace/events/skb.h>
  #include <linux/pci.h>
  
  #include "net-sysfs.h"
@@@ -1980,7 -1978,6 +1980,7 @@@ int dev_hard_start_xmit(struct sk_buff 
                }
  
                rc = ops->ndo_start_xmit(skb, dev);
 +              trace_net_dev_xmit(skb, rc);
                if (rc == NETDEV_TX_OK)
                        txq_trans_update(txq);
                return rc;
@@@ -2001,7 -1998,6 +2001,7 @@@ gso
                        skb_dst_drop(nskb);
  
                rc = ops->ndo_start_xmit(nskb, dev);
 +              trace_net_dev_xmit(nskb, rc);
                if (unlikely(rc != NETDEV_TX_OK)) {
                        if (rc & ~NETDEV_TX_MASK)
                                goto out_kfree_gso_skb;
@@@ -2190,7 -2186,6 +2190,7 @@@ int dev_queue_xmit(struct sk_buff *skb
  #ifdef CONFIG_NET_CLS_ACT
        skb->tc_verd = SET_TC_AT(skb->tc_verd, AT_EGRESS);
  #endif
 +      trace_net_dev_queue(skb);
        if (q->enqueue) {
                rc = __dev_xmit_skb(skb, q, dev, txq);
                goto out;
@@@ -2517,7 -2512,6 +2517,7 @@@ int netif_rx(struct sk_buff *skb
        if (netdev_tstamp_prequeue)
                net_timestamp_check(skb);
  
 +      trace_netif_rx(skb);
  #ifdef CONFIG_RPS
        {
                struct rps_dev_flow voidflow, *rflow = &voidflow;
@@@ -2577,7 -2571,6 +2577,7 @@@ static void net_tx_action(struct softir
                        clist = clist->next;
  
                        WARN_ON(atomic_read(&skb->users));
 +                      trace_kfree_skb(skb, net_tx_action);
                        __kfree_skb(skb);
                }
        }
@@@ -2835,7 -2828,6 +2835,7 @@@ static int __netif_receive_skb(struct s
        if (!netdev_tstamp_prequeue)
                net_timestamp_check(skb);
  
 +      trace_netif_receive_skb(skb);
        if (vlan_tx_tag_present(skb) && vlan_hwaccel_do_receive(skb))
                return NET_RX_SUCCESS;
  
@@@ -4853,7 -4845,7 +4853,7 @@@ static void rollback_registered_many(st
        dev = list_first_entry(head, struct net_device, unreg_list);
        call_netdevice_notifiers(NETDEV_UNREGISTER_BATCH, dev);
  
-       synchronize_net();
+       rcu_barrier();
  
        list_for_each_entry(dev, head, unreg_list)
                dev_put(dev);