diff --git a/src/p2p/p2p_go_neg.c b/src/p2p/p2p_go_neg.c index 670e4b3de..6efefe440 100644 --- a/src/p2p/p2p_go_neg.c +++ b/src/p2p/p2p_go_neg.c @@ -442,8 +442,15 @@ static int p2p_go_select_channel(struct p2p_data *p2p, struct p2p_device *dev, } if (!p2p_channels_includes(&intersection, p2p->op_reg_class, - p2p->op_channel)) + p2p->op_channel)) { + if (dev->flags & P2P_DEV_FORCE_FREQ) { + *status = P2P_SC_FAIL_NO_COMMON_CHANNELS; + wpa_msg(p2p->cfg->msg_ctx, MSG_DEBUG, "P2P: Peer does " + "not support the forced channel"); + return -1; + } p2p_reselect_channel(p2p, &intersection); + } if (!p2p->ssid_set) { p2p_build_ssid(p2p, p2p->ssid, &p2p->ssid_len);