bcmdhd: Added cleanup keepalive routine in ndo_stop context
It is fixed in firmware side. DHD also needs to be fixed to avoid out of sync state of keepalive
[ Analysis ]
Founded that the suspicious logs are seen in the previous link down an interface down operation.
While wl_event_handler(WLC_E_LINK) was processing, Wificond called .ndo_stop and deleted the interface and dhdinfo->iflist[idx] is set NULL.
so, DHD failed to send IOVAR "mkeep_alive" due to dhdinfo->iflist[idx] is NULL.
this problem seems to make an out of sync state and caused a trap.
[ Solution ]
It is good to clean up the keepalive at the point of interface down
Calls wl_cleanup_keep_alive() in _wl_cfg80211_del_if() to prevent the case where the interface is deleted by .ndo_stop
Bug: 243787387
Test: Passed on Korea SVT test cycle and the way to reproduce
Change-Id: I7a9e2d5f7720d727cc8ff0eba6cbf00eb2afb4a0
Signed-off-by: Dennis Jeon <dennis.jeon@broadcom.corp-partner.google.com>
1 file changed