Hi Shay,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on mac80211-next/master]
[also build test WARNING on mac80211/master v5.9 next-20201012]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Shay-Bar/mac80211-160MHz-support...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: xtensa-allyesconfig (attached as .config)
compiler: xtensa-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/0day-ci/linux/commit/13bd6eb21625512094cdded5c24e9dd31...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Shay-Bar/mac80211-160MHz-support-per-IEEE802-11ax-standard/20201012-221911
git checkout 13bd6eb21625512094cdded5c24e9dd314fb00b7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=xtensa
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
> net/mac80211/spectmgmt.c:22:30: warning: no previous prototype
for 'ieee80211_vht_get_actual_chwidth' [-Wmissing-prototypes]
22 |
enum ieee80211_vht_chanwidth ieee80211_vht_get_actual_chwidth(u8 vht_oper_bw,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> net/mac80211/spectmgmt.c:49:1: warning: no previous prototype for
'ieee80211_get_center_freq_seg1_location' [-Wmissing-prototypes]
49 |
ieee80211_get_center_freq_seg1_location(struct ieee80211_sub_if_data *sdata,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/ieee80211_vht_get_actual_chwidth +22 net/mac80211/spectmgmt.c
21
22 enum ieee80211_vht_chanwidth ieee80211_vht_get_actual_chwidth(u8
vht_oper_bw,
23 u32 seg0,
24 u32 seg1)
25 {
26 enum ieee80211_vht_chanwidth ret = IEEE80211_VHT_CHANWIDTH_USE_HT;
27
28 if (vht_oper_bw != IEEE80211_VHT_CHANWIDTH_80MHZ)
29 return vht_oper_bw;
30
31 if (!seg1) {
32 return IEEE80211_VHT_CHANWIDTH_80MHZ;
33 } else {
34 int diff;
35
36 diff = abs((int) seg0 - (int) seg1);
37
38 if (diff == 8)
39 return IEEE80211_VHT_CHANWIDTH_160MHZ;
40
41 if (diff > 16)
42 return IEEE80211_VHT_CHANWIDTH_80P80MHZ;
43 }
44
45 return ret;
46 }
47
48 enum ieee80211_center_freq_seg1_location
49 ieee80211_get_center_freq_seg1_location(struct
ieee80211_sub_if_data *sdata,
50 u32 vht_cap_info,
51 u8 actual_chanwidth)
52 {
53 u8 ext_nss_bw_supp = (vht_cap_info &
54 IEEE80211_VHT_CAP_EXT_NSS_BW_MASK) >>
55 IEEE80211_VHT_CAP_EXT_NSS_BW_SHIFT;
56 u8 supp_chwidth = (vht_cap_info &
57 IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_MASK) >>
58 IEEE80211_VHT_CAP_SUPP_CHAN_WIDTH_SHIFT;
59 enum ieee80211_center_freq_seg1_location res =
60 IEEE80211_CENTER_FREQ_SEG1_NONE;
61
62 /* The bandwidth is less than 80+80/160MHz */
63 if (actual_chanwidth < IEEE80211_VHT_CHANWIDTH_160MHZ)
64 return IEEE80211_CENTER_FREQ_SEG1_NONE;
65
66 switch (supp_chwidth) {
67 case 0:
68 if ((ext_nss_bw_supp > 1) ||
69 ((ext_nss_bw_supp == 1) &&
70 (actual_chanwidth == IEEE80211_VHT_CHANWIDTH_160MHZ)))
71 res = IEEE80211_CENTER_FREQ_SEG1_HT_OPER; /* CCFS2 */
72 break;
73 case 1:
74 if ((ext_nss_bw_supp > 2) ||
75 (actual_chanwidth == IEEE80211_VHT_CHANWIDTH_160MHZ))
76 res = IEEE80211_CENTER_FREQ_SEG1_VHT_OPER; /* CCFS1 */
77 else if (ext_nss_bw_supp > 0)
78 res = IEEE80211_CENTER_FREQ_SEG1_HT_OPER; /* CCFS2 */
79 break;
80 case 2:
81 res = IEEE80211_CENTER_FREQ_SEG1_VHT_OPER;
82 if ((ext_nss_bw_supp > 0) && (ext_nss_bw_supp < 3))
83 sdata_info(sdata,
84 "Invalid ext_nss_bw_supp %u for chwidth 2",
85 ext_nss_bw_supp);
86 break;
87 default:
88 break;
89 }
90
91 return res;
92 }
93
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org