diff options
| author | Samuel Ahn <sahn@qti.qualcomm.com> | 2014-12-23 16:04:58 -0800 |
|---|---|---|
| committer | AnjaneeDevi Kapparapu <c_akappa@qti.qualcomm.com> | 2014-12-24 16:12:38 +0530 |
| commit | 2eb7b2e136bd70249ec5763ae7bb0cabb7ca39f7 (patch) | |
| tree | 130f239bfb339d1fbb0cea081e1aea24e27eaca1 | |
| parent | 7ffbd85120c0e183ff1405b3114e97f8038c960c (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.c | 4 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 5 |
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: |
