From 2fa5e2dfac4a49aa9fdabd6ce0f133c3c6b70032 Mon Sep 17 00:00:00 2001 From: Vignesh Viswanathan Date: Thu, 31 May 2018 12:37:07 +0530 Subject: [PATCH] qcacld-3.0: Reset rmfEnabled for STA VDEV during DEL BSS When add_bss is done for a STA vdev, the rmfEnabled flag is set on the wma_txrx_node based on the PE session config. However this flag is not reset during del_bss which leads to DPP public action frames sent from supplicant with no session established to be considered as rmf enabled (due to previous connected rmf session) and adding additional bytes in the header. This leads to the DPP frame of incorrect length to be transmitted and the other DPP STA receiving the frame drops it. Reset the rmfEnabled flag in wma_vdev_stop_resp_handler if set previously for the VDEV. Change-Id: I6ffb1f3efbfc8455768f54155a2abcc8ccf13fe6 CRs-Fixed: 2236476 --- core/wma/src/wma_dev_if.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index b239aeb5b3d5..a1dff224a127 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -2002,6 +2002,16 @@ int wma_vdev_stop_resp_handler(void *handle, uint8_t *cmd_param_info, /* vdev in stopped state, no more waiting for key */ iface->is_waiting_for_key = false; + /* + * Reset the rmfEnabled as there might be MGMT action frames + * sent on this vdev before the next session is established. + */ + if (iface->rmfEnabled) { + iface->rmfEnabled = 0; + WMA_LOGD(FL("Reset rmfEnabled for vdev %d"), + resp_event->vdev_id); + } + wma_release_wakelock(&iface->vdev_stop_wakelock); req_msg = wma_find_vdev_req(wma, resp_event->vdev_id,