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>
2 files changed
tree: dc8901252dfeab95ae96ed766607696c5f365f32
  1. drivers/
  2. data_dlkm_vendor_board.mk