Staging: wilc1000: Remove coccicheck warnings and error
cover Staging: wilc1000: Remove coccicheck warnings and error
Punit Vara (3):
staging: wilc1000: Remove reference preceded by free
Staging: wilc1000: Remove comparision of field address to NULL
Staging: wilc1000: Remove boolean comparision
drivers/staging/wilc1000/host_interface.c | 4 ++-- drivers/staging/wilc1000/linux_wlan.c | 8 ++++---- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 7 +++---- 3 files changed, 9 insertions(+), 10 deletions(-)
Signature · 1 line
2.5.3
PATCH 1/3 staging: wilc1000: Remove reference preceded by free
This patch is to the wilc_wfi_cfgoperations.c file that fixes up following error reported by coccicheck:
ERROR: reference preceded by free on line 1219
For (params->seq_len) <= 0 memory is already freed when (params->seq_len) >0 then memory was alloted. So there is no need to use kfree whenever params->seq_len <=0 remove it and place kfree inside (params->seq_len) >0 condition.
--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +3 -4
@@ -1216,11 +1216,10 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, priv->wilc_ptk[key_index]->key =kmalloc (params->key_len,GFP_KERNEL ); -kfree (priv->wilc_ptk[key_index]->seq); - -if ((params->seq_len) >0 ) +if ((params->seq_len) >0 ) { +kfree (priv->wilc_ptk[key_index]->seq); priv->wilc_ptk[key_index]->seq =kmalloc (params->seq_len,GFP_KERNEL ); - + }if (INFO ) {for (i =0 ; i < params->key_len; i++)PRINT_INFO (CFG80211_DBG ,"Adding pairwise key value[%d] = %x\n" , i, params->key[i]);
Signature · 1 line
2.5.3
Greg KH
maintainerRe: [PATCH 1/3] staging: wilc1000: Remove reference preceded by free
Quoted 21 lines · Punit Vara
This patch is to the
wilc_wfi_cfgoperations.cfile that fixes up following error reported by coccicheck:ERROR: reference preceded by free on line 1219
For (
params->seq_len) <= 0 memory is already freed when (params->seq_len) >0 then memory was alloted. So there is no need to use kfree wheneverparams->seq_len<=0 remove it and place kfree inside (params->seq_len) >0 condition.Signed-off-by Punit Vara <[email protected]>--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +0
-0@@ -1216,11 +1216,10 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index,
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, · line 1222
Quoted 10 lines
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +3
-4priv->wilc_ptk[key_index]->key =kmalloc (params->key_len,GFP_KERNEL ); -kfree (priv->wilc_ptk[key_index]->seq); - -if ((params->seq_len) >0 ) +if ((params->seq_len) >0 ) { +kfree (priv->wilc_ptk[key_index]->seq); priv->wilc_ptk[key_index]->seq =kmalloc (params->seq_len,GFP_KERNEL ); - + }
Are you sure about this? It seems like you are changing the logic here...
Re: [PATCH 1/3] staging: wilc1000: Remove reference preceded by free
Quoted 24 lines · Greg KH
Quoted 23 lines · Punit Vara
This patch is to the
wilc_wfi_cfgoperations.cfile that fixes up following error reported by coccicheck:ERROR: reference preceded by free on line 1219
For (
params->seq_len) <= 0 memory is already freed when (params->seq_len) >0 then memory was alloted. So there is no need to use kfree wheneverparams->seq_len<=0 remove it and place kfree inside (params->seq_len) >0 condition.Signed-off-by Punit Vara <[email protected]>--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +0
-0@@ -1216,11 +1216,10 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, priv->wilc_ptk[key_index]->key =kmalloc (params->key_len,GFP_KERNEL );
Quoted 12 lines
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, · line 1222
Quoted 8 lines
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +3
-4-kfree (priv->wilc_ptk[key_index]->seq); - -if ((params->seq_len) >0 ) +if ((params->seq_len) >0 ) { +kfree (priv->wilc_ptk[key_index]->seq); priv->wilc_ptk[key_index]->seq =kmalloc (params->seq_len,GFP_KERNEL ); - + }Are you sure about this? It seems like you are changing the logic here...
Yes this time I am quite confident here . On This file line no 1177 already freed the allocation of memory ..On the following line if (params->seq_len) > 0 then memory is allotted but if it is not then memory allocation remains free only. So here kfree is not required outside of the if condition. It should be inside the if condition
because for (params->seq_len) > 0 memory is already allotted at line
followed by 1177. Kindly look at it once.
Thanks :-)
Re: [PATCH 1/3] staging: wilc1000: Remove reference preceded by free
Quoted 45 lines · punit vara
Quoted 24 lines · Greg KH
Quoted 23 lines · Punit Vara
This patch is to the
wilc_wfi_cfgoperations.cfile that fixes up following error reported by coccicheck:ERROR: reference preceded by free on line 1219
For (
params->seq_len) <= 0 memory is already freed when (params->seq_len) >0 then memory was alloted. So there is no need to use kfree wheneverparams->seq_len<=0 remove it and place kfree inside (params->seq_len) >0 condition.Signed-off-by Punit Vara <[email protected]>--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +0
-0@@ -1216,11 +1216,10 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, priv->wilc_ptk[key_index]->key =kmalloc (params->key_len,GFP_KERNEL );Quoted 12 lines
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, · line 1222
Quoted 8 lines
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +3
-4-kfree (priv->wilc_ptk[key_index]->seq); - -if ((params->seq_len) >0 ) +if ((params->seq_len) >0 ) { +kfree (priv->wilc_ptk[key_index]->seq); priv->wilc_ptk[key_index]->seq =kmalloc (params->seq_len,GFP_KERNEL ); - + }Are you sure about this? It seems like you are changing the logic here...
Yes this time I am quite confident here . On This file line no 1177 already freed the allocation of memory ..On the following line if (
params->seq_len) > 0 then memory is allotted but if it is not then memory allocation remains free only. So here kfree is not required outside of the if condition. It should be inside the if condition
because for (params->seq_len) > 0 memory is already allotted at line
followed by 1177. Kindly look at it once.
Quoted 1 line
Thanks :-)
Again I went back thinking Greg who is stable kernel maintainer who doubts about logic .So I again go through these code , you are right . What you ignore this change and apply this patch ?
(quoted diff) +0 -0
b/drivers/staging/wilc1000/wilc_wfi_cfgoperations.c index 9b3cf04..3ab7d3e 100644
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +0 -0
@@ -1174,9 +1174,9 @@ static int add_key(struct wiphy *wiphy, struct
net_device *netdev, u8 key_index,
memcpy(priv->wilc_gtk[key_index]->key,
params->key, params->key_len);
/* if there has been previous
allocation for the same index through its seq, free that memory and allocate again*/
- kfree(priv->wilc_gtk[key_index]->seq);
if ((params->seq_len) > 0) {
+ kfree(priv->wilc_gtk[key_index]->seq);
priv->wilc_gtk[key_index]->seq= kmalloc(params->seq_len, GFP_KERNEL);
memcpy(priv->wilc_gtk[key_index]->seq, params->seq, params->seq_len);
}?? May send this patch ? I think it will not change the logic . Comment me if I am wrong
Greg KH
maintainerRe: [PATCH 1/3] staging: wilc1000: Remove reference preceded by free
Quoted 70 lines · punit vara
Quoted 45 lines · punit vara
Quoted 24 lines · Greg KH
Quoted 23 lines · Punit Vara
This patch is to the
wilc_wfi_cfgoperations.cfile that fixes up following error reported by coccicheck:ERROR: reference preceded by free on line 1219
For (
params->seq_len) <= 0 memory is already freed when (params->seq_len) >0 then memory was alloted. So there is no need to use kfree wheneverparams->seq_len<=0 remove it and place kfree inside (params->seq_len) >0 condition.Signed-off-by Punit Vara <[email protected]>--- drivers/staging/wilc1000/wilc_wfi_cfgoperations.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +0
-0@@ -1216,11 +1216,10 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, priv->wilc_ptk[key_index]->key =kmalloc (params->key_len,GFP_KERNEL );Quoted 12 lines
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, · line 1222
Quoted 8 lines
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +3
-4-kfree (priv->wilc_ptk[key_index]->seq); - -if ((params->seq_len) >0 ) +if ((params->seq_len) >0 ) { +kfree (priv->wilc_ptk[key_index]->seq); priv->wilc_ptk[key_index]->seq =kmalloc (params->seq_len,GFP_KERNEL ); - + }Are you sure about this? It seems like you are changing the logic here...
Yes this time I am quite confident here . On This file line no 1177 already freed the allocation of memory ..On the following line if (
params->seq_len) > 0 then memory is allotted but if it is not then memory allocation remains free only. So here kfree is not required outside of the if condition. It should be inside the if condition
because for (params->seq_len) > 0 memory is already allotted at line
followed by 1177. Kindly look at it once.Quoted 1 line
Thanks :-)
Again I went back thinking Greg who is stable kernel maintainer who doubts about logic .So I again go through these code , you are right . What you ignore this change and apply this patch ?
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +0
-0@@ -1174,9 +1174,9 @@ static int add_key(struct wiphy *wiphy, struct net_device *netdev, u8 key_index, memcpy(priv->wilc_gtk[key_index]->key, params->key, params->key_len);/* if there has been previous allocation for the same index through its seq, free that memory and allocate again*/
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c +1
-1-kfree (priv->wilc_gtk[key_index]->seq);if ((params->seq_len) >0 ) { +kfree (priv->wilc_gtk[key_index]->seq); priv->wilc_gtk[key_index]->seq=
kmalloc(params->seq_len, GFP_KERNEL);
Quoted 6 lines
memcpy(priv->wilc_gtk[key_index]->seq, params->seq, params->seq_len); }?? May send this patch ? I think it will not change the logic . Comment me if I am wrong
I don't really see the need for this change at all. It's not fixing anything, and the kfree call is "free" we don't need to worry about that, so please, just leave it as-is for now, there is _so_ many other real things to do to fix up this driver than to worry about non-optimizing things like this.
thanks,
greg k-h
PATCH 2/3 Staging: wilc1000: Remove comparision of field address to NULL
In reply to Punit VaraThis is patch to the linux_wlan file that fixes up following error reported by coccicheck :
ERROR: test of a variable/field address
--- drivers/staging/wilc1000/linux_wlan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/staging/wilc1000/linux_wlan.c +4 -4
@@ -907,7 +907,7 @@ void wilc1000_wlan_deinit(struct wilc *nic)disable_sdio_interrupt ();mutex_unlock (&g_linux_wlan->hif_cs);#endif -if (&g_linux_wlan->txq_event !=NULL ) +if (!(&g_linux_wlan->txq_event))up (&g_linux_wlan->txq_event);PRINT_D (INIT_DBG ,"Deinitializing Threads\n" );
@@ -969,10 +969,10 @@ static int wlan_deinit_locks(struct wilc *nic) {PRINT_D (INIT_DBG ,"De-Initializing Locks\n" ); -if (&g_linux_wlan->hif_cs !=NULL ) +if (!(&g_linux_wlan->hif_cs))mutex_destroy (&g_linux_wlan->hif_cs); -if (&g_linux_wlan->rxq_cs !=NULL ) +if (!(&g_linux_wlan->rxq_cs))mutex_destroy (&g_linux_wlan->rxq_cs);return 0 ;
@@ -1037,7 +1037,7 @@ static void wlan_deinitialize_threads(struct wilc *nic) g_linux_wlan->close =1 ;PRINT_D (INIT_DBG ,"Deinitializing Threads\n" ); -if (&g_linux_wlan->txq_event !=NULL ) +if (!(&g_linux_wlan->txq_event))up (&g_linux_wlan->txq_event);if (g_linux_wlan->txq_thread !=NULL ) {
Signature · 1 line
2.5.3
Greg KH
maintainerRe: [PATCH 2/3] Staging: wilc1000: Remove comparision of field address to NULL
Quoted 9 lines · Punit Vara
This is patch to the
linux_wlanfile that fixes up following error reported by coccicheck :ERROR: test of a variable/field address
Signed-off-by Punit Vara <[email protected]>--- drivers/staging/wilc1000/linux_wlan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
Does not apply to my tree anymore, I think someone else already did this :(
PATCH 3/3 Staging: wilc1000: Remove boolean comparision
In reply to Punit VaraThis patch is to the host_interface.c file that fixes up following warning reported by coccicheck:
WARNING: Comparison to bool
Boolean tests do not need explicit comparison to true or false
--- drivers/staging/wilc1000/host_interface.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/staging/wilc1000/host_interface.c +2 -2
@@ -1440,7 +1440,7 @@ static s32 Handle_RcvdNtwrkInfo(struct host_if_drv *hif_drv, } } -if (bNewNtwrkFound == true) { +if (bNewNtwrkFound) {PRINT_D (HOSTINF_DBG ,"New network found\n" );if (hif_drv->strWILC_UsrScanReq.u32RcvdChCount <MAX_NUM_SCANNED_NETWORKS ) {
@@ -2714,7 +2714,7 @@ static void Handle_PowerManagement(struct host_if_drv *hif_drv, strWID.id = (u16 )WID_POWER_MANAGEMENT ; -if (strPowerMgmtParam->enabled == true) +if (strPowerMgmtParam->enabled) s8PowerMode =MIN_FAST_PS ;else s8PowerMode =NO_POWERSAVE ;
Signature · 1 line
2.5.3