drivers: rmnet_shs: Change init to Register events
Previously we used NETDEV_GOING_DOWN and NETDEV_UP events to cover shs init/de-init scenarios. That did not cover rmnet driver going down prematurely if rmnet vnds were cleaned up in a non-SSR scenario. This change will allow shs to keep track of registered vnds and to de-init when the last vnd has been unregistered to avoid this issue. <6> Unable to handle kernel NULL pointer dereference at virtual address 00000000 <6> Mem abort info: <6> Exception class = DABT (current EL), IL = 32 bits <6> SET = 0, FnV = 0 <6> EA = 0, S1PTW = 0 <6> FSC = 5 <6> Data abort info: <6> ISV = 0, ISS = 0x00000005 <6> CM = 0, WnR = 0 <6> user pgtable: 4k pages, 39-bit VAs, pgd = 00000000bafe2c18 <6> task: 00000000d6d739bd task.stack: 000000009afe105c <2> pc : rmnet_map_dl_ind_deregister+0x24/0x68 <2> lr : rmnet_shs_exit+0x30/0x68 [rmnet_shs] <2> Call trace: <2> rmnet_map_dl_ind_deregister+0x24/0x68 <2> rmnet_shs_dev_notify_cb+0x118/0x478 [rmnet_shs] <2> raw_notifier_call_chain+0x3c/0x68 <2> __dev_close_many+0x9c/0x158 <2> dev_close_many+0x7c/0x1e0 <2> rollback_registered_many+0xe4/0x460 <2> unregister_netdev+0x48/0xd0 <2> mhi_netdev_remove+0x124/0x220 <2> mhi_driver_remove+0x178/0x250 <2> device_release_driver_internal+0x158/0x200 <2> device_release_driver+0x14/0x20 <2> bus_remove_device+0xd8/0x100 CRs-Fixed: 2540066 Change-Id: I231ff0af3cb2feb955b891b628487ab4fc3377ba Acked-by:Raul Martinez <mraul@qti.qualcomm.com> Signed-off-by:
Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Loading
Please register or sign in to comment