if (hif_drv->conn_info.conn_result) {
                hif_drv->conn_info.conn_result(CONN_DISCONN_EVENT_CONN_RESP,
                                               WILC_MAC_STATUS_DISCONNECTED,
-                                              NULL, hif_drv->conn_info.arg);
+                                              hif_drv->conn_info.arg);
 
        } else {
                netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__);
        }
 
        del_timer(&hif_drv->connect_timer);
-       conn_info->conn_result(CONN_DISCONN_EVENT_CONN_RESP, mac_status, NULL,
+       conn_info->conn_result(CONN_DISCONN_EVENT_CONN_RESP, mac_status,
                               hif_drv->conn_info.arg);
 
        if (mac_status == WILC_MAC_STATUS_CONNECTED &&
 
 static inline void host_int_handle_disconnect(struct wilc_vif *vif)
 {
-       struct disconnect_info disconn_info;
        struct host_if_drv *hif_drv = vif->hif_drv;
 
-       memset(&disconn_info, 0, sizeof(struct disconnect_info));
-
        if (hif_drv->usr_scan_req.scan_result) {
                del_timer(&hif_drv->scan_timer);
                handle_scan_done(vif, SCAN_EVENT_ABORTED);
        }
 
-       disconn_info.reason = 0;
-       disconn_info.ie = NULL;
-       disconn_info.ie_len = 0;
-
        if (hif_drv->conn_info.conn_result) {
                vif->obtaining_ip = false;
                wilc_set_power_mgmt(vif, 0, 0);
 
                hif_drv->conn_info.conn_result(CONN_DISCONN_EVENT_DISCONN_NOTIF,
-                                              0, &disconn_info,
-                                              hif_drv->conn_info.arg);
+                                              0, hif_drv->conn_info.arg);
        } else {
                netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__);
        }
 {
        struct wid wid;
        struct host_if_drv *hif_drv = vif->hif_drv;
-       struct disconnect_info disconn_info;
        struct user_scan_req *scan_req;
        struct wilc_conn_info *conn_info;
        int result;
                return result;
        }
 
-       memset(&disconn_info, 0, sizeof(struct disconnect_info));
-
-       disconn_info.reason = 0;
-       disconn_info.ie = NULL;
-       disconn_info.ie_len = 0;
        scan_req = &hif_drv->usr_scan_req;
        conn_info = &hif_drv->conn_info;
 
                if (hif_drv->hif_state == HOST_IF_WAITING_CONN_RESP)
                        del_timer(&hif_drv->connect_timer);
 
-               conn_info->conn_result(CONN_DISCONN_EVENT_DISCONN_NOTIF,
-                                      0, &disconn_info, conn_info->arg);
+               conn_info->conn_result(CONN_DISCONN_EVENT_DISCONN_NOTIF, 0,
+                                      conn_info->arg);
        } else {
                netdev_err(vif->ndev, "%s: conn_result is NULL\n", __func__);
        }
 
 }
 
 static void cfg_connect_result(enum conn_event conn_disconn_evt, u8 mac_status,
-                              struct disconnect_info *disconn_info,
                               void *priv_data)
 {
        struct wilc_priv *priv = priv_data;
                                        conn_info->resp_ies_len, connect_status,
                                        GFP_KERNEL);
        } else if (conn_disconn_evt == CONN_DISCONN_EVENT_DISCONN_NOTIF) {
+               u16 reason = 0;
+
                vif->obtaining_ip = false;
                priv->p2p.local_random = 0x01;
                priv->p2p.recv_random = 0x00;
 
                if (!wfi_drv->p2p_connect)
                        wlan_channel = INVALID_CHANNEL;
+
                if (wfi_drv->ifc_up && dev == wl->vif[1]->ndev)
-                       disconn_info->reason = 3;
+                       reason = 3;
                else if (!wfi_drv->ifc_up && dev == wl->vif[1]->ndev)
-                       disconn_info->reason = 1;
+                       reason = 1;
 
-               cfg80211_disconnected(dev, disconn_info->reason,
-                                     disconn_info->ie, disconn_info->ie_len,
-                                     false, GFP_KERNEL);
+               cfg80211_disconnected(dev, reason, NULL, 0, false, GFP_KERNEL);
        }
 }