diff options
author | Devesh Sharma <devesh.sharma@avagotech.com> | 2015-12-24 13:14:08 -0500 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-01-19 14:00:47 -0500 |
commit | 9781808c632860fcd82b8e371539a7458ce83548 (patch) | |
tree | 42bcb771def010846d7c7cf66d8844033a40b5a5 /drivers/infiniband | |
parent | 3b1ea43009f2aca9f8ff0dd6540f6701e0871baf (diff) | |
download | linux-9781808c632860fcd82b8e371539a7458ce83548.tar.gz linux-9781808c632860fcd82b8e371539a7458ce83548.tar.bz2 linux-9781808c632860fcd82b8e371539a7458ce83548.zip |
RDMA/be2net: Remove open and close entry points
Recently Dough Ledford reported a deadlock happening
between ocrdma-load sequence and NetworkManager service
issueing "open" on be2net interface.
The deadlock happens when any be2net hook (e.g. open/close) is called
in parallel to insmod ocrdma.ko.
A. be2net is sending administrative open/close event to ocrdma holding
device_list_mutex. It does this from ndo_open/ndo_stop hooks of be2net.
So sequence of locks is rtnl_lock---> device_list lock
B. When new ocrdma roce device gets registered, infiniband stack now
takes rtnl_lock in ib_register_device() in GID initialization routines.
So sequence of locks in this path is device_list lock ---> rtnl_lock.
This improper locking sequence causes deadlock.
In order to resolve the above deadlock condition, ocrdma intorduced a
patch to stop listening to administrative open/close events generated from
be2net driver. It now depends on link-state-change async-event generated from
CNA. This change leaves behind dead code which used to generate administrative
open/close events. This patch cleans-up all that dead code from be2net.
Reported-by: Doug Ledford <dledford@redhat.com>
CC: Sathya Perla <sathya.perla@avagotech.com>
Signed-off-by: Padmanabh Ratnakar <padmanabh.ratnakar@avagotech.com>
Signed-off-by: Selvin Xavier <selvin.xavier@avagotech.com>
Signed-off-by: Devesh Sharma <devesh.sharma@avagotech.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
0 files changed, 0 insertions, 0 deletions