kfree(pstrWFIDrv);
 #ifdef WILC_P2P
 _fail_timer_3:
-       WILC_TimerDestroy(&pstrWFIDrv->hRemainOnChannel);
+       del_timer_sync(&pstrWFIDrv->hRemainOnChannel);
 #endif
 _fail_timer_2:
        up(&(pstrWFIDrv->gtOsCfgValuesSem));
-       WILC_TimerDestroy(&pstrWFIDrv->hConnectTimer);
+       del_timer_sync(&pstrWFIDrv->hConnectTimer);
 _fail_timer_1:
-       WILC_TimerDestroy(&pstrWFIDrv->hScanTimer);
+       del_timer_sync(&pstrWFIDrv->hScanTimer);
 _fail_thread_:
        kthread_stop(HostIFthreadHandler);
 _fail_mq_:
        /*BugID_5348*/
        /*Destroy all timers before acquiring hSemDeinitDrvHandle*/
        /*to guarantee handling all messages befor proceeding*/
-       if (WILC_TimerDestroy(&pstrWFIDrv->hScanTimer)) {
+       if (del_timer_sync(&pstrWFIDrv->hScanTimer)) {
                PRINT_D(HOSTINF_DBG, ">> Scan timer is active\n");
                /* msleep(HOST_IF_SCAN_TIMEOUT+1000); */
        }
 
-       if (WILC_TimerDestroy(&pstrWFIDrv->hConnectTimer)) {
+       if (del_timer_sync(&pstrWFIDrv->hConnectTimer)) {
                PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n");
                /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */
        }
 
 
-       if (WILC_TimerDestroy(&g_hPeriodicRSSI)) {
+       if (del_timer_sync(&g_hPeriodicRSSI)) {
                PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n");
                /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */
        }
 
        #ifdef WILC_P2P
        /*Destroy Remain-onchannel Timer*/
-       WILC_TimerDestroy(&pstrWFIDrv->hRemainOnChannel);
+       del_timer_sync(&pstrWFIDrv->hRemainOnChannel);
        #endif
 
        host_int_set_wfi_drv_handler(NULL);
        memset(&strHostIFmsg, 0, sizeof(tstrHostIFmsg));
 
        if (clients_count == 1) {
-               if (WILC_TimerDestroy(&g_hPeriodicRSSI)) {
+               if (del_timer_sync(&g_hPeriodicRSSI)) {
                        PRINT_D(HOSTINF_DBG, ">> Connect timer is active\n");
                        /* msleep(HOST_IF_CONNECT_TIMEOUT+1000); */
                }
 
 WILC_ErrNo WILC_TimerCreate(struct timer_list *pHandle,
                            tpfWILC_TimerFunction pfCallback);
 
-
-/*!
- *  @brief     Destroys a given timer
- *  @details   This will destroy a given timer freeing any resources used by it
- *              if the timer was PENDING Then must be cancelled as well(i.e.
- *              goes to        IDLE, same effect as calling WILC_TimerCancel first)
- *              if the timer was EXECUTING then the callback will be allowed to
- *              finish first then all resources are freed
- *  @param[in] pHandle handle to the timer object
- *  @return    Error code indicating sucess/failure
- *  @sa                WILC_TimerAttrs
- *  @author    syounan
- *  @date      16 Aug 2010
- *  @version   1.0
- */
-WILC_ErrNo WILC_TimerDestroy(struct timer_list *pHandle);
-
 /*!
  *  @brief     Starts a given timer
  *  @details   This function will move the timer to the PENDING state until the
 
 {
        int i;
        if (op_ifcs == 0) {
-               WILC_TimerDestroy(&hAgingTimer);
+               del_timer_sync(&hAgingTimer);
                PRINT_INFO(CORECONFIG_DBG, "destroy aging timer\n");
 
                for (i = 0; i < u32LastScannedNtwrksCountShadow; i++) {
        #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP
        if (op_ifcs == 0) {
                PRINT_D(CORECONFIG_DBG, "destroy during ip\n");
-               WILC_TimerDestroy(&hDuringIpTimer);
+               del_timer_sync(&hDuringIpTimer);
        }
        #endif