This patch seems broken:

 > @@ -842,7 +845,12 @@ static void nes_netdev_set_multicast_list(struct 
 > net_device *netdev)
 >  
 > +    spin_lock_irqsave(&nesadapter->resource_lock, flags);

nes_netdev_set_multicast_list() takes resource lock unconditionally
here, but...

 >      if (!mc_all_on) {

 ...

 > +            spin_unlock_irqrestore(&nesadapter->resource_lock, flags);
 >      }
 >  }

only drops the lock if mc_all_on is not set.

I rolled the below into the patch to fix things:

diff --git a/drivers/infiniband/hw/nes/nes_nic.c 
b/drivers/infiniband/hw/nes/nes_nic.c
index 26809f4..12ff698 100644
--- a/drivers/infiniband/hw/nes/nes_nic.c
+++ b/drivers/infiniband/hw/nes/nes_nic.c
@@ -952,8 +952,9 @@ static void nes_netdev_set_multicast_list(struct net_device 
*netdev)
                        nes_write_indexed(nesdev, NES_IDX_NIC_UNICAST_ALL,
                                                                nic_active);
                }
-               spin_unlock_irqrestore(&nesadapter->resource_lock, flags);
        }
+
+       spin_unlock_irqrestore(&nesadapter->resource_lock, flags);
 }
 
 
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to