]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
r8169: spinlock redux.
authorFrancois Romieu <romieu@fr.zoreil.com>
Tue, 31 Jan 2012 10:20:34 +0000 (11:20 +0100)
committerJoe Jin <joe.jin@oracle.com>
Fri, 18 May 2012 03:39:49 +0000 (11:39 +0800)
rtl8169_get_regs operates under RTNL and rtl task mutex whereas
rtl_set_rx_mode is either called under RTNL or rtl task mutex protection.

(cherry picked from commit 6c05d25267ebb371c4311de6904f740342e82f7c)
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Hayes Wang <hayeswang@realtek.com>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/r8169.c

index d7b9479b8026f620222c0ed0856c7036b7dcef41..e58f42b51fc1d219427026e7f15f971c5215af9e 100644 (file)
@@ -679,7 +679,6 @@ struct rtl8169_private {
        struct pci_dev *pci_dev;
        struct net_device *dev;
        struct napi_struct napi;
-       spinlock_t lock;
        u32 msg_enable;
        u16 txd_version;
        u16 mac_version;
@@ -1721,9 +1720,7 @@ static void rtl8169_get_regs(struct net_device *dev, struct ethtool_regs *regs,
                regs->len = R8169_REGS_SIZE;
 
        rtl_lock_work(tp);
-       spin_lock_bh(&tp->lock);
        memcpy_fromio(p, tp->mmio_addr, regs->len);
-       spin_unlock_bh(&tp->lock);
        rtl_unlock_work(tp);
 }
 
@@ -4149,7 +4146,6 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
                tp->do_ioctl = rtl_xmii_ioctl;
        }
 
-       spin_lock_init(&tp->lock);
        mutex_init(&tp->wk.mutex);
 
        /* Get MAC address */
@@ -6029,8 +6025,6 @@ static void rtl_set_rx_mode(struct net_device *dev)
                }
        }
 
-       spin_lock_bh(&tp->lock);
-
        tmp = (RTL_R32(RxConfig) & ~RX_CONFIG_ACCEPT_MASK) | rx_mode;
 
        if (tp->mac_version > RTL_GIGA_MAC_VER_06) {
@@ -6044,8 +6038,6 @@ static void rtl_set_rx_mode(struct net_device *dev)
        RTL_W32(MAR0 + 0, mc_filter[0]);
 
        RTL_W32(RxConfig, tmp);
-
-       spin_unlock_bh(&tp->lock);
 }
 
 /**