diff options
author | David S. Miller <davem@davemloft.net> | 2005-08-09 22:36:29 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2005-08-29 18:33:26 -0400 |
commit | 86e65da9c1fc6fb421b9f796b597b3eced6b55ab (patch) | |
tree | 69ae9d0c30afe54cea3e4c6119791c1318c2198d /net | |
parent | 0742fd53a3774781255bd1e471e7aa2e4a82d5f7 (diff) |
[NET]: Remove explicit initializations of skb->input_dev
Instead, set it in one place, namely the beginning of
netif_receive_skb().
Based upon suggestions from Jamal Hadi Salim.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r-- | net/core/dev.c | 10 | ||||
-rw-r--r-- | net/ethernet/eth.c | 1 |
2 files changed, 5 insertions, 6 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index e1cc162bf295..9d153eb1e8cf 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -1536,17 +1536,14 @@ static int ing_filter(struct sk_buff *skb) | |||
1536 | __u32 ttl = (__u32) G_TC_RTTL(skb->tc_verd); | 1536 | __u32 ttl = (__u32) G_TC_RTTL(skb->tc_verd); |
1537 | if (MAX_RED_LOOP < ttl++) { | 1537 | if (MAX_RED_LOOP < ttl++) { |
1538 | printk("Redir loop detected Dropping packet (%s->%s)\n", | 1538 | printk("Redir loop detected Dropping packet (%s->%s)\n", |
1539 | skb->input_dev?skb->input_dev->name:"??",skb->dev->name); | 1539 | skb->input_dev->name, skb->dev->name); |
1540 | return TC_ACT_SHOT; | 1540 | return TC_ACT_SHOT; |
1541 | } | 1541 | } |
1542 | 1542 | ||
1543 | skb->tc_verd = SET_TC_RTTL(skb->tc_verd,ttl); | 1543 | skb->tc_verd = SET_TC_RTTL(skb->tc_verd,ttl); |
1544 | 1544 | ||
1545 | skb->tc_verd = SET_TC_AT(skb->tc_verd,AT_INGRESS); | 1545 | skb->tc_verd = SET_TC_AT(skb->tc_verd,AT_INGRESS); |
1546 | if (NULL == skb->input_dev) { | 1546 | |
1547 | skb->input_dev = skb->dev; | ||
1548 | printk("ing_filter: fixed %s out %s\n",skb->input_dev->name,skb->dev->name); | ||
1549 | } | ||
1550 | spin_lock(&dev->ingress_lock); | 1547 | spin_lock(&dev->ingress_lock); |
1551 | if ((q = dev->qdisc_ingress) != NULL) | 1548 | if ((q = dev->qdisc_ingress) != NULL) |
1552 | result = q->enqueue(skb, q); | 1549 | result = q->enqueue(skb, q); |
@@ -1572,6 +1569,9 @@ int netif_receive_skb(struct sk_buff *skb) | |||
1572 | if (!skb->stamp.tv_sec) | 1569 | if (!skb->stamp.tv_sec) |
1573 | net_timestamp(&skb->stamp); | 1570 | net_timestamp(&skb->stamp); |
1574 | 1571 | ||
1572 | if (!skb->input_dev) | ||
1573 | skb->input_dev = skb->dev; | ||
1574 | |||
1575 | orig_dev = skb_bond(skb); | 1575 | orig_dev = skb_bond(skb); |
1576 | 1576 | ||
1577 | __get_cpu_var(netdev_rx_stat).total++; | 1577 | __get_cpu_var(netdev_rx_stat).total++; |
diff --git a/net/ethernet/eth.c b/net/ethernet/eth.c index f6dbfb99b14d..f444a2f2675f 100644 --- a/net/ethernet/eth.c +++ b/net/ethernet/eth.c | |||
@@ -163,7 +163,6 @@ __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev) | |||
163 | skb->mac.raw=skb->data; | 163 | skb->mac.raw=skb->data; |
164 | skb_pull(skb,ETH_HLEN); | 164 | skb_pull(skb,ETH_HLEN); |
165 | eth = eth_hdr(skb); | 165 | eth = eth_hdr(skb); |
166 | skb->input_dev = dev; | ||
167 | 166 | ||
168 | if(*eth->h_dest&1) | 167 | if(*eth->h_dest&1) |
169 | { | 168 | { |