• Somnath Kotur's avatar
    bnxt_re: Remove RTNL lock dependency in bnxt_re_query_port · 74828b12
    Somnath Kotur authored
    When there is a NETDEV_UNREGISTER event, bnxt_re driver calls
    ib_unregister_device() (RTNL lock held).
    ib_unregister_device attempts to flush a worker queue scheduled by
    ib_core and that queue might have a pending ib_query_port().
    ib_query_port in turn calls bnxt_re_query_port(), which while querying the
    link speed using ib_get_eth_speed(), tries to acquire the rtnl_lock() which
    was already held by NETDEV_UNREGISTER.
    Fixing the issue by removing the link speed query from bnxt_re_query_port()
    Now the speed is queried post a successful ib_register_device or whenever
    there is a NETDEV_CHANGE event.
    Signed-off-by: default avatarSomnath Kotur <somnath.kotur@broadcom.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    74828b12
bnxt_re.h 4.77 KB