mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
prop (CR) ioctl called from Motcode
The ioctl handling needs to be differentiated between calls made by Mot code and iwpriv code since they fill in different parameters. Change-Id: If5276c14e20f87c88123c8d3c68849ac8f4e6173 Reviewed-on: https://gerrit.mot.com/1456948 SME-Granted: SME Approvals Granted SLTApproved: Slta Waiver Reviewed-by: Prashanth Chakravarthy <a19110@motorola.com> Tested-by: Jira Key Submit-Approved: Raja Phani K <a16821@motorola.com>
This commit is contained in:
parent
2152b3eff4
commit
89f884deab
1 changed files with 37 additions and 3 deletions
|
|
@ -973,6 +973,8 @@
|
|||
*/
|
||||
#define WE_SET_CHANNEL 88
|
||||
#define WE_SET_CONC_SYSTEM_PREF 89
|
||||
#define MAX_SUB_CMD 91 // Motorola, IKDREL3KK-10418
|
||||
|
||||
|
||||
/*
|
||||
* <ioctl>
|
||||
|
|
@ -5867,9 +5869,13 @@ static int __iw_set_three_ints_getnone(struct net_device *dev,
|
|||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
struct hdd_adapter *adapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
||||
int *value = (int *)extra;
|
||||
int sub_cmd = value[0];
|
||||
int ret;
|
||||
//BEGIN MOT a19110 IKSWL-15774 Ioctl from Mot code
|
||||
int *value;
|
||||
int sub_cmd, cmd_len;
|
||||
int *tmp_value;
|
||||
int *get_value = NULL;
|
||||
int ret = 0;
|
||||
//END IKSWL-15774
|
||||
uint8_t dual_mac_feature = DISABLE_DBS_CXN_AND_SCAN;
|
||||
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
QDF_STATUS status;
|
||||
|
|
@ -5884,6 +5890,29 @@ static int __iw_set_three_ints_getnone(struct net_device *dev,
|
|||
ret = wlan_hdd_validate_context(hdd_ctx);
|
||||
if (0 != ret)
|
||||
return ret;
|
||||
//BEGIN MOT a19110 IKSWL-15774 Ioctl from Mot code
|
||||
tmp_value = (int *)extra;
|
||||
|
||||
// Copy from wrqu structure if it was a ioctl from Motorola code
|
||||
if(tmp_value[0] < 0 || (tmp_value[0] >= MAX_SUB_CMD)) {
|
||||
cmd_len = wrqu->data.length;
|
||||
get_value = (int *) kmalloc(cmd_len+1, GFP_KERNEL); // Motorola, IKHSS7-39028
|
||||
|
||||
if(get_value == NULL)
|
||||
return -ENOMEM;
|
||||
|
||||
if(copy_from_user((char *) get_value, (char*)(wrqu->data.pointer), cmd_len)) {
|
||||
hdd_alert("copy_from_user --data pointer failed! bailing");
|
||||
kfree(get_value);
|
||||
return -EFAULT;
|
||||
}
|
||||
|
||||
value = (int *)get_value;
|
||||
} else {
|
||||
value = (int *)extra;
|
||||
}
|
||||
sub_cmd = value[0];
|
||||
//END IKSWL-15774
|
||||
|
||||
ret = hdd_check_private_wext_control(hdd_ctx, info);
|
||||
if (0 != ret)
|
||||
|
|
@ -5928,6 +5957,11 @@ static int __iw_set_three_ints_getnone(struct net_device *dev,
|
|||
break;
|
||||
|
||||
}
|
||||
|
||||
//BEGIN MOT a19110 IKSWL-15774 Ioctl from Mot code
|
||||
if(get_value != NULL)
|
||||
kfree(get_value);
|
||||
//END IKSWL-15774
|
||||
hdd_exit();
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue