On 2015년 11월 18일 19:30, Dan Carpenter wrote:
Hello Glen Lee,
The patch de11ee8b214e: "staging: wilc1000: call linux_sdio_init
instead of io_init" from Nov 6, 2015, leads to the following static
checker warning:
drivers/staging/wilc1000/wilc_sdio.c:574 sdio_init()
info: ignoring unreachable code.
drivers/staging/wilc1000/wilc_sdio.c
553
554 static int sdio_init(struct wilc *wilc, wilc_debug_func func)
555 {
556 sdio_cmd52_t cmd;
557 int loop;
558 u32 chipid;
559
560 memset(&g_sdio, 0, sizeof(wilc_sdio_t));
561
562 g_sdio.dPrint = func;
563
564 if (!linux_sdio_init()) {
565 g_sdio.dPrint(N_ERR, "[wilc sdio]: Failed io init
bus...\n");
566 return 0;
567 } else {
568 return 0;
569 }
570
571 /**
572 * function 0 csa enable
573 **/
574 cmd.read_write = 1;
This line is not reachable now.
Hello dan,
Thank you for this.
I made mistake with this patch and I have posted a patch which fix this. Not
yet applied.
[PATCH] staging: wilc1000: fix bug in sdio/spi
Really, you should consider runing Smatch over this driver. Anyway, I
have pasted most of the warnings here. Based on yesterday's linux-next.
Some of the warnings are not in the released versions of Smatch...
Thank you again for this.
I'll run Smatch and look into them step by step.
regards,
glen lee
drivers/staging/wilc1000/wilc_wlan.c:1330 wilc_wlan_start() warn: bool is not
less than zero.
drivers/staging/wilc1000/host_interface.c:368 handle_set_wfi_drv_handler() warn:
'sem:&hif_sema_driver' is sometimes locked here and sometimes unlocked.
drivers/staging/wilc1000/host_interface.c:1028 Handle_Connect() error: potential
null dereference 'hif_drv->usr_conn_req.pu8ssid'. (kmalloc returns null)
drivers/staging/wilc1000/host_interface.c:1428 Handle_RcvdNtwrkInfo() warn: this
array is probably non-NULL. 'hif_drv->usr_scan_req.net_info[i]->au8bssid'
drivers/staging/wilc1000/host_interface.c:1429 Handle_RcvdNtwrkInfo() warn: this
array is probably non-NULL. 'pstrNetworkInfo->au8bssid'
drivers/staging/wilc1000/host_interface.c:1450 Handle_RcvdNtwrkInfo() warn: this array
is probably non-NULL.
'hif_drv->usr_scan_req.net_info[hif_drv->usr_scan_req.rcvd_ch_cnt]->au8bssid'
drivers/staging/wilc1000/host_interface.c:1451 Handle_RcvdNtwrkInfo() warn: this
array is probably non-NULL. 'pstrNetworkInfo->au8bssid'
drivers/staging/wilc1000/host_interface.c:1771 Handle_Key() warn: passing freed
memory 'pstrHostIFkeyAttr->attr.wep.key'
drivers/staging/wilc1000/host_interface.c:1872 Handle_Key() error: double unlock
'sem:&hif_drv->sem_test_key_block'
drivers/staging/wilc1000/host_interface.c:1933 Handle_Key() error: double unlock
'sem:&hif_drv->sem_test_key_block'
drivers/staging/wilc1000/host_interface.c:2619 Handle_ListenStateExpired()
error: potential null dereference 'wid.val'. (kmalloc returns null)
drivers/staging/wilc1000/host_interface.c:2619 Handle_ListenStateExpired()
error: we previously assumed 'wid.val' could be null (see line 2616)
drivers/staging/wilc1000/host_interface.c:2703 Handle_SetMulticastFilter()
warn: 0xff is larger than 1 bits
drivers/staging/wilc1000/host_interface.c:2704 Handle_SetMulticastFilter()
warn: right shifting more than type allows
drivers/staging/wilc1000/host_interface.c:4062 hif_get_cfg() warn: inconsistent
returns 'sem:&hif_drv->sem_cfg_values'.
Locked on: line 3980
Unlocked on: line 4062
drivers/staging/wilc1000/host_interface.c:4198 host_int_init() warn: inconsistent
returns 'sem:&hif_drv->sem_cfg_values'.
Locked on: line 4198
Unlocked on: line 4188
drivers/staging/wilc1000/host_interface.c:4984 host_int_setup_ipaddress() info:
ignoring unreachable code.
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c:731 scan() warn: this array is
probably non-NULL. 'request->ssids + i->ssid'
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c:732 scan() error: potential
null dereference 'strHiddenNetwork.pstrHiddenNetworkInfo'. (kmalloc returns
null)
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c:1280 add_key() error:
potential null dereference 'g_key_gtk_params.key'. (kmalloc returns null)
drivers/staging/wilc1000/wilc_wfi_cfgoperations.c:2995 add_station() error: buffer
overflow 'priv->assoc_stainfo.au8Sta_AssociatedBss' 9 <= 2007
drivers/staging/wilc1000/linux_wlan.c:423 linux_wlan_txq_task() error: double unlock
'sem:&wl->txq_thread_started'
drivers/staging/wilc1000/linux_wlan.c:493 linux_wlan_get_firmware() warn:
missing error code here? 'netdev_priv()' failed. 'ret' = '0'
drivers/staging/wilc1000/linux_wlan.c:1014 wilc1000_wlan_init() warn: putting
NUL at 'size' might be off-by-one
drivers/staging/wilc1000/linux_wlan.c:1014 wilc1000_wlan_init() error:
off-by-one overflow 'Firmware_ver' size 20. rl = '0-20'
drivers/staging/wilc1000/linux_wlan.c:1363 mac_ioctl() warn: passing
uninitialized 'rssi'
drivers/staging/wilc1000/coreconfigurator.c:532 ParseAssocRespInfo() warn:
possible memory leak of 'pstrConnectRespInfo'
regards,
dan carpenter
_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel