Hi,
I'm reporting you about misuse of rtnl_is_locked() in
WILC_WFI_deinit_mon_interface() function.
Note, that rtnl_is_locked() *does not mean* rtnl is locked on the *current
cpu*. This primitive
returns true in case of rtnl is locked somewhere in the system. So, it can't be
used in the below
code:
int WILC_WFI_deinit_mon_interface(void)
{
bool rollback_lock = false;
if (wilc_wfi_mon) {
if (rtnl_is_locked()) { <------Mistake
rtnl_unlock();
rollback_lock = true;
}
unregister_netdev(wilc_wfi_mon);
if (rollback_lock) {
rtnl_lock();
rollback_lock = false;
}
wilc_wfi_mon = NULL;
}
return 0;
}
Kirill