diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-05-06 17:08:30 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-05-06 17:08:30 +0000 |
commit | 9b20187ad5a2055bcabb3ee905afade92aaa3be2 (patch) | |
tree | eb5307a5e2a7d77d4a5f2ff535c85b957990f047 /target/linux/generic/files | |
parent | 9a34f9d01e04ae80e1eba30deaf7fc8382d01706 (diff) | |
download | upstream-9b20187ad5a2055bcabb3ee905afade92aaa3be2.tar.gz upstream-9b20187ad5a2055bcabb3ee905afade92aaa3be2.tar.bz2 upstream-9b20187ad5a2055bcabb3ee905afade92aaa3be2.zip |
atheros: update to 3.3.4 (based on work by acoul), fix mvswitch driver for newer kernels
SVN-Revision: 31625
Diffstat (limited to 'target/linux/generic/files')
-rw-r--r-- | target/linux/generic/files/drivers/net/phy/mvswitch.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/mvswitch.c b/target/linux/generic/files/drivers/net/phy/mvswitch.c index f3a9c74e3d..1324a80a60 100644 --- a/target/linux/generic/files/drivers/net/phy/mvswitch.c +++ b/target/linux/generic/files/drivers/net/phy/mvswitch.c @@ -43,7 +43,6 @@ MODULE_LICENSE("GPL"); struct mvswitch_priv { const struct net_device_ops *ndo_old; struct net_device_ops ndo; - struct vlan_group *grp; u8 vlans[16]; }; @@ -162,9 +161,6 @@ mvswitch_mangle_rx(struct sk_buff *skb, int napi) if (!priv) goto error; - if (!priv->grp) - goto error; - #ifdef HEADER_MODE buf = skb->data; skb_pull(skb, MV_HEADER_SIZE); @@ -185,10 +181,11 @@ mvswitch_mangle_rx(struct sk_buff *skb, int napi) skb->protocol = eth_type_trans(skb, skb->dev); + __vlan_hwaccel_put_tag(skb, vlan); if (napi) - return vlan_hwaccel_receive_skb(skb, priv->grp, vlan); + return netif_receive_skb(skb); else - return vlan_hwaccel_rx(skb, priv->grp, vlan); + return netif_rx(skb); error: /* no vlan? eat the packet! */ @@ -210,14 +207,6 @@ mvswitch_netif_receive_skb(struct sk_buff *skb) } -static void -mvswitch_vlan_rx_register(struct net_device *dev, struct vlan_group *grp) -{ - struct mvswitch_priv *priv = dev->phy_ptr; - priv->grp = grp; -} - - static int mvswitch_wait_mask(struct phy_device *pdev, int addr, int reg, u16 mask, u16 val) { @@ -346,7 +335,6 @@ mvswitch_config_init(struct phy_device *pdev) priv->ndo_old = dev->netdev_ops; memcpy(&priv->ndo, priv->ndo_old, sizeof(struct net_device_ops)); priv->ndo.ndo_start_xmit = mvswitch_mangle_tx; - priv->ndo.ndo_vlan_rx_register = mvswitch_vlan_rx_register; dev->netdev_ops = &priv->ndo; pdev->pkt_align = 2; |