};
 
 static struct host_if_drv *terminated_handle;
-static u8 p2p_listen_state;
 static struct completion hif_driver_comp;
 static struct mutex hif_deinit_lock;
 
                netdev_err(vif->ndev, "Failed to set remain on channel\n");
 
 error:
-       p2p_listen_state = 1;
        hif_drv->remain_on_ch_timer_vif = vif;
        mod_timer(&hif_drv->remain_on_ch_timer,
                  jiffies + msecs_to_jiffies(hif_remain_ch->duration));
        struct wid wid;
        int result;
        struct host_if_drv *hif_drv = vif->hif_drv;
+       struct wilc_priv *priv = wdev_priv(vif->ndev->ieee80211_ptr);
 
-       if (p2p_listen_state) {
+       if (priv->p2p_listen_state) {
                remain_on_chan_flag = false;
                wid.id = WID_REMAIN_ON_CHAN;
                wid.type = WID_STR;
                        hif_drv->remain_on_ch.expired(hif_drv->remain_on_ch.arg,
                                                      hif_remain_ch->id);
                }
-               p2p_listen_state = 0;
        } else {
                netdev_dbg(vif->ndev, "Not in listen state\n");
        }