summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Ahn <sahn@qti.qualcomm.com>2014-12-23 16:04:58 -0800
committerAnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com>2014-12-24 16:12:38 +0530
commit2eb7b2e136bd70249ec5763ae7bb0cabb7ca39f7 (patch)
tree130f239bfb339d1fbb0cea081e1aea24e27eaca1
parent7ffbd85120c0e183ff1405b3114e97f8038c960c (diff)
Fixed setting the DSRC channel schedule.
Setting the DSRC channel schedule would not copy the schedule from user space properly. This has been fixed by updating the we_private_args structure with the appropriate parameters for iw_set_dot11p_channel_sched. There was also a crash due to a freeing a block of memory twice. This was fixed by removing the offending memory free. CRs-Fixed: 774579 Change-Id: I0a3ab2c693a0887e255ba276b0cdd1e3cbcb1a8c
-rw-r--r--CORE/HDD/src/wlan_hdd_wext.c4
-rw-r--r--CORE/SERVICES/WMA/wma.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c
index f1a3305c8e5f..cb999c6bd3c2 100644
--- a/CORE/HDD/src/wlan_hdd_wext.c
+++ b/CORE/HDD/src/wlan_hdd_wext.c
@@ -11072,6 +11072,10 @@ static const struct iw_priv_args we_private_args[] = {
{ WE_SET_SMPS_PARAM,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 2,
0, "set_smps_param" },
+ { WLAN_SET_DOT11P_CHANNEL_SCHED,
+ IW_PRIV_TYPE_BYTE
+ | sizeof(struct dot11p_channel_sched),
+ 0, "set_dot11p" },
#ifdef DEBUG
{ WE_SET_FW_CRASH_INJECT,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 2,
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 0611194bd8a8..1751cb7aecd6 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -23698,7 +23698,10 @@ VOS_STATUS wma_mc_process_msg(v_VOID_t *vos_context, vos_msg_t *msg)
case WDA_OCB_SET_SCHED_REQUEST:
wma_ocb_set_sched_req(wma_handle,
(sir_ocb_set_sched_request_t *)(msg->bodyptr));
- vos_mem_free(msg->bodyptr);
+ /* no need to vos_mem_free(msg->bodyptr) here. This synchronous
+ * request is waiting on completion in
+ * iw_set_dot11p_channel_sched()
+ * which will clean up the request buffer. */
break;
#ifdef FEATURE_BUS_AUTO_SUSPEND
case WDA_WLAN_AUTO_SUSPEND_IND: