staging: wilc1000: call linux_sdio_init instead of io_init
glen lee
glen.lee at atmel.com
Thu Nov 19 02:16:15 UTC 2015
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
More information about the devel
mailing list