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