Hi Luca, Thank you for the patch! Yet something to improve: [auto build test ERROR on jberg-mac80211-next/master] [also build test ERROR on next-20211130] [cannot apply to jberg-mac80211/master linus/master v5.16-rc3] [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/Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-11-29/20211129-213704 base: https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master config: i386-randconfig-s001-20211128 (https://download.01.org/0day-ci/archive/20211130/202111301920.kYgRFuAr-lkp(a)intel.com/config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-dirty # https://github.com/0day-ci/linux/commit/da233d0b8179f2db6b1f5e783da1c0b986cc8e96 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-11-29/20211129-213704 git checkout da233d0b8179f2db6b1f5e783da1c0b986cc8e96 # save the config file to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): net/wireless/scan.c: In function 'cfg80211_get_ies_channel_number': net/wireless/scan.c:1801:6: error: 'channel' undeclared (first use in this function) 1801 | if (channel->band == NL80211_BAND_6GHZ) { | ^~~~~~~ net/wireless/scan.c:1801:6: note: each undeclared identifier is reported only once for each function it appears in net/wireless/scan.c:1815:4: error: 'freq' undeclared (first use in this function); did you mean 'ifreq'? 1815 | freq = ieee80211_channel_to_frequency(he_6ghz_oper->primary, | ^~~~ | ifreq In file included from include/linux/kernel.h:16, from net/wireless/scan.c:10: >> include/linux/math.h:136:3: error: first argument to '__builtin_choose_expr' not a constant 136 | __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/math.h:144:54: note: in definition of macro '__abs_choose_expr' 144 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/math.h:132:3: note: in expansion of macro '__abs_choose_expr' 132 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:133:3: note: in expansion of macro '__abs_choose_expr' 133 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:134:3: note: in expansion of macro '__abs_choose_expr' 134 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:135:3: note: in expansion of macro '__abs_choose_expr' 135 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ net/wireless/scan.c:1822:8: note: in expansion of macro 'abs' 1822 | abs(freq - channel->center_freq) <= 80 && | ^~~ include/linux/math.h:141:43: error: first argument to '__builtin_choose_expr' not a constant 141 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/math.h:144:54: note: in definition of macro '__abs_choose_expr' 144 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/math.h:132:3: note: in expansion of macro '__abs_choose_expr' 132 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:133:3: note: in expansion of macro '__abs_choose_expr' 133 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:134:3: note: in expansion of macro '__abs_choose_expr' 134 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:135:3: note: in expansion of macro '__abs_choose_expr' 135 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ net/wireless/scan.c:1822:8: note: in expansion of macro 'abs' 1822 | abs(freq - channel->center_freq) <= 80 && | ^~~ include/linux/math.h:141:43: error: first argument to '__builtin_choose_expr' not a constant 141 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/math.h:144:54: note: in definition of macro '__abs_choose_expr' 144 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/math.h:132:3: note: in expansion of macro '__abs_choose_expr' 132 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:133:3: note: in expansion of macro '__abs_choose_expr' 133 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:134:3: note: in expansion of macro '__abs_choose_expr' 134 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ net/wireless/scan.c:1822:8: note: in expansion of macro 'abs' 1822 | abs(freq - channel->center_freq) <= 80 && | ^~~ include/linux/math.h:141:43: error: first argument to '__builtin_choose_expr' not a constant 141 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/math.h:144:54: note: in definition of macro '__abs_choose_expr' 144 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/math.h:132:3: note: in expansion of macro '__abs_choose_expr' 132 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/math.h:133:3: note: in expansion of macro '__abs_choose_expr' 133 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ net/wireless/scan.c:1822:8: note: in expansion of macro 'abs' 1822 | abs(freq - channel->center_freq) <= 80 && | ^~~ include/linux/math.h:141:43: error: first argument to '__builtin_choose_expr' not a constant 141 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/math.h:144:54: note: in definition of macro '__abs_choose_expr' 144 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/math.h:132:3: note: in expansion of macro '__abs_choose_expr' 132 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ net/wireless/scan.c:1822:8: note: in expansion of macro 'abs' 1822 | abs(freq - channel->center_freq) <= 80 && | ^~~ include/linux/math.h:141:43: error: first argument to '__builtin_choose_expr' not a constant 141 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/math.h:131:16: note: in expansion of macro '__abs_choose_expr' 131 | #define abs(x) __abs_choose_expr(x, long long, \ | ^~~~~~~~~~~~~~~~~ net/wireless/scan.c:1822:8: note: in expansion of macro 'abs' 1822 | abs(freq - channel->center_freq) <= 80 && | ^~~ >> net/wireless/scan.c:1823:9: error: 'ftype' undeclared (first use in this function); did you mean 'cftype'? 1823 | (ftype != CFG80211_BSS_FTYPE_BEACON || | ^~~~~ | cftype vim +1823 net/wireless/scan.c 1794 1795 int cfg80211_get_ies_channel_number(const u8 *ie, size_t ielen, 1796 enum nl80211_band band) 1797 { 1798 const u8 *tmp; 1799 int channel_number = -1; 1800 1801 if (channel->band == NL80211_BAND_6GHZ) { 1802 const struct element *elem; 1803 1804 elem = cfg80211_find_ext_elem(WLAN_EID_EXT_HE_OPERATION, ie, 1805 ielen); 1806 if (elem && elem->datalen >= ieee80211_he_oper_size(&elem->data[1])) { 1807 struct ieee80211_he_operation *he_oper = 1808 (void *)(&elem->data[1]); 1809 const struct ieee80211_he_6ghz_oper *he_6ghz_oper; 1810 1811 he_6ghz_oper = ieee80211_he_6ghz_oper(he_oper); 1812 if (!he_6ghz_oper) 1813 return channel; 1814 1815 freq = ieee80211_channel_to_frequency(he_6ghz_oper->primary, 1816 NL80211_BAND_6GHZ); 1817 1818 /* duplicated beacon indication is relevant for beacons 1819 * only 1820 */ 1821 if (freq != channel->center_freq && 1822 abs(freq - channel->center_freq) <= 80 && > 1823 (ftype != CFG80211_BSS_FTYPE_BEACON || 1824 he_6ghz_oper->control & IEEE80211_HE_6GHZ_OPER_CTRL_DUP_BEACON)) 1825 channel_number = he_6ghz_oper->primary; 1826 } 1827 } else if (band == NL80211_BAND_S1GHZ) { 1828 tmp = cfg80211_find_ie(WLAN_EID_S1G_OPERATION, ie, ielen); 1829 if (tmp && tmp[1] >= sizeof(struct ieee80211_s1g_oper_ie)) { 1830 struct ieee80211_s1g_oper_ie *s1gop = (void *)(tmp + 2); 1831 1832 channel_number = s1gop->primary_ch; 1833 } 1834 } else { 1835 tmp = cfg80211_find_ie(WLAN_EID_DS_PARAMS, ie, ielen); 1836 if (tmp && tmp[1] == 1) { 1837 channel_number = tmp[2]; 1838 } else { 1839 tmp = cfg80211_find_ie(WLAN_EID_HT_OPERATION, ie, ielen); 1840 if (tmp && tmp[1] >= sizeof(struct ieee80211_ht_operation)) { 1841 struct ieee80211_ht_operation *htop = (void *)(tmp + 2); 1842 1843 channel_number = htop->primary_chan; 1844 } 1845 } 1846 } 1847 1848 return channel_number; 1849 } 1850 EXPORT_SYMBOL(cfg80211_get_ies_channel_number); 1851 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org