|
@@ -1939,22 +1939,6 @@ int netif_rx_ni(struct sk_buff *skb)
|
|
|
|
|
|
EXPORT_SYMBOL(netif_rx_ni);
|
|
EXPORT_SYMBOL(netif_rx_ni);
|
|
|
|
|
|
-static inline struct net_device *skb_bond(struct sk_buff *skb)
|
|
|
|
-{
|
|
|
|
- struct net_device *dev = skb->dev;
|
|
|
|
-
|
|
|
|
- if (dev->master) {
|
|
|
|
- if (skb_bond_should_drop(skb)) {
|
|
|
|
- kfree_skb(skb);
|
|
|
|
- return NULL;
|
|
|
|
- }
|
|
|
|
- skb->dev = dev->master;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return dev;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-
|
|
|
|
static void net_tx_action(struct softirq_action *h)
|
|
static void net_tx_action(struct softirq_action *h)
|
|
{
|
|
{
|
|
struct softnet_data *sd = &__get_cpu_var(softnet_data);
|
|
struct softnet_data *sd = &__get_cpu_var(softnet_data);
|
|
@@ -2194,10 +2178,14 @@ int netif_receive_skb(struct sk_buff *skb)
|
|
if (!skb->iif)
|
|
if (!skb->iif)
|
|
skb->iif = skb->dev->ifindex;
|
|
skb->iif = skb->dev->ifindex;
|
|
|
|
|
|
- orig_dev = skb_bond(skb);
|
|
|
|
-
|
|
|
|
- if (!orig_dev)
|
|
|
|
- return NET_RX_DROP;
|
|
|
|
|
|
+ orig_dev = skb->dev;
|
|
|
|
+ if (orig_dev->master) {
|
|
|
|
+ if (skb_bond_should_drop(skb)) {
|
|
|
|
+ kfree_skb(skb);
|
|
|
|
+ return NET_RX_DROP;
|
|
|
|
+ }
|
|
|
|
+ skb->dev = orig_dev->master;
|
|
|
|
+ }
|
|
|
|
|
|
__get_cpu_var(netdev_rx_stat).total++;
|
|
__get_cpu_var(netdev_rx_stat).total++;
|
|
|
|
|