• Maor Gottlieb's avatar
    RDMA/mlx5: Fix crash when unbind multiport slave · da78fe5f
    Maor Gottlieb authored
    Fix the below crash when deleting a slave from the unaffiliated list
    twice. First time when the slave is bound to the master and the second
    when the slave is unloaded.
    
    Fix it by checking if slave is unaffiliated (doesn't have ib device)
    before removing from the list.
    
      RIP: 0010:mlx5r_mp_remove+0x4e/0xa0 [mlx5_ib]
      Call Trace:
       auxiliary_bus_remove+0x18/0x30
       __device_release_driver+0x177/x220
       device_release_driver+0x24/0x30
       bus_remove_device+0xd8/0x140
       device_del+0x18a/0x3e0
       mlx5_rescan_drivers_locked+0xa9/0x210 [mlx5_core]
       mlx5_unregister_device+0x34/0x60 [mlx5_core]
       mlx5_uninit_one+0x32/0x100 [mlx5_core]
       remove_one+0x6e/0xe0 [mlx5_core]
       pci_device_remove+0x36/0xa0
       __device_release_driver+0x177/0x220
       device_driver_detach+0x3c/0xa0
       unbind_store+0x113/0x130
       kernfs_fop_write_iter+0x110/0x1a0
       new_sync_write+0x116/0x1a0
       vfs_write+0x1ba/0x260
       ksys_write+0x5f/0xe0
       do_syscall_64+0x3d/0x90
       entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Fixes: 93f82444 ("RDMA/mlx5: Convert mlx5_ib to use auxiliary bus")
    Link: https://lore.kernel.org/r/17ec98989b0ba88f7adfbad68eb20bce8d567b44.1628587493.git.leonro@nvidia.comSigned-off-by: default avatarMaor Gottlieb <maorg@nvidia.com>
    Signed-off-by: default avatarLeon Romanovsky <leonro@nvidia.com>
    Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
    da78fe5f
main.c 119 KB