diff --git a/core/hdd/src/wlan_hdd_p2p.c b/core/hdd/src/wlan_hdd_p2p.c index e7bd3315b86a..9d41dc3e8c68 100644 --- a/core/hdd/src/wlan_hdd_p2p.c +++ b/core/hdd/src/wlan_hdd_p2p.c @@ -1411,7 +1411,9 @@ int __wlan_hdd_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, home_ch = goAdapter->sessionCtx.ap.operatingChannel; } - if (ieee80211_frequency_to_channel(chan->center_freq) == home_ch) { + if (chan && + (ieee80211_frequency_to_channel(chan->center_freq) == + home_ch)) { /* if adapter is already on requested ch, no need for ROC */ wait = 0; hddLog(LOG1, @@ -1419,7 +1421,7 @@ int __wlan_hdd_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, goto send_frame; } - if (offchan && wait) { + if (offchan && wait && chan) { int status; rem_on_channel_request_type_t req_type = OFF_CHANNEL_ACTION_TX; /* In case of P2P Client mode if we are already */