002-mesh-Set-correct-secondary-channel-offset-if-HT40-is.patch 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. From: Masashi Honma <[email protected]>
  2. Date: Tue, 26 Jul 2016 11:45:40 +0900
  3. Subject: [PATCH] mesh: Set correct secondary channel offset if HT40 is
  4. disabled
  5. Previously, secondary channel offset could be non zero even though
  6. disable_ht40=1. This patch fixes it.
  7. Signed-off-by: Masashi Honma <[email protected]>
  8. ---
  9. --- a/wpa_supplicant/wpa_supplicant.c
  10. +++ b/wpa_supplicant/wpa_supplicant.c
  11. @@ -1901,20 +1901,27 @@ void ibss_mesh_setup_freq(struct wpa_sup
  12. break;
  13. }
  14. }
  15. +#ifdef CONFIG_HT_OVERRIDES
  16. + if (ssid->disable_ht40)
  17. + ht40 = 0;
  18. +#endif /* CONFIG_HT_OVERRIDES */
  19. - /* Find secondary channel */
  20. - for (i = 0; i < mode->num_channels; i++) {
  21. - sec_chan = &mode->channels[i];
  22. - if (sec_chan->chan == channel + ht40 * 4)
  23. - break;
  24. - sec_chan = NULL;
  25. - }
  26. - if (!sec_chan)
  27. - return;
  28. + if (ht40) {
  29. + /* Find secondary channel */
  30. + for (i = 0; i < mode->num_channels; i++) {
  31. + sec_chan = &mode->channels[i];
  32. + if (sec_chan->chan == channel + ht40 * 4)
  33. + break;
  34. + sec_chan = NULL;
  35. + }
  36. + if (!sec_chan)
  37. + return;
  38. - /* Check secondary channel flags */
  39. - if (sec_chan->flag & (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR))
  40. - return;
  41. + /* Check secondary channel flags */
  42. + if (sec_chan->flag &
  43. + (HOSTAPD_CHAN_DISABLED | HOSTAPD_CHAN_NO_IR))
  44. + return;
  45. + }
  46. freq->channel = pri_chan->chan;
  47. @@ -1930,6 +1937,7 @@ void ibss_mesh_setup_freq(struct wpa_sup
  48. freq->sec_channel_offset = 1;
  49. break;
  50. default:
  51. + freq->sec_channel_offset = 0;
  52. break;
  53. }