As the comment says, rtnl_lock is acquired by the caller of this
function. In fact this is not specific to 2.6.26 and later but has
always been the case, so checking lock state is unnecessary and we can
just call (un)register_netdevice() knowing that rtnl_lock is held.
rtnl_is_locked() checks whether the lock is currently held by any task,
not specifically by _this_ task so it is wrong to use it in the
(un)register path.
In both of these cases, examining the call stack shows that there is no
way for rtnl_lock to be taken by the task running these functions, so
remove the checks.
Further, (un)register_netdev() have existed since the beginning of Git
history so there's no reason for a version check here and we can always
call the function that takes the lock itself and should never call the
version which expects rtnl_lock to be held.
Fix the following errors that happen on a 5.19 kernel:
error: initialization of ‘int (*)(struct wiphy *, struct net_device *, unsigned int)’
from incompatible pointer type ‘int (*)(struct wiphy *, struct net_device *)’
[-Werror=incompatible-pointer-types]
6821 | .stop_ap = cfg80211_rtw_stop_ap,
error: ‘struct wireless_dev’ has no member named ‘current_bss’
7052 | if (wdev->current_bss) {
Signed-off-by: Alexandre Ghiti <alexandre.ghiti@canonical.com>