Re: [PATCH rdma-rc] IB/mlx5: Fix cleanup order on unload

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

 



On Wed, 2018-03-14 at 16:46 -0400, Doug Ledford wrote:
> On Wed, 2018-03-14 at 09:14 +0200, Leon Romanovsky wrote:
> > From: Mark Bloch <markb@xxxxxxxxxxxx>
> > 
> > On load we create private CQ/QP/PD in order to be used by UMR, we
> > create
> > those resources after we register ourself as an IB device, and we
> > destroy
> > them after we unregister as an IB device. This was changed by
> > commit
> > 16c1975f1032 ("IB/mlx5: Create profile infrastructure to add and
> > remove
> > stages") which moved the destruction before we unregistration. This
> > allowed to trigger an invalid memory access when unloading mlx5_ib
> > while
> > there are open resources:
> > 
> > BUG: unable to handle kernel paging request at 00000001002c012c
> > ...
> > Call Trace:
> >  mlx5_ib_post_send_wait+0x75/0x110 [mlx5_ib]
> >  __slab_free+0x9a/0x2d0
> >  delay_time_func+0x10/0x10 [mlx5_ib]
> >  unreg_umr.isra.15+0x4b/0x50 [mlx5_ib]
> >  mlx5_mr_cache_free+0x46/0x150 [mlx5_ib]
> >  clean_mr+0xc9/0x190 [mlx5_ib]
> >  dereg_mr+0xba/0xf0 [mlx5_ib]
> >  ib_dereg_mr+0x13/0x20 [ib_core]
> >  remove_commit_idr_uobject+0x16/0x70 [ib_uverbs]
> >  uverbs_cleanup_ucontext+0xe8/0x1a0 [ib_uverbs]
> >  ib_uverbs_cleanup_ucontext.isra.9+0x19/0x40 [ib_uverbs]
> >  ib_uverbs_remove_one+0x162/0x2e0 [ib_uverbs]
> >  ib_unregister_device+0xd4/0x190 [ib_core]
> >  __mlx5_ib_remove+0x2e/0x40 [mlx5_ib]
> >  mlx5_remove_device+0xf5/0x120 [mlx5_core]
> >  mlx5_unregister_interface+0x37/0x90 [mlx5_core]
> >  mlx5_ib_cleanup+0xc/0x225 [mlx5_ib]
> >  SyS_delete_module+0x153/0x230
> >  do_syscall_64+0x62/0x110
> >  entry_SYSCALL_64_after_hwframe+0x21/0x86
> > ...
> > 
> > We restore the original behavior by breaking the UMR stage into two
> > parts,
> > pre and post IB registration stages, this way we can restore the
> > original
> > functionality and maintain clean separation of logic between
> > stages.
> > 
> > Fixes: 16c1975f1032 ("IB/mlx5: Create profile infrastructure to add
> > and remove stages")
> > Signed-off-by: Mark Bloch <markb@xxxxxxxxxxxx>
> > Signed-off-by: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> > ---
> > Hi,
> > 
> > Please be aware that this patch will create merge conflict between
> > rdma-rc and rdma-next.
> 
> Yeah, we'll get a chance to work through that.  I've applied this to
> for-rc, and I have plans to merge for-rc into for-next (I need to do
> that before I take the 5 patch series I said I was taking, but that I
> haven't actually applied yet because it needs the merge between for-
> rc
> and for-next before I apply it).  So, we'll get to fix this up before
> the for-next branch heads to Linus.  And the cause of the merge issue
> is
> understandable, so I don't have a problem with it.

Is this the fix for the issue I worked with Jason which we had to pull
for RHEL 7.5

Regards
Laurence
> 
--
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