Commit 4b76ddd9 authored by Simon Barber's avatar Simon Barber Committed by David S. Miller

[NET]: Capture skb->protocol after invoking bridge.

parent d46067dc
...@@ -1691,7 +1691,7 @@ int netif_receive_skb(struct sk_buff *skb) ...@@ -1691,7 +1691,7 @@ int netif_receive_skb(struct sk_buff *skb)
{ {
struct packet_type *ptype, *pt_prev; struct packet_type *ptype, *pt_prev;
int ret = NET_RX_DROP; int ret = NET_RX_DROP;
unsigned short type = skb->protocol; unsigned short type;
if (!skb->stamp.tv_sec) if (!skb->stamp.tv_sec)
do_gettimeofday(&skb->stamp); do_gettimeofday(&skb->stamp);
...@@ -1725,6 +1725,7 @@ int netif_receive_skb(struct sk_buff *skb) ...@@ -1725,6 +1725,7 @@ int netif_receive_skb(struct sk_buff *skb)
if (__handle_bridge(skb, &pt_prev, &ret)) if (__handle_bridge(skb, &pt_prev, &ret))
goto out; goto out;
type = skb->protocol;
list_for_each_entry_rcu(ptype, &ptype_base[ntohs(type)&15], list) { list_for_each_entry_rcu(ptype, &ptype_base[ntohs(type)&15], list) {
if (ptype->type == type && if (ptype->type == type &&
(!ptype->dev || ptype->dev == skb->dev)) { (!ptype->dev || ptype->dev == skb->dev)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment