diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/8021q/vlan_core.c | 11 | ||||
-rw-r--r-- | net/core/dev.c | 17 |
2 files changed, 7 insertions, 21 deletions
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c index 2d6e405fc498..6227248597c4 100644 --- a/net/8021q/vlan_core.c +++ b/net/8021q/vlan_core.c | |||
@@ -79,6 +79,9 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, | |||
79 | { | 79 | { |
80 | struct sk_buff *p; | 80 | struct sk_buff *p; |
81 | 81 | ||
82 | if (netpoll_rx_on(skb)) | ||
83 | return GRO_NORMAL; | ||
84 | |||
82 | if (skb_bond_should_drop(skb)) | 85 | if (skb_bond_should_drop(skb)) |
83 | goto drop; | 86 | goto drop; |
84 | 87 | ||
@@ -98,7 +101,7 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, | |||
98 | return dev_gro_receive(napi, skb); | 101 | return dev_gro_receive(napi, skb); |
99 | 102 | ||
100 | drop: | 103 | drop: |
101 | return 2; | 104 | return GRO_DROP; |
102 | } | 105 | } |
103 | 106 | ||
104 | int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp, | 107 | int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp, |
@@ -106,9 +109,6 @@ int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp, | |||
106 | { | 109 | { |
107 | skb_gro_reset_offset(skb); | 110 | skb_gro_reset_offset(skb); |
108 | 111 | ||
109 | if (netpoll_receive_skb(skb)) | ||
110 | return NET_RX_DROP; | ||
111 | |||
112 | return napi_skb_finish(vlan_gro_common(napi, grp, vlan_tci, skb), skb); | 112 | return napi_skb_finish(vlan_gro_common(napi, grp, vlan_tci, skb), skb); |
113 | } | 113 | } |
114 | EXPORT_SYMBOL(vlan_gro_receive); | 114 | EXPORT_SYMBOL(vlan_gro_receive); |
@@ -121,9 +121,6 @@ int vlan_gro_frags(struct napi_struct *napi, struct vlan_group *grp, | |||
121 | if (!skb) | 121 | if (!skb) |
122 | return NET_RX_DROP; | 122 | return NET_RX_DROP; |
123 | 123 | ||
124 | if (netpoll_receive_skb(skb)) | ||
125 | return NET_RX_DROP; | ||
126 | |||
127 | return napi_frags_finish(napi, skb, | 124 | return napi_frags_finish(napi, skb, |
128 | vlan_gro_common(napi, grp, vlan_tci, skb)); | 125 | vlan_gro_common(napi, grp, vlan_tci, skb)); |
129 | } | 126 | } |
diff --git a/net/core/dev.c b/net/core/dev.c index 033d7ca28e6e..7bd3c29c5a78 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -135,14 +135,6 @@ | |||
135 | /* This should be increased if a protocol with a bigger head is added. */ | 135 | /* This should be increased if a protocol with a bigger head is added. */ |
136 | #define GRO_MAX_HEAD (MAX_HEADER + 128) | 136 | #define GRO_MAX_HEAD (MAX_HEADER + 128) |
137 | 137 | ||
138 | enum { | ||
139 | GRO_MERGED, | ||
140 | GRO_MERGED_FREE, | ||
141 | GRO_HELD, | ||
142 | GRO_NORMAL, | ||
143 | GRO_DROP, | ||
144 | }; | ||
145 | |||
146 | /* | 138 | /* |
147 | * The list of packet types we will receive (as opposed to discard) | 139 | * The list of packet types we will receive (as opposed to discard) |
148 | * and the routines to invoke. | 140 | * and the routines to invoke. |
@@ -2474,6 +2466,9 @@ static int __napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb) | |||
2474 | { | 2466 | { |
2475 | struct sk_buff *p; | 2467 | struct sk_buff *p; |
2476 | 2468 | ||
2469 | if (netpoll_rx_on(skb)) | ||
2470 | return GRO_NORMAL; | ||
2471 | |||
2477 | for (p = napi->gro_list; p; p = p->next) { | 2472 | for (p = napi->gro_list; p; p = p->next) { |
2478 | NAPI_GRO_CB(p)->same_flow = !compare_ether_header( | 2473 | NAPI_GRO_CB(p)->same_flow = !compare_ether_header( |
2479 | skb_mac_header(p), skb_gro_mac_header(skb)); | 2474 | skb_mac_header(p), skb_gro_mac_header(skb)); |
@@ -2487,9 +2482,6 @@ int napi_skb_finish(int ret, struct sk_buff *skb) | |||
2487 | { | 2482 | { |
2488 | int err = NET_RX_SUCCESS; | 2483 | int err = NET_RX_SUCCESS; |
2489 | 2484 | ||
2490 | if (netpoll_receive_skb(skb)) | ||
2491 | return NET_RX_DROP; | ||
2492 | |||
2493 | switch (ret) { | 2485 | switch (ret) { |
2494 | case GRO_NORMAL: | 2486 | case GRO_NORMAL: |
2495 | return netif_receive_skb(skb); | 2487 | return netif_receive_skb(skb); |
@@ -2587,9 +2579,6 @@ int napi_frags_finish(struct napi_struct *napi, struct sk_buff *skb, int ret) | |||
2587 | { | 2579 | { |
2588 | int err = NET_RX_SUCCESS; | 2580 | int err = NET_RX_SUCCESS; |
2589 | 2581 | ||
2590 | if (netpoll_receive_skb(skb)) | ||
2591 | return NET_RX_DROP; | ||
2592 | |||
2593 | switch (ret) { | 2582 | switch (ret) { |
2594 | case GRO_NORMAL: | 2583 | case GRO_NORMAL: |
2595 | case GRO_HELD: | 2584 | case GRO_HELD: |