Cumulative patch from commit 00043740251716e83ca8a01b5b8a2bed1ed02db9
0004374 P2P: Prefer U-NII-3 over U-NII-1 during channel selection
1b665cb P2P: Fix channel preference use for MCC p2p_connect
5624ccf P2P: Optimize default case for own freq preference setting
d0f61a4 P2P: Fix p2p_ignore_shared_freq=1 when inviting a peer
21e491f P2P: Fix p2p_ignore_shared_freq=1 during invitation processing
Change-Id: I79cdeb935ff2eb14ba99b5fc3d364b9399e3f89f
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
diff --git a/src/p2p/p2p_utils.c b/src/p2p/p2p_utils.c
index a579509..161a402 100644
--- a/src/p2p/p2p_utils.c
+++ b/src/p2p/p2p_utils.c
@@ -446,28 +446,25 @@
{
unsigned int i, j, r;
- for (i = 0; i < chans->reg_classes; i++) {
- struct p2p_reg_class *c = &chans->reg_class[i];
+ for (j = 0; classes[j]; j++) {
+ for (i = 0; i < chans->reg_classes; i++) {
+ struct p2p_reg_class *c = &chans->reg_class[i];
- if (c->channels == 0)
- continue;
+ if (c->channels == 0)
+ continue;
- for (j = 0; classes[j]; j++) {
- if (c->reg_class == classes[j])
- break;
+ if (c->reg_class == classes[j]) {
+ /*
+ * Pick one of the available channels in the
+ * operating class at random.
+ */
+ os_get_random((u8 *) &r, sizeof(r));
+ r %= c->channels;
+ *op_class = c->reg_class;
+ *op_channel = c->channel[r];
+ return 0;
+ }
}
- if (!classes[j])
- continue;
-
- /*
- * Pick one of the available channels in the operating class at
- * random.
- */
- os_get_random((u8 *) &r, sizeof(r));
- r %= c->channels;
- *op_class = c->reg_class;
- *op_channel = c->channel[r];
- return 0;
}
return -1;