Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7b332244a63dc1f408fd2ebb2636d58ac69a4916
Commit:     7b332244a63dc1f408fd2ebb2636d58ac69a4916
Parent:     3d4e66f5cd217160da9c3a2e3ec27b22e743bd25
Author:     Stephen Hemminger <[EMAIL PROTECTED]>
AuthorDate: Fri Jun 1 09:43:59 2007 -0700
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Sun Jun 3 11:44:20 2007 -0400

    8139cp: fix VLAN unregistration
    
    The 8139cp driver did VLAN unregistration incorrectly.
    It disables VLAN completely when the first VID is unregistered. It
    should instead disable VLAN when the group is unregistered by calling
    cp_vlan_rx_register with a NULL grp.
    
    Signed-off-by: Stephen Hemminger <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 drivers/net/8139cp.c |   17 ++++-------------
 1 files changed, 4 insertions(+), 13 deletions(-)

diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index e8c9f27..a804965 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -435,20 +435,12 @@ static void cp_vlan_rx_register(struct net_device *dev, 
struct vlan_group *grp)
 
        spin_lock_irqsave(&cp->lock, flags);
        cp->vlgrp = grp;
-       cp->cpcmd |= RxVlanOn;
-       cpw16(CpCmd, cp->cpcmd);
-       spin_unlock_irqrestore(&cp->lock, flags);
-}
-
-static void cp_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
-{
-       struct cp_private *cp = netdev_priv(dev);
-       unsigned long flags;
+       if (grp)
+               cp->cpcmd |= RxVlanOn;
+       else
+               cp->cpcmd &= ~RxVlanOn;
 
-       spin_lock_irqsave(&cp->lock, flags);
-       cp->cpcmd &= ~RxVlanOn;
        cpw16(CpCmd, cp->cpcmd);
-       vlan_group_set_device(cp->vlgrp, vid, NULL);
        spin_unlock_irqrestore(&cp->lock, flags);
 }
 #endif /* CP_VLAN_TAG_USED */
@@ -1944,7 +1936,6 @@ static int cp_init_one (struct pci_dev *pdev, const 
struct pci_device_id *ent)
 #if CP_VLAN_TAG_USED
        dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
        dev->vlan_rx_register = cp_vlan_rx_register;
-       dev->vlan_rx_kill_vid = cp_vlan_rx_kill_vid;
 #endif
 
        if (pci_using_dac)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to