qcacmn: Deregister IPA handler from pdev during deinit
A htt message arrived after ipa context is freed as part of deinitialization which was dereferenced by event handler assigned to pdev->ipa_uc_op_cb, resulting in crash. To fix this, during deinit pdev->ipa_uc_op_cb is deregistered and assigned NULL before freeing up ipa context. Change-Id: I8125cb104a538e88cda93960f7443129fabd850a CRs-Fixed: 2793295
Цей коміт міститься в:
@@ -845,6 +845,21 @@ QDF_STATUS dp_ipa_register_op_cb(struct cdp_soc_t *soc_hdl, uint8_t pdev_id,
|
||||
return QDF_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
void dp_ipa_deregister_op_cb(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
|
||||
{
|
||||
struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl);
|
||||
struct dp_pdev *pdev = dp_get_pdev_from_soc_pdev_id_wifi3(soc, pdev_id);
|
||||
|
||||
if (!pdev) {
|
||||
dp_err("Invalid instance");
|
||||
return;
|
||||
}
|
||||
|
||||
dp_debug("Deregister OP handler callback");
|
||||
pdev->ipa_uc_op_cb = NULL;
|
||||
pdev->usr_ctxt = NULL;
|
||||
}
|
||||
|
||||
QDF_STATUS dp_ipa_get_stat(struct cdp_soc_t *soc_hdl, uint8_t pdev_id)
|
||||
{
|
||||
/* TBD */
|
||||
|
Посилання в новій задачі
Заблокувати користувача