qcacmn: Invoke the objmgr destroy handlers in reverse order of creation
Invoke the object manager destroy handlers in reverse order of creation, MLME creates the vdev 1st and all the handlers are invoked, during destroy as well the vdev is deleted 1st and destroy handlers are invoked later. Any handlers dependent on the vdev object will have issue, so invoke the handlers in the reverse order of creation and delete the vdev last. Change-Id: Ib15507464f78a436c96a0910e2af0307a3d711fb CRs-Fixed: 3565425
Šī revīzija ir iekļauta:

revīziju iesūtīja
Rahul Choudhary

vecāks
cc94ae4317
revīzija
ca7419851a
@@ -297,7 +297,7 @@ qdf_export_symbol(wlan_objmgr_vdev_obj_create);
|
||||
|
||||
static QDF_STATUS wlan_objmgr_vdev_obj_destroy(struct wlan_objmgr_vdev *vdev)
|
||||
{
|
||||
uint8_t id;
|
||||
int8_t id;
|
||||
wlan_objmgr_vdev_destroy_handler handler;
|
||||
QDF_STATUS obj_status;
|
||||
void *arg;
|
||||
@@ -323,8 +323,8 @@ static QDF_STATUS wlan_objmgr_vdev_obj_destroy(struct wlan_objmgr_vdev *vdev)
|
||||
wlan_minidump_remove(vdev, sizeof(*vdev), wlan_vdev_get_psoc(vdev),
|
||||
WLAN_MD_OBJMGR_VDEV, "wlan_objmgr_vdev");
|
||||
|
||||
/* Invoke registered destroy handlers */
|
||||
for (id = 0; id < WLAN_UMAC_MAX_COMPONENTS; id++) {
|
||||
/* Invoke registered destroy handlers in reverse order of creation */
|
||||
for (id = WLAN_UMAC_COMP_ID_MAX - 1; id >= 0; id--) {
|
||||
handler = g_umac_glb_obj->vdev_destroy_handler[id];
|
||||
arg = g_umac_glb_obj->vdev_destroy_handler_arg[id];
|
||||
if (handler &&
|
||||
|
Atsaukties uz šo jaunā problēmā
Block a user