staging: wilc1000: validate input to set_wiphy_param and return proper errors
v3 cover staging: wilc1000: validate input to set_wiphy_param and return proper errors
From: Adham Abozaeid <[email protected]>
Validate input parameters to set_wiphy_param before scheduling handle_cfg_param() to validate them.
This way proper errors can be returned to caller. Also cleaned up unused code in handle_cfg_param.
Changes since v1:
- Correction spelling in subject of patch#2
- Added From: tag to have correct email from value
Changes since v2:
- Reverted unnecessary file permission changes
Adham Abozaeid (4):
staging: wilc1000: remove unused flags in handle_cfg_param()
staging: wilc1000: validate cfg parameters before scheduling the work
staging: wilc1000: Don't keep a copy of wiphy parameters in the driver
staging: wilc1000: Remove unused mutex cfg_values_lock
drivers/staging/wilc1000/host_interface.c | 291 +----------------- drivers/staging/wilc1000/host_interface.h | 32 -- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 50 ++- drivers/staging/wilc1000/wilc_wlan_if.h | 9 - 4 files changed, 58 insertions(+), 324 deletions(-)
Signature · 1 line
2.17.1
PATCH v3 1/4 staging: wilc1000: remove unused flags in handle_cfg_param()
From: Adham Abozaeid <[email protected]>
handle_cfg_param() receives a bit map that describes what to be changed. Some of these bits flags aren't referred to from elsewhere and can be removed.
--- drivers/staging/wilc1000/host_interface.c | 216 ---------------------- drivers/staging/wilc1000/host_interface.h | 29 --- drivers/staging/wilc1000/wilc_wlan_if.h | 9 - 3 files changed, 254 deletions(-)
drivers/staging/wilc1000/host_interface.c +0 -216
@@ -374,64 +374,6 @@ static void handle_cfg_param(struct work_struct *work)mutex_lock (&hif_drv->cfg_values_lock); -if (param->flag &BSS_TYPE ) { -u8 bss_type = param->bss_type; - -if (bss_type <6 ) { - wid_list[i].id =WID_BSS_TYPE ; - wid_list[i].val = (s8 *)¶m->bss_type; - wid_list[i].type =WID_CHAR ; - wid_list[i].size =sizeof (char ); - hif_drv->cfg_values.bss_type = bss_type; - }else { -netdev_err (vif->ndev,"check value 6 over\n" ); - goto unlock; - } - i++; - } -if (param->flag &AUTH_TYPE ) { -u8 auth_type = param->auth_type; - -if (auth_type ==1 || auth_type ==2 || auth_type ==5 ) { - wid_list[i].id =WID_AUTH_TYPE ; - wid_list[i].val = (s8 *)¶m->auth_type; - wid_list[i].type =WID_CHAR ; - wid_list[i].size =sizeof (char ); - hif_drv->cfg_values.auth_type = auth_type; - }else { -netdev_err (vif->ndev,"Impossible value\n" ); - goto unlock; - } - i++; - } -if (param->flag &AUTHEN_TIMEOUT ) { -if (param->auth_timeout >0 ) { - wid_list[i].id =WID_AUTH_TIMEOUT ; - wid_list[i].val = (s8 *)¶m->auth_timeout; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.auth_timeout = param->auth_timeout; - }else { -netdev_err (vif->ndev,"Range(1 ~ 65535) over\n" ); - goto unlock; - } - i++; - } -if (param->flag &POWER_MANAGEMENT ) { -u8 pm_mode = param->power_mgmt_mode; - -if (pm_mode <5 ) { - wid_list[i].id =WID_POWER_MANAGEMENT ; - wid_list[i].val = (s8 *)¶m->power_mgmt_mode; - wid_list[i].type =WID_CHAR ; - wid_list[i].size =sizeof (char ); - hif_drv->cfg_values.power_mgmt_mode = pm_mode; - }else { -netdev_err (vif->ndev,"Invalid power mode\n" ); - goto unlock; - } - i++; - }if (param->flag &RETRY_SHORT ) {u16 retry_limit = param->short_retry_limit;
@@ -492,160 +434,6 @@ static void handle_cfg_param(struct work_struct *work) } i++; } -if (param->flag &PREAMBLE ) { -u16 preamble_type = param->preamble_type; - -if (param->preamble_type <3 ) { - wid_list[i].id =WID_PREAMBLE ; - wid_list[i].val = (s8 *)¶m->preamble_type; - wid_list[i].type =WID_CHAR ; - wid_list[i].size =sizeof (char ); - hif_drv->cfg_values.preamble_type = preamble_type; - }else { -netdev_err (vif->ndev,"Preamble Range(0~2) over\n" ); - goto unlock; - } - i++; - } -if (param->flag &SHORT_SLOT_ALLOWED ) { -u8 slot_allowed = param->short_slot_allowed; - -if (slot_allowed <2 ) { - wid_list[i].id =WID_SHORT_SLOT_ALLOWED ; - wid_list[i].val = (s8 *)¶m->short_slot_allowed; - wid_list[i].type =WID_CHAR ; - wid_list[i].size =sizeof (char ); - hif_drv->cfg_values.short_slot_allowed = slot_allowed; - }else { -netdev_err (vif->ndev,"Short slot(2) over\n" ); - goto unlock; - } - i++; - } -if (param->flag &TXOP_PROT_DISABLE ) { -u8 prot_disabled = param->txop_prot_disabled; - -if (param->txop_prot_disabled <2 ) { - wid_list[i].id =WID_11N_TXOP_PROT_DISABLE ; - wid_list[i].val = (s8 *)¶m->txop_prot_disabled; - wid_list[i].type =WID_CHAR ; - wid_list[i].size =sizeof (char ); - hif_drv->cfg_values.txop_prot_disabled = prot_disabled; - }else { -netdev_err (vif->ndev,"TXOP prot disable\n" ); - goto unlock; - } - i++; - } -if (param->flag &BEACON_INTERVAL ) { -u16 beacon_interval = param->beacon_interval; - -if (beacon_interval >0 ) { - wid_list[i].id =WID_BEACON_INTERVAL ; - wid_list[i].val = (s8 *)¶m->beacon_interval; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.beacon_interval = beacon_interval; - }else { -netdev_err (vif->ndev,"Beacon interval(1~65535)fail\n" ); - goto unlock; - } - i++; - } -if (param->flag &DTIM_PERIOD ) { -if (param->dtim_period >0 && param->dtim_period <256 ) { - wid_list[i].id =WID_DTIM_PERIOD ; - wid_list[i].val = (s8 *)¶m->dtim_period; - wid_list[i].type =WID_CHAR ; - wid_list[i].size =sizeof (char ); - hif_drv->cfg_values.dtim_period = param->dtim_period; - }else { -netdev_err (vif->ndev,"DTIM range(1~255) fail\n" ); - goto unlock; - } - i++; - } -if (param->flag &SITE_SURVEY ) { -enum site_survey enabled = param->site_survey_enabled; - -if (enabled <3 ) { - wid_list[i].id =WID_SITE_SURVEY ; - wid_list[i].val = (s8 *)¶m->site_survey_enabled; - wid_list[i].type =WID_CHAR ; - wid_list[i].size =sizeof (char ); - hif_drv->cfg_values.site_survey_enabled = enabled; - }else { -netdev_err (vif->ndev,"Site survey disable\n" ); - goto unlock; - } - i++; - } -if (param->flag &SITE_SURVEY_SCAN_TIME ) { -u16 scan_time = param->site_survey_scan_time; - -if (scan_time >0 ) { - wid_list[i].id =WID_SITE_SURVEY_SCAN_TIME ; - wid_list[i].val = (s8 *)¶m->site_survey_scan_time; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.site_survey_scan_time = scan_time; - }else { -netdev_err (vif->ndev,"Site scan time(1~65535) over\n" ); - goto unlock; - } - i++; - } -if (param->flag &ACTIVE_SCANTIME ) { -u16 active_scan_time = param->active_scan_time; - -if (active_scan_time >0 ) { - wid_list[i].id =WID_ACTIVE_SCAN_TIME ; - wid_list[i].val = (s8 *)¶m->active_scan_time; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.active_scan_time = active_scan_time; - }else { -netdev_err (vif->ndev,"Active time(1~65535) over\n" ); - goto unlock; - } - i++; - } -if (param->flag &PASSIVE_SCANTIME ) { -u16 time = param->passive_scan_time; - -if (time >0 ) { - wid_list[i].id =WID_PASSIVE_SCAN_TIME ; - wid_list[i].val = (s8 *)¶m->passive_scan_time; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.passive_scan_time = time; - }else { -netdev_err (vif->ndev,"Passive time(1~65535) over\n" ); - goto unlock; - } - i++; - } -if (param->flag &CURRENT_TX_RATE ) { -enum current_tx_rate curr_tx_rate = param->curr_tx_rate; - -if (curr_tx_rate ==AUTORATE || curr_tx_rate ==MBPS_1 || - curr_tx_rate ==MBPS_2 || curr_tx_rate ==MBPS_5_5 || - curr_tx_rate ==MBPS_11 || curr_tx_rate ==MBPS_6 || - curr_tx_rate ==MBPS_9 || curr_tx_rate ==MBPS_12 || - curr_tx_rate ==MBPS_18 || curr_tx_rate ==MBPS_24 || - curr_tx_rate ==MBPS_36 || curr_tx_rate ==MBPS_48 || - curr_tx_rate ==MBPS_54 ) { - wid_list[i].id =WID_CURRENT_TX_RATE ; - wid_list[i].val = (s8 *)&curr_tx_rate; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.curr_tx_rate = (u8 )curr_tx_rate; - }else { -netdev_err (vif->ndev,"out of TX rate\n" ); - goto unlock; - } - i++; - } ret =wilc_send_config_pkt (vif,SET_CFG , wid_list, i,wilc_get_vif_idx (vif));
@@ -3489,11 +3277,7 @@ int wilc_init(struct net_device *dev, struct host_if_drv **hif_drv_handler)mutex_lock (&hif_drv->cfg_values_lock); hif_drv->hif_state =HOST_IF_IDLE ; - hif_drv->cfg_values.site_survey_enabled =SITE_SURVEY_OFF ; hif_drv->cfg_values.scan_source =DEFAULT_SCAN ; - hif_drv->cfg_values.active_scan_time =ACTIVE_SCAN_TIME ; - hif_drv->cfg_values.passive_scan_time =PASSIVE_SCAN_TIME ; - hif_drv->cfg_values.curr_tx_rate =AUTORATE ; hif_drv->p2p_timeout =0 ;
drivers/staging/wilc1000/host_interface.h +0 -29
@@ -158,26 +158,11 @@ enum current_tx_rate {struct cfg_param_attr {u32 flag;u8 ht_enable; -u8 bss_type; -u8 auth_type; -u16 auth_timeout; -u8 power_mgmt_mode;u16 short_retry_limit;u16 long_retry_limit;u16 frag_threshold;u16 rts_threshold; -u16 preamble_type; -u8 short_slot_allowed; -u8 txop_prot_disabled; -u16 beacon_interval; -u16 dtim_period; -enum site_survey site_survey_enabled; -u16 site_survey_scan_time;u8 scan_source; -u16 active_scan_time; -u16 passive_scan_time; -enum current_tx_rate curr_tx_rate; - };enum cfg_param {
@@ -185,20 +170,6 @@ enum cfg_param {RETRY_LONG =BIT (1 ),FRAG_THRESHOLD =BIT (2 ),RTS_THRESHOLD =BIT (3 ), -BSS_TYPE =BIT (4 ), -AUTH_TYPE =BIT (5 ), -AUTHEN_TIMEOUT =BIT (6 ), -POWER_MANAGEMENT =BIT (7 ), -PREAMBLE =BIT (8 ), -SHORT_SLOT_ALLOWED =BIT (9 ), -TXOP_PROT_DISABLE =BIT (10 ), -BEACON_INTERVAL =BIT (11 ), -DTIM_PERIOD =BIT (12 ), -SITE_SURVEY =BIT (13 ), -SITE_SURVEY_SCAN_TIME =BIT (14 ), -ACTIVE_SCANTIME =BIT (15 ), -PASSIVE_SCANTIME =BIT (16 ), -CURRENT_TX_RATE =BIT (17 ), HT_ENABLE = BIT(18), };
drivers/staging/wilc1000/wilc_wlan_if.h +0 -9
@@ -698,13 +698,8 @@ enum {WID_LONG_RETRY_LIMIT =0x1003 ,WID_BEACON_INTERVAL =0x1006 ,WID_MEMORY_ACCESS_16BIT =0x1008 , -WID_RX_SENSE =0x100B , -WID_ACTIVE_SCAN_TIME =0x100C , -WID_PASSIVE_SCAN_TIME =0x100D , -WID_SITE_SURVEY_SCAN_TIME =0x100E ,WID_JOIN_START_TIMEOUT =0x100F , -WID_AUTH_TIMEOUT =0x1010 ,WID_ASOC_TIMEOUT =0x1011 ,WID_11I_PROTOCOL_TIMEOUT =0x1012 , WID_EAPOL_RESPONSE_TIMEOUT = 0x1013,
@@ -739,11 +734,8 @@ enum {WID_HW_RX_COUNT =0x2015 ,WID_MEMORY_ADDRESS =0x201E ,WID_MEMORY_ACCESS_32BIT =0x201F , -WID_RF_REG_VAL =0x2021 ,/* NMAC Integer WID list */ -WID_11N_PHY_ACTIVE_REG_VAL =0x2080 , -/* Custom Integer WID list */ WID_GET_INACTIVE_TIME =0x2084 , WID_SET_OPERATION_MODE = 0X2086,
@@ -764,7 +756,6 @@ enum {WID_SUPP_PASSWORD =0x3011 ,WID_SITE_SURVEY_RESULTS =0x3012 ,WID_RX_POWER_LEVEL =0x3013 , -WID_DEL_ALL_RX_BA =0x3014 ,WID_SET_STA_MAC_INACTIVE_TIME =0x3017 ,WID_ADD_WEP_KEY =0x3019 , WID_REMOVE_WEP_KEY = 0x301A,
Signature · 1 line
2.17.1
PATCH v3 2/4 staging: wilc1000: validate cfg parameters before scheduling the work
In reply to [email protected]From: Adham Abozaeid <[email protected]>
Validate cfg parameters after being called by cfg80211 in set_wiphy_params before scheduling the work executed in handle_cfg_param
--- drivers/staging/wilc1000/host_interface.c | 61 ++++++------------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 50 ++++++++++++--- 2 files changed, 62 insertions(+), 49 deletions(-)
drivers/staging/wilc1000/host_interface.c +20 -41
@@ -377,61 +377,41 @@ static void handle_cfg_param(struct work_struct *work)if (param->flag &RETRY_SHORT ) {u16 retry_limit = param->short_retry_limit; -if (retry_limit >0 && retry_limit <256 ) { - wid_list[i].id =WID_SHORT_RETRY_LIMIT ; - wid_list[i].val = (s8 *)¶m->short_retry_limit; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.short_retry_limit = retry_limit; - }else { -netdev_err (vif->ndev,"Range(1~256) over\n" ); - goto unlock; - } + wid_list[i].id =WID_SHORT_RETRY_LIMIT ; + wid_list[i].val = (s8 *)¶m->short_retry_limit; + wid_list[i].type =WID_SHORT ; + wid_list[i].size =sizeof (u16); + hif_drv->cfg_values.short_retry_limit = retry_limit; i++; }if (param->flag &RETRY_LONG ) {u16 limit = param->long_retry_limit; -if (limit >0 && limit <256 ) { - wid_list[i].id =WID_LONG_RETRY_LIMIT ; - wid_list[i].val = (s8 *)¶m->long_retry_limit; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.long_retry_limit = limit; - }else { -netdev_err (vif->ndev,"Range(1~256) over\n" ); - goto unlock; - } + wid_list[i].id =WID_LONG_RETRY_LIMIT ; + wid_list[i].val = (s8 *)¶m->long_retry_limit; + wid_list[i].type =WID_SHORT ; + wid_list[i].size =sizeof (u16); + hif_drv->cfg_values.long_retry_limit = limit; i++; }if (param->flag &FRAG_THRESHOLD ) {u16 frag_th = param->frag_threshold; -if (frag_th >255 && frag_th <7937 ) { - wid_list[i].id =WID_FRAG_THRESHOLD ; - wid_list[i].val = (s8 *)¶m->frag_threshold; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.frag_threshold = frag_th; - }else { -netdev_err (vif->ndev,"Threshold Range fail\n" ); - goto unlock; - } + wid_list[i].id =WID_FRAG_THRESHOLD ; + wid_list[i].val = (s8 *)¶m->frag_threshold; + wid_list[i].type =WID_SHORT ; + wid_list[i].size =sizeof (u16); + hif_drv->cfg_values.frag_threshold = frag_th; i++; }if (param->flag &RTS_THRESHOLD ) {u16 rts_th = param->rts_threshold; -if (rts_th >255 ) { - wid_list[i].id =WID_RTS_THRESHOLD ; - wid_list[i].val = (s8 *)¶m->rts_threshold; - wid_list[i].type =WID_SHORT ; - wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.rts_threshold = rts_th; - }else { -netdev_err (vif->ndev,"Threshold Range fail\n" ); - goto unlock; - } + wid_list[i].id =WID_RTS_THRESHOLD ; + wid_list[i].val = (s8 *)¶m->rts_threshold; + wid_list[i].type =WID_SHORT ; + wid_list[i].size =sizeof (u16); + hif_drv->cfg_values.rts_threshold = rts_th; i++; }
@@ -441,7 +421,6 @@ static void handle_cfg_param(struct work_struct *work)if (ret)netdev_err (vif->ndev,"Error in setting CFG params\n" ); -unlock:mutex_unlock (&hif_drv->cfg_values_lock);kfree (msg); }
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +42 -8
63 lines not on this page · raw message
Signature · 1 line
2.17.1
kbuild test robot
build botRe: [PATCH v3 2/4] staging: wilc1000: validate cfg parameters before scheduling the work
Thank you for the patch! Perhaps something to improve:
Hi Adham,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on staging/staging-testing]
[also build test WARNING on v4.20-rc1 next-20181106]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
smatch warnings:drivers/staging/wilc1000/wilc_wfi_cfgoperations.c:1152 set_wiphy_params() warn: always true condition '(wiphy->retry_short < 256) => (0-255 < 256)' drivers/staging/wilc1000/wilc_wfi_cfgoperations.c:1164 set_wiphy_params() warn: always true condition '(wiphy->retry_long < 256) => (0-255 < 256)'
vim +1152 drivers/staging/wilc1000/wilc_wfi_cfgoperations.c
1141
1142 static int set_wiphy_params(struct wiphy *wiphy, u32 changed)
1143 {
1144 int ret;
1145 struct cfg_param_attr cfg_param_val;
1146 struct wilc_priv *priv = wiphy_priv(wiphy);
1147 struct wilc_vif *vif = netdev_priv(priv->dev);
1148
1149 cfg_param_val.flag = 0;
1150
1151 if (changed & WIPHY_PARAM_RETRY_SHORT) {
> 1152 if (wiphy->retry_short > 0 && wiphy->retry_short < 256) {
1153 netdev_dbg(vif->ndev,
1154 "Setting WIPHY_PARAM_RETRY_SHORT %d\n",
1155 wiphy->retry_short);
1156 cfg_param_val.flag |= RETRY_SHORT;
1157 cfg_param_val.short_retry_limit = wiphy->retry_short;
1158 } else {
1159 netdev_err(vif->ndev, "Short retry limit out of range\n");
1160 return -EINVAL;
1161 }
1162 }
1163 if (changed & WIPHY_PARAM_RETRY_LONG) {
> 1164 if (wiphy->retry_long > 0 && wiphy->retry_long < 256) { 1165 netdev_dbg(vif->ndev,
1166 "Setting WIPHY_PARAM_RETRY_LONG %d\n",
1167 wiphy->retry_long);
1168 cfg_param_val.flag |= RETRY_LONG;
1169 cfg_param_val.long_retry_limit = wiphy->retry_long;
1170 } else {
1171 netdev_err(vif->ndev, "Long retry limit out of range\n");
1172 return -EINVAL;
1173 }
1174 }
1175 if (changed & WIPHY_PARAM_FRAG_THRESHOLD) {
1176 if (wiphy->frag_threshold > 255 &&
1177 wiphy->frag_threshold < 7937) {
1178 netdev_dbg(vif->ndev,
1179 "Setting WIPHY_PARAM_FRAG_THRESHOLD %d\n",
1180 wiphy->frag_threshold);
1181 cfg_param_val.flag |= FRAG_THRESHOLD;
1182 cfg_param_val.frag_threshold = wiphy->frag_threshold;
1183 } else {
1184 netdev_err(vif->ndev,
1185 "Fragmentation threshold out of range\n");
1186 return -EINVAL;
1187 }
1188 }
1189
1190 if (changed & WIPHY_PARAM_RTS_THRESHOLD) {
1191 if (wiphy->rts_threshold > 255) {
1192 netdev_dbg(vif->ndev,
1193 "Setting WIPHY_PARAM_RTS_THRESHOLD %d\n",
1194 wiphy->rts_threshold);
1195 cfg_param_val.flag |= RTS_THRESHOLD;
1196 cfg_param_val.rts_threshold = wiphy->rts_threshold;
1197 } else {
1198 netdev_err(vif->ndev, "RTS threshold out of range\n");
1199 return -EINVAL;
1200 }
1201 }
1202
1203 ret = wilc_hif_set_cfg(vif, &cfg_param_val);
1204 if (ret)
1205 netdev_err(priv->dev, "Error in setting WIPHY PARAMS\n");
1206
1207 return ret;
1208 }
1209
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
Greg KH
maintainerRe: [PATCH v3 2/4] staging: wilc1000: validate cfg parameters before scheduling the work
In reply to [email protected]Quoted 10 lines · On Tue, Nov 06, 2018 at 12:01:18AM +0000, [email protected] wrote:
From: Adham Abozaeid <[email protected]>
Validate cfg parameters after being called by cfg80211 in
set_wiphy_paramsbefore scheduling the work executed inhandle_cfg_paramSigned-off-by Adham Abozaeid <[email protected]>--- drivers/staging/wilc1000/host_interface.c | 61 ++++++------------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 50 ++++++++++++--- 2 files changed, 62 insertions(+), 49 deletions(-)
Please fix this up so that the 0-day bot does not complain about it.
thanks,
greg k-h
Re: [PATCH v3 2/4] staging: wilc1000: validate cfg parameters before scheduling the work
Quoted 6 lines · Greg KH
Quoted 5 lines · On Tue, Nov 06, 2018 at 12:01:18AM +0000, [email protected] wrote:
From: Adham Abozaeid <[email protected]>
Validate cfg parameters after being called by cfg80211 in
set_wiphy_paramsbefore scheduling the work executed inhandle_cfg_param
Quoted 6 lines
Quoted 5 lines
Signed-off-by Adham Abozaeid <[email protected]>--- drivers/staging/wilc1000/host_interface.c | 61 ++++++------------- .../staging/wilc1000/wilc_wfi_cfgoperations.c | 50 ++++++++++++--- 2 files changed, 62 insertions(+), 49 deletions(-)Please fix this up so that the 0-day bot does not complain about it.
Sure Greg. I'll submit v4 with the fix for the bot warning.
I assume I shouldn't include patch 1/4 in the new version of the series since I see it was applied already, so I'll only resend the other 3 patches
Thanks,
Adham
PATCH v3 3/4 staging: wilc1000: Don't keep a copy of wiphy parameters in the driver
In reply to [email protected]From: Adham Abozaeid <[email protected]>
host_if_drv.cfg_values is a write only member, and can be removed
--- drivers/staging/wilc1000/host_interface.c | 13 ------------- drivers/staging/wilc1000/host_interface.h | 1 - 2 files changed, 14 deletions(-)
drivers/staging/wilc1000/host_interface.c +0 -13
@@ -375,43 +375,31 @@ static void handle_cfg_param(struct work_struct *work)mutex_lock (&hif_drv->cfg_values_lock);if (param->flag &RETRY_SHORT ) { -u16 retry_limit = param->short_retry_limit; - wid_list[i].id =WID_SHORT_RETRY_LIMIT ; wid_list[i].val = (s8 *)¶m->short_retry_limit; wid_list[i].type =WID_SHORT ; wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.short_retry_limit = retry_limit; i++; }if (param->flag &RETRY_LONG ) { -u16 limit = param->long_retry_limit; - wid_list[i].id =WID_LONG_RETRY_LIMIT ; wid_list[i].val = (s8 *)¶m->long_retry_limit; wid_list[i].type =WID_SHORT ; wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.long_retry_limit = limit; i++; }if (param->flag &FRAG_THRESHOLD ) { -u16 frag_th = param->frag_threshold; - wid_list[i].id =WID_FRAG_THRESHOLD ; wid_list[i].val = (s8 *)¶m->frag_threshold; wid_list[i].type =WID_SHORT ; wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.frag_threshold = frag_th; i++; }if (param->flag &RTS_THRESHOLD ) { -u16 rts_th = param->rts_threshold; - wid_list[i].id =WID_RTS_THRESHOLD ; wid_list[i].val = (s8 *)¶m->rts_threshold; wid_list[i].type =WID_SHORT ; wid_list[i].size =sizeof (u16); - hif_drv->cfg_values.rts_threshold = rts_th; i++; }
@@ -3256,7 +3244,6 @@ int wilc_init(struct net_device *dev, struct host_if_drv **hif_drv_handler)mutex_lock (&hif_drv->cfg_values_lock); hif_drv->hif_state =HOST_IF_IDLE ; - hif_drv->cfg_values.scan_source =DEFAULT_SCAN ; hif_drv->p2p_timeout =0 ;
drivers/staging/wilc1000/host_interface.h +0 -1
@@ -293,7 +293,6 @@ struct host_if_drv {enum host_if_state hif_state;u8 assoc_bssid[ETH_ALEN ]; -struct cfg_param_attr cfg_values;/*lock to protect concurrent setting of cfg params*/ struct mutex cfg_values_lock;
Signature · 1 line
2.17.1
PATCH v3 4/4 staging: wilc1000: Remove unused mutex cfg_values_lock
In reply to [email protected]From: Adham Abozaeid <[email protected]>
After removing cfg_values member, cfg_values_lock that was used to protect it can also be removed.
--- drivers/staging/wilc1000/host_interface.c | 9 --------- drivers/staging/wilc1000/host_interface.h | 2 -- 2 files changed, 11 deletions(-)
drivers/staging/wilc1000/host_interface.c +0 -9
@@ -369,11 +369,8 @@ static void handle_cfg_param(struct work_struct *work)struct cfg_param_attr *param = &msg->body.cfg_info;int ret;struct wid wid_list[32 ]; -struct host_if_drv *hif_drv = vif->hif_drv;int i =0 ; -mutex_lock (&hif_drv->cfg_values_lock); -if (param->flag &RETRY_SHORT ) { wid_list[i].id =WID_SHORT_RETRY_LIMIT ; wid_list[i].val = (s8 *)¶m->short_retry_limit;
@@ -409,7 +406,6 @@ static void handle_cfg_param(struct work_struct *work)if (ret)netdev_err (vif->ndev,"Error in setting CFG params\n" ); -mutex_unlock (&hif_drv->cfg_values_lock);kfree (msg); }
@@ -3240,15 +3236,10 @@ int wilc_init(struct net_device *dev, struct host_if_drv **hif_drv_handler)timer_setup (&hif_drv->connect_timer, timer_connect_cb,0 );timer_setup (&hif_drv->remain_on_ch_timer, listen_timer_cb,0 ); -mutex_init (&hif_drv->cfg_values_lock); -mutex_lock (&hif_drv->cfg_values_lock); - hif_drv->hif_state =HOST_IF_IDLE ; hif_drv->p2p_timeout =0 ; -mutex_unlock (&hif_drv->cfg_values_lock); - wilc->clients_count++;return 0 ;
drivers/staging/wilc1000/host_interface.h +0 -2
@@ -293,8 +293,6 @@ struct host_if_drv {enum host_if_state hif_state;u8 assoc_bssid[ETH_ALEN ]; -/*lock to protect concurrent setting of cfg params*/ -struct mutex cfg_values_lock;struct timer_list scan_timer;struct wilc_vif *scan_timer_vif;
Signature · 1 line
2.17.1