]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/8021q/vlan_core.c
Merge branch 'for-2.6.30' of git://linux-nfs.org/~bfields/linux
[mv-sheeva.git] / net / 8021q / vlan_core.c
index 2d6e405fc4981cf0189836ce3a163833269a2e8b..c67fe6f7565320f0938e3c97832ba2d76c30ba04 100644 (file)
@@ -98,16 +98,16 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,
        return dev_gro_receive(napi, skb);
 
 drop:
-       return 2;
+       return GRO_DROP;
 }
 
 int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp,
                     unsigned int vlan_tci, struct sk_buff *skb)
 {
-       skb_gro_reset_offset(skb);
+       if (netpoll_rx_on(skb))
+               return vlan_hwaccel_receive_skb(skb, grp, vlan_tci);
 
-       if (netpoll_receive_skb(skb))
-               return NET_RX_DROP;
+       skb_gro_reset_offset(skb);
 
        return napi_skb_finish(vlan_gro_common(napi, grp, vlan_tci, skb), skb);
 }
@@ -121,8 +121,10 @@ int vlan_gro_frags(struct napi_struct *napi, struct vlan_group *grp,
        if (!skb)
                return NET_RX_DROP;
 
-       if (netpoll_receive_skb(skb))
-               return NET_RX_DROP;
+       if (netpoll_rx_on(skb)) {
+               skb->protocol = eth_type_trans(skb, skb->dev);
+               return vlan_hwaccel_receive_skb(skb, grp, vlan_tci);
+       }
 
        return napi_frags_finish(napi, skb,
                                 vlan_gro_common(napi, grp, vlan_tci, skb));