summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@qca.qualcomm.com>2014-01-20 16:43:50 -0800
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2014-01-26 21:37:03 -0800
commit58e1dba99a018cf714b01c1eee39bd0c3acbb493 (patch)
tree170b34ad78a192650cb6e5951dd9561c936e87f2
parent09ba53d50fbddd7e48535a8ae325b0ba4fd224e5 (diff)
qcacld: Fix of page fault crash caused by garbage vdev_id
correct vdev_id is not passed to tlshim_mgmt_roam_event_ind and since vdev_id is not passed a garbage value is taken from stack and which led to page fault later in tlshim_mgmt_rx_proces() Change-Id: Id2b73578e4299805db1c725a0e857c27c3bcf02c CRs-fixed: 604727
-rw-r--r--CORE/CLD_TXRX/TLSHIM/tl_shim.h6
-rw-r--r--CORE/SERVICES/WMA/wma.c3
2 files changed, 7 insertions, 2 deletions
diff --git a/CORE/CLD_TXRX/TLSHIM/tl_shim.h b/CORE/CLD_TXRX/TLSHIM/tl_shim.h
index 3db06e786fd8..cd5813b5c6c0 100644
--- a/CORE/CLD_TXRX/TLSHIM/tl_shim.h
+++ b/CORE/CLD_TXRX/TLSHIM/tl_shim.h
@@ -79,4 +79,10 @@ struct deferred_iapp_work iapp_work;
void WLANTL_RegisterVdev(void *vos_ctx, void *vdev);
VOS_STATUS tl_shim_get_vdevid(struct ol_txrx_peer_t *peer, u_int8_t *vdev_id);
+/*
+ * tlshim_mgmt_roam_event_ind() is called from WMA layer when
+ * BETTER_AP_FOUND event is received from roam engine.
+ */
+int tlshim_mgmt_roam_event_ind(void *context, u_int32_t vdev_id);
+
#endif
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 320874d6feb6..8679848053ed 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -14161,9 +14161,8 @@ static VOS_STATUS wma_tx_detach(tp_wma_handle wma_handle)
*/
static void wma_roam_better_ap_handler(tp_wma_handle wma, u_int32_t vdev_id)
{
-extern int tlshim_mgmt_roam_event_ind(void *context);
VOS_STATUS ret;
- ret = tlshim_mgmt_roam_event_ind(wma->vos_context);
+ ret = tlshim_mgmt_roam_event_ind(wma->vos_context, vdev_id);
}
/* function : wma_roam_event_callback