adapter->lock is only used in et131x_multicast(), which is eventually called by network stack function __dev_set_rx_mode(). __dev_set_rx_mode() is always called by (net_device *)dev->addr_list_lock hold, to protect from concurrent access. So adapter->lock is redundant. Signed-off-by: Zhao, Gang <gamerh2o@xxxxxxxxx> Acked-by: Mark Einon <mark.einon@xxxxxxxxx> --- Acked at post: http://article.gmane.org/gmane.linux.kernel/1599348 This patch is slightly modified: also remove unused variable 'unsigned long flags', or this patch will made sparse warning: drivers/staging/et131x/et131x.c: In function ‘et131x_multicast’: drivers/staging/et131x/et131x.c:4289:16: warning: unused variable ‘flags’ [-Wunused-variable] unsigned long flags; ^ drivers/staging/et131x/et131x.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/drivers/staging/et131x/et131x.c b/drivers/staging/et131x/et131x.c index cf97049..6413500 100644 --- a/drivers/staging/et131x/et131x.c +++ b/drivers/staging/et131x/et131x.c @@ -485,8 +485,6 @@ struct et131x_adapter { u8 eeprom_data[2]; /* Spinlocks */ - spinlock_t lock; - spinlock_t tcb_send_qlock; spinlock_t tcb_ready_qlock; spinlock_t send_hw_lock; @@ -3762,7 +3760,6 @@ static struct et131x_adapter *et131x_adapter_init(struct net_device *netdev, adapter->netdev = netdev; /* Initialize spinlocks here */ - spin_lock_init(&adapter->lock); spin_lock_init(&adapter->tcb_send_qlock); spin_lock_init(&adapter->tcb_ready_qlock); spin_lock_init(&adapter->send_hw_lock); @@ -4294,12 +4291,9 @@ static void et131x_multicast(struct net_device *netdev) { struct et131x_adapter *adapter = netdev_priv(netdev); int packet_filter; - unsigned long flags; struct netdev_hw_addr *ha; int i; - spin_lock_irqsave(&adapter->lock, flags); - /* Before we modify the platform-independent filter flags, store them * locally. This allows us to determine if anything's changed and if * we even need to bother the hardware @@ -4351,8 +4345,6 @@ static void et131x_multicast(struct net_device *netdev) */ if (packet_filter != adapter->packet_filter) et131x_set_packet_filter(adapter); - - spin_unlock_irqrestore(&adapter->lock, flags); } /* et131x_tx - The handler to tx a packet on the device */ -- 1.8.5.3 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel