{
        struct disconnect_info disconn_info;
        struct host_if_drv *hif_drv = vif->hif_drv;
+       wilc_connect_result conn_result = hif_drv->usr_conn_req.conn_result;
 
        memset(&disconn_info, 0, sizeof(struct disconnect_info));
 
        disconn_info.ie = NULL;
        disconn_info.ie_len = 0;
 
-       if (hif_drv->usr_conn_req.conn_result) {
+       if (conn_result) {
                wilc_optaining_ip = false;
                wilc_set_power_mgmt(vif, 0, 0);
 
-               hif_drv->usr_conn_req.conn_result(CONN_DISCONN_EVENT_DISCONN_NOTIF,
-                                                 NULL, 0, &disconn_info,
-                                                 hif_drv->usr_conn_req.arg);
+               conn_result(CONN_DISCONN_EVENT_DISCONN_NOTIF, NULL, 0,
+                           &disconn_info, hif_drv->usr_conn_req.arg);
        } else {
                netdev_err(vif->ndev, "Connect result NULL\n");
        }