Hello Ajay Singh, The patch ff52a57a7a42: "staging: wilc1000: move the allocation of cmd out of wilc_enqueue_cmd()" from Jun 26, 2018, leads to the following static checker warning: drivers/staging/wilc1000/host_interface.c:3390 wilc_deinit() warn: inconsistent returns 'hif_deinit_lock'. drivers/staging/wilc1000/host_interface.c 3348 mutex_lock(&hif_deinit_lock); 3349 3350 terminated_handle = hif_drv; 3351 3352 del_timer_sync(&hif_drv->scan_timer); 3353 del_timer_sync(&hif_drv->connect_timer); 3354 del_timer_sync(&periodic_rssi); 3355 del_timer_sync(&hif_drv->remain_on_ch_timer); 3356 3357 wilc_set_wfi_drv_handler(vif, 0, 0, 0); 3358 wait_for_completion(&hif_driver_comp); 3359 3360 if (hif_drv->usr_scan_req.scan_result) { 3361 hif_drv->usr_scan_req.scan_result(SCAN_EVENT_ABORTED, NULL, 3362 hif_drv->usr_scan_req.arg, 3363 NULL); 3364 hif_drv->usr_scan_req.scan_result = NULL; 3365 } 3366 3367 hif_drv->hif_state = HOST_IF_IDLE; 3368 3369 if (clients_count == 1) { 3370 struct host_if_msg *msg; 3371 3372 msg = wilc_alloc_work(vif, handle_hif_exit_work, true); 3373 if (IS_ERR(msg)) 3374 return PTR_ERR(msg); ^^^^^^^^^^^^ We should unlock. Probably set terminated_handle to NULL as well? 3375 3376 result = wilc_enqueue_work(msg); 3377 if (result) 3378 netdev_err(vif->ndev, "deinit : Error(%d)\n", result); 3379 else 3380 wait_for_completion(&msg->work_comp); 3381 kfree(msg); 3382 destroy_workqueue(hif_workqueue); 3383 } 3384 3385 kfree(hif_drv); 3386 3387 clients_count--; 3388 terminated_handle = NULL; 3389 mutex_unlock(&hif_deinit_lock); 3390 return result; 3391 } regards, dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel