mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-16 01:54:00 +00:00
ns83820: do vlan cleanup
- unify vlan and nonvlan rx path - kill dev->vlgrp and ns83820_vlan_rx_register Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5da96be53a
commit
a4f676b80f
@ -430,10 +430,6 @@ struct ns83820 {
|
|||||||
struct pci_dev *pci_dev;
|
struct pci_dev *pci_dev;
|
||||||
struct net_device *ndev;
|
struct net_device *ndev;
|
||||||
|
|
||||||
#ifdef NS83820_VLAN_ACCEL_SUPPORT
|
|
||||||
struct vlan_group *vlgrp;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
struct rx_info rx_info;
|
struct rx_info rx_info;
|
||||||
struct tasklet_struct rx_tasklet;
|
struct tasklet_struct rx_tasklet;
|
||||||
|
|
||||||
@ -494,22 +490,6 @@ static inline void kick_rx(struct net_device *ndev)
|
|||||||
#define start_tx_okay(dev) \
|
#define start_tx_okay(dev) \
|
||||||
(((NR_TX_DESC-2 + dev->tx_done_idx - dev->tx_free_idx) % NR_TX_DESC) > MIN_TX_DESC_FREE)
|
(((NR_TX_DESC-2 + dev->tx_done_idx - dev->tx_free_idx) % NR_TX_DESC) > MIN_TX_DESC_FREE)
|
||||||
|
|
||||||
|
|
||||||
#ifdef NS83820_VLAN_ACCEL_SUPPORT
|
|
||||||
static void ns83820_vlan_rx_register(struct net_device *ndev, struct vlan_group *grp)
|
|
||||||
{
|
|
||||||
struct ns83820 *dev = PRIV(ndev);
|
|
||||||
|
|
||||||
spin_lock_irq(&dev->misc_lock);
|
|
||||||
spin_lock(&dev->tx_lock);
|
|
||||||
|
|
||||||
dev->vlgrp = grp;
|
|
||||||
|
|
||||||
spin_unlock(&dev->tx_lock);
|
|
||||||
spin_unlock_irq(&dev->misc_lock);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Packet Receiver
|
/* Packet Receiver
|
||||||
*
|
*
|
||||||
* The hardware supports linked lists of receive descriptors for
|
* The hardware supports linked lists of receive descriptors for
|
||||||
@ -930,14 +910,12 @@ static void rx_irq(struct net_device *ndev)
|
|||||||
#ifdef NS83820_VLAN_ACCEL_SUPPORT
|
#ifdef NS83820_VLAN_ACCEL_SUPPORT
|
||||||
if(extsts & EXTSTS_VPKT) {
|
if(extsts & EXTSTS_VPKT) {
|
||||||
unsigned short tag;
|
unsigned short tag;
|
||||||
|
|
||||||
tag = ntohs(extsts & EXTSTS_VTG_MASK);
|
tag = ntohs(extsts & EXTSTS_VTG_MASK);
|
||||||
rx_rc = vlan_hwaccel_rx(skb,dev->vlgrp,tag);
|
__vlan_hwaccel_put_tag(skb, tag);
|
||||||
} else {
|
|
||||||
rx_rc = netif_rx(skb);
|
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
rx_rc = netif_rx(skb);
|
|
||||||
#endif
|
#endif
|
||||||
|
rx_rc = netif_rx(skb);
|
||||||
if (NET_RX_DROP == rx_rc) {
|
if (NET_RX_DROP == rx_rc) {
|
||||||
netdev_mangle_me_harder_failed:
|
netdev_mangle_me_harder_failed:
|
||||||
ndev->stats.rx_dropped++;
|
ndev->stats.rx_dropped++;
|
||||||
@ -1961,11 +1939,8 @@ static const struct net_device_ops netdev_ops = {
|
|||||||
.ndo_change_mtu = ns83820_change_mtu,
|
.ndo_change_mtu = ns83820_change_mtu,
|
||||||
.ndo_set_multicast_list = ns83820_set_multicast,
|
.ndo_set_multicast_list = ns83820_set_multicast,
|
||||||
.ndo_validate_addr = eth_validate_addr,
|
.ndo_validate_addr = eth_validate_addr,
|
||||||
.ndo_set_mac_address = eth_mac_addr,
|
.ndo_set_mac_address = eth_mac_addr,
|
||||||
.ndo_tx_timeout = ns83820_tx_timeout,
|
.ndo_tx_timeout = ns83820_tx_timeout,
|
||||||
#ifdef NS83820_VLAN_ACCEL_SUPPORT
|
|
||||||
.ndo_vlan_rx_register = ns83820_vlan_rx_register,
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static int __devinit ns83820_init_one(struct pci_dev *pci_dev,
|
static int __devinit ns83820_init_one(struct pci_dev *pci_dev,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user