提交 5043f505 编写于 作者: J Jiri Pirko 提交者: David S. Miller

jme: do vlan cleanup

- unify vlan and nonvlan rx path
- kill jme->vlgrp and jme_vlan_rx_register
Signed-off-by: NJiri Pirko <jpirko@redhat.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 a0f1d603
...@@ -1048,16 +1048,12 @@ jme_alloc_and_feed_skb(struct jme_adapter *jme, int idx) ...@@ -1048,16 +1048,12 @@ jme_alloc_and_feed_skb(struct jme_adapter *jme, int idx)
skb_checksum_none_assert(skb); skb_checksum_none_assert(skb);
if (rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_TAGON)) { if (rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_TAGON)) {
if (jme->vlgrp) { u16 vid = le16_to_cpu(rxdesc->descwb.vlan);
jme->jme_vlan_rx(skb, jme->vlgrp,
le16_to_cpu(rxdesc->descwb.vlan)); __vlan_hwaccel_put_tag(skb, vid);
NET_STAT(jme).rx_bytes += 4; NET_STAT(jme).rx_bytes += 4;
} else {
dev_kfree_skb(skb);
} }
} else {
jme->jme_rx(skb); jme->jme_rx(skb);
}
if ((rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_DEST)) == if ((rxdesc->descwb.flags & cpu_to_le16(RXWBFLAG_DEST)) ==
cpu_to_le16(RXWBFLAG_DEST_MUL)) cpu_to_le16(RXWBFLAG_DEST_MUL))
...@@ -2281,16 +2277,6 @@ static inline void jme_resume_rx(struct jme_adapter *jme) ...@@ -2281,16 +2277,6 @@ static inline void jme_resume_rx(struct jme_adapter *jme)
atomic_inc(&jme->link_changing); atomic_inc(&jme->link_changing);
} }
static void
jme_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp)
{
struct jme_adapter *jme = netdev_priv(netdev);
jme_pause_rx(jme);
jme->vlgrp = grp;
jme_resume_rx(jme);
}
static void static void
jme_get_drvinfo(struct net_device *netdev, jme_get_drvinfo(struct net_device *netdev,
struct ethtool_drvinfo *info) struct ethtool_drvinfo *info)
...@@ -2401,7 +2387,6 @@ jme_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ecmd) ...@@ -2401,7 +2387,6 @@ jme_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ecmd)
test_bit(JME_FLAG_POLL, &jme->flags)) { test_bit(JME_FLAG_POLL, &jme->flags)) {
clear_bit(JME_FLAG_POLL, &jme->flags); clear_bit(JME_FLAG_POLL, &jme->flags);
jme->jme_rx = netif_rx; jme->jme_rx = netif_rx;
jme->jme_vlan_rx = vlan_hwaccel_rx;
dpi->cur = PCC_P1; dpi->cur = PCC_P1;
dpi->attempt = PCC_P1; dpi->attempt = PCC_P1;
dpi->cnt = 0; dpi->cnt = 0;
...@@ -2411,7 +2396,6 @@ jme_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ecmd) ...@@ -2411,7 +2396,6 @@ jme_set_coalesce(struct net_device *netdev, struct ethtool_coalesce *ecmd)
!(test_bit(JME_FLAG_POLL, &jme->flags))) { !(test_bit(JME_FLAG_POLL, &jme->flags))) {
set_bit(JME_FLAG_POLL, &jme->flags); set_bit(JME_FLAG_POLL, &jme->flags);
jme->jme_rx = netif_receive_skb; jme->jme_rx = netif_receive_skb;
jme->jme_vlan_rx = vlan_hwaccel_receive_skb;
jme_interrupt_mode(jme); jme_interrupt_mode(jme);
} }
...@@ -2850,7 +2834,6 @@ static const struct net_device_ops jme_netdev_ops = { ...@@ -2850,7 +2834,6 @@ static const struct net_device_ops jme_netdev_ops = {
.ndo_set_multicast_list = jme_set_multi, .ndo_set_multicast_list = jme_set_multi,
.ndo_change_mtu = jme_change_mtu, .ndo_change_mtu = jme_change_mtu,
.ndo_tx_timeout = jme_tx_timeout, .ndo_tx_timeout = jme_tx_timeout,
.ndo_vlan_rx_register = jme_vlan_rx_register,
.ndo_fix_features = jme_fix_features, .ndo_fix_features = jme_fix_features,
.ndo_set_features = jme_set_features, .ndo_set_features = jme_set_features,
}; };
...@@ -2933,7 +2916,6 @@ jme_init_one(struct pci_dev *pdev, ...@@ -2933,7 +2916,6 @@ jme_init_one(struct pci_dev *pdev,
jme->pdev = pdev; jme->pdev = pdev;
jme->dev = netdev; jme->dev = netdev;
jme->jme_rx = netif_rx; jme->jme_rx = netif_rx;
jme->jme_vlan_rx = vlan_hwaccel_rx;
jme->old_mtu = netdev->mtu = 1500; jme->old_mtu = netdev->mtu = 1500;
jme->phylink = 0; jme->phylink = 0;
jme->tx_ring_size = 1 << 10; jme->tx_ring_size = 1 << 10;
......
...@@ -451,7 +451,6 @@ struct jme_adapter { ...@@ -451,7 +451,6 @@ struct jme_adapter {
u32 msg_enable; u32 msg_enable;
struct ethtool_cmd old_ecmd; struct ethtool_cmd old_ecmd;
unsigned int old_mtu; unsigned int old_mtu;
struct vlan_group *vlgrp;
struct dynpcc_info dpi; struct dynpcc_info dpi;
atomic_t intr_sem; atomic_t intr_sem;
atomic_t link_changing; atomic_t link_changing;
...@@ -459,9 +458,6 @@ struct jme_adapter { ...@@ -459,9 +458,6 @@ struct jme_adapter {
atomic_t rx_cleaning; atomic_t rx_cleaning;
atomic_t rx_empty; atomic_t rx_empty;
int (*jme_rx)(struct sk_buff *skb); int (*jme_rx)(struct sk_buff *skb);
int (*jme_vlan_rx)(struct sk_buff *skb,
struct vlan_group *grp,
unsigned short vlan_tag);
DECLARE_NAPI_STRUCT DECLARE_NAPI_STRUCT
DECLARE_NET_DEVICE_STATS DECLARE_NET_DEVICE_STATS
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册