qcacld-3.0: Register the netdev notifier before the netdevices

Applications in the userspace can sleep on the RTM events from
the driver. One such application waiting of RTM_NEW_LINK indication
does interface up as soon as it recieves the indication, so the
kernel takes rtnl_lock to call the dev_open on the interface.
Load/unload of the driver and dev_open of the interfaces are
synchronized with hdd_init_deinit_lock. So the __hdd_open is waiting
on the hdd_init_deinit_lock which is currently held by the driver
loading context. After registering the interfaces driver goes to
register the netdev notifier which is blocked on the rtnl_lock
currently held by the dev_open resulting in deadlock.

To mitigate the issue register the netdev notifier before the
interfaces are registered.

Change-Id: Ibb0c187a43ad87fa535ff583316af430e1ddf04f
CRs-Fixed: 2078720
This commit is contained in:
Arun Khandavalli 2017-08-07 19:56:23 +05:30 • committed by snandini
commit 08479ba85b
2 changed files with 10 additions and 16 deletions

3
Kbuild
View file

@ -1615,7 +1615,8 @@ CDEFINES := -DANI_LITTLE_BYTE_ENDIAN \
-DCONVERGED_P2P_ENABLE \
-DWLAN_POLICY_MGR_ENABLE \
-DSUPPORT_11AX \
-DCONVERGED_TDLS_ENABLE
-DCONVERGED_TDLS_ENABLE \
-DCONFIG_HDD_INIT_WITH_RTNL_LOCK
############ WIFI POS ##############