]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
tehuti: do vlan cleanup
authorJiri Pirko <jpirko@redhat.com>
Wed, 20 Jul 2011 04:54:26 +0000 (04:54 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 21 Jul 2011 20:47:55 +0000 (13:47 -0700)
- unify vlan and nonvlan rx path
- kill priv->vlgrp and bdx_vlan_rx_register

Signed-off-by: Jiri Pirko <jpirko@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/tehuti.c
drivers/net/tehuti.h

index 80fbee0d40af760f8e4dd4b794cd850edeb560e5..749bbf18dc6a72e104b321df6d4c3242c7e52b8c 100644 (file)
@@ -742,22 +742,6 @@ static void bdx_vlan_rx_kill_vid(struct net_device *ndev, unsigned short vid)
        __bdx_vlan_rx_vid(ndev, vid, 0);
 }
 
-/*
- * bdx_vlan_rx_register - kernel hook for adding VLAN group
- * @ndev network device
- * @grp  VLAN group
- */
-static void
-bdx_vlan_rx_register(struct net_device *ndev, struct vlan_group *grp)
-{
-       struct bdx_priv *priv = netdev_priv(ndev);
-
-       ENTER;
-       DBG("device='%s', group='%p'\n", ndev->name, grp);
-       priv->vlgrp = grp;
-       RET();
-}
-
 /**
  * bdx_change_mtu - Change the Maximum Transfer Unit
  * @netdev: network interface device structure
@@ -1146,21 +1130,15 @@ NETIF_RX_MUX(struct bdx_priv *priv, u32 rxd_val1, u16 rxd_vlan,
             struct sk_buff *skb)
 {
        ENTER;
-       DBG("rxdd->flags.bits.vtag=%d vlgrp=%p\n", GET_RXD_VTAG(rxd_val1),
-           priv->vlgrp);
-       if (priv->vlgrp && GET_RXD_VTAG(rxd_val1)) {
-               DBG("%s: vlan rcv vlan '%x' vtag '%x', device name '%s'\n",
+       DBG("rxdd->flags.bits.vtag=%d\n", GET_RXD_VTAG(rxd_val1));
+       if (GET_RXD_VTAG(rxd_val1)) {
+               DBG("%s: vlan rcv vlan '%x' vtag '%x'\n",
                    priv->ndev->name,
                    GET_RXD_VLAN_ID(rxd_vlan),
-                   GET_RXD_VTAG(rxd_val1),
-                   vlan_group_get_device(priv->vlgrp,
-                                         GET_RXD_VLAN_ID(rxd_vlan))->name);
-               /* NAPI variant of receive functions */
-               vlan_hwaccel_receive_skb(skb, priv->vlgrp,
-                                        GET_RXD_VLAN_TCI(rxd_vlan));
-       } else {
-               netif_receive_skb(skb);
+                   GET_RXD_VTAG(rxd_val1));
+               __vlan_hwaccel_put_tag(skb, GET_RXD_VLAN_TCI(rxd_vlan));
        }
+       netif_receive_skb(skb);
 }
 
 static void bdx_recycle_skb(struct bdx_priv *priv, struct rxd_desc *rxdd)
@@ -1877,7 +1855,7 @@ static void bdx_tx_push_desc_safe(struct bdx_priv *priv, void *data, int size)
 }
 
 static const struct net_device_ops bdx_netdev_ops = {
-       .ndo_open               = bdx_open,
+       .ndo_open               = bdx_open,
        .ndo_stop               = bdx_close,
        .ndo_start_xmit         = bdx_tx_transmit,
        .ndo_validate_addr      = eth_validate_addr,
@@ -1885,7 +1863,6 @@ static const struct net_device_ops bdx_netdev_ops = {
        .ndo_set_multicast_list = bdx_setmulti,
        .ndo_change_mtu         = bdx_change_mtu,
        .ndo_set_mac_address    = bdx_set_mac,
-       .ndo_vlan_rx_register   = bdx_vlan_rx_register,
        .ndo_vlan_rx_add_vid    = bdx_vlan_rx_add_vid,
        .ndo_vlan_rx_kill_vid   = bdx_vlan_rx_kill_vid,
 };
index c5642fefc9e7909725cf7afac4d29946f9dffc7b..709ebd6e28b4a35696f3fad0a23b3446d48afeb3 100644 (file)
@@ -250,7 +250,6 @@ struct bdx_priv {
        struct rxf_fifo rxf_fifo0;
        struct rxdb *rxdb;      /* rx dbs to store skb pointers */
        int napi_stop;
-       struct vlan_group *vlgrp;
 
        /* Tx FIFOs: 1 for data desc, 1 for empty (acks) desc */
        struct txd_fifo txd_fifo0;