|
@@ -1349,14 +1349,14 @@ static int packet_rcv_fanout(struct sk_buff *skb, struct net_device *dev,
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (fanout_has_flag(f, PACKET_FANOUT_FLAG_DEFRAG)) {
|
|
|
|
+ skb = ip_check_defrag(skb, IP_DEFRAG_AF_PACKET);
|
|
|
|
+ if (!skb)
|
|
|
|
+ return 0;
|
|
|
|
+ }
|
|
switch (f->type) {
|
|
switch (f->type) {
|
|
case PACKET_FANOUT_HASH:
|
|
case PACKET_FANOUT_HASH:
|
|
default:
|
|
default:
|
|
- if (fanout_has_flag(f, PACKET_FANOUT_FLAG_DEFRAG)) {
|
|
|
|
- skb = ip_check_defrag(skb, IP_DEFRAG_AF_PACKET);
|
|
|
|
- if (!skb)
|
|
|
|
- return 0;
|
|
|
|
- }
|
|
|
|
idx = fanout_demux_hash(f, skb, num);
|
|
idx = fanout_demux_hash(f, skb, num);
|
|
break;
|
|
break;
|
|
case PACKET_FANOUT_LB:
|
|
case PACKET_FANOUT_LB:
|