Re: [PATCH v2] IB/ipoib: replace local_irq_disable() with proper locking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 16, 2018 at 09:47:32PM +0200, Sebastian Andrzej Siewior wrote:
> In ipoib_mcast_restart_task() the netif_addr_lock() is invoked prior
> local_irq_save(). netif_addr_lock() should not be invoked in interrupt disabled
> section, only in BH disabled sections.
> The priv->lock is always acquired with disabled interrupts. The only place
> where netif_addr_lock() and priv->lock nest ist ipoib_mcast_restart_task().
> 
> Drop the local_irq_save() and acquire priv->lock with spin_lock_irq() inside
> the netif_addr locked section. It's safe to do so because the caller is either
> a worker function or __ipoib_ib_dev_flush() which are both calling with
> interrupts enabled (and since BH is enabled here, too so
> netif_addr_lock_bh() needs to be used).
> 
> Cc: Doug Ledford <dledford@xxxxxxxxxx>
> Cc: Jason Gunthorpe <jgg@xxxxxxxx>
> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx>
> On 2018-05-16 11:05:09 [-0600], Jason Gunthorpe wrote:
> > Send a v2 with a tighter commit message please
> 
> here it is.
> 
> > Jason
> 
>  drivers/infiniband/ulp/ipoib/ipoib_multicast.c | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)

Applied to for-next, thanks

Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux