From: kernel test robot <lkp@intel.com> To: Wen Gong <wgong@codeaurora.org> Cc: clang-built-linux@googlegroups.com, kbuild-all@lists.01.org, linux-kernel@vger.kernel.org, Johannes Berg <johannes.berg@intel.com> Subject: net/mac80211/he.c:158:33: warning: taking address of packed member 'rx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value Date: Fri, 2 Jul 2021 01:25:27 +0800 [thread overview] Message-ID: <202107020120.My5MzpqI-lkp@intel.com> (raw) [-- Attachment #1: Type: text/plain, Size: 13789 bytes --] Hi Wen, FYI, the error/warning still remains. tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: dbe69e43372212527abf48609aba7fc39a6daa27 commit: 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 mac80211: reduce peer HE MCS/NSS to own capabilities date: 5 months ago config: mips-buildonly-randconfig-r005-20210630 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d21d5472501460933e78aead04cf59579025ba4) 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 # install mips cross compiling tool for clang build # apt-get install binutils-mips-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): In file included from net/mac80211/he.c:9: In file included from net/mac80211/ieee80211_i.h:16: In file included from include/linux/if_ether.h:19: In file included from include/linux/skbuff.h:28: In file included from include/net/checksum.h:22: arch/mips/include/asm/checksum.h:161:9: error: unsupported inline asm: input with type 'unsigned long' matching output with type '__wsum' (aka 'unsigned int') : "0" ((__force unsigned long)daddr), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from net/mac80211/he.c:9: In file included from net/mac80211/ieee80211_i.h:30: In file included from include/net/mac80211.h:22: In file included from include/net/codel.h:48: In file included from include/net/inet_ecn.h:9: In file included from include/net/inet_sock.h:22: In file included from include/net/sock.h:61: include/linux/poll.h:142:27: warning: division by zero is undefined [-Wdivision-by-zero] M(RDNORM) | M(RDBAND) | M(WRNORM) | M(WRBAND) | ^~~~~~~~~ include/linux/poll.h:140:32: note: expanded from macro 'M' #define M(X) (__force __poll_t)__MAP(val, POLL##X, (__force __u16)EPOLL##X) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/poll.h:126:51: note: expanded from macro '__MAP' (from < to ? (v & from) * (to/from) : (v & from) / (from/to)) ^ ~~~~~~~~~ include/linux/poll.h:142:39: warning: division by zero is undefined [-Wdivision-by-zero] M(RDNORM) | M(RDBAND) | M(WRNORM) | M(WRBAND) | ^~~~~~~~~ include/linux/poll.h:140:32: note: expanded from macro 'M' #define M(X) (__force __poll_t)__MAP(val, POLL##X, (__force __u16)EPOLL##X) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/poll.h:126:51: note: expanded from macro '__MAP' (from < to ? (v & from) * (to/from) : (v & from) / (from/to)) ^ ~~~~~~~~~ >> net/mac80211/he.c:158:33: warning: taking address of packed member 'rx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:159:12: warning: taking address of packed member 'rx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.rx_mcs_80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:160:12: warning: taking address of packed member 'tx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &own_he_cap.he_mcs_nss_supp.tx_mcs_80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:161:12: warning: taking address of packed member 'tx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.tx_mcs_80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:169:34: warning: taking address of packed member 'rx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_160, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:170:13: warning: taking address of packed member 'rx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.rx_mcs_160, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:171:13: warning: taking address of packed member 'tx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &own_he_cap.he_mcs_nss_supp.tx_mcs_160, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:172:13: warning: taking address of packed member 'tx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.tx_mcs_160); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:174:29: warning: taking address of packed member 'rx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.rx_mcs_160); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:175:29: warning: taking address of packed member 'tx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.tx_mcs_160); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:186:34: warning: taking address of packed member 'rx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_80p80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:187:13: warning: taking address of packed member 'rx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.rx_mcs_80p80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:188:13: warning: taking address of packed member 'tx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &own_he_cap.he_mcs_nss_supp.tx_mcs_80p80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:189:13: warning: taking address of packed member 'tx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.tx_mcs_80p80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:191:29: warning: taking address of packed member 'rx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.rx_mcs_80p80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:192:29: warning: taking address of packed member 'tx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.tx_mcs_80p80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 18 warnings and 1 error generated. vim +158 net/mac80211/he.c 105 106 void 107 ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata, 108 struct ieee80211_supported_band *sband, 109 const u8 *he_cap_ie, u8 he_cap_len, 110 const struct ieee80211_he_6ghz_capa *he_6ghz_capa, 111 struct sta_info *sta) 112 { 113 struct ieee80211_sta_he_cap *he_cap = &sta->sta.he_cap; 114 struct ieee80211_sta_he_cap own_he_cap = sband->iftype_data->he_cap; 115 struct ieee80211_he_cap_elem *he_cap_ie_elem = (void *)he_cap_ie; 116 u8 he_ppe_size; 117 u8 mcs_nss_size; 118 u8 he_total_size; 119 bool own_160, peer_160, own_80p80, peer_80p80; 120 121 memset(he_cap, 0, sizeof(*he_cap)); 122 123 if (!he_cap_ie || !ieee80211_get_he_sta_cap(sband)) 124 return; 125 126 /* Make sure size is OK */ 127 mcs_nss_size = ieee80211_he_mcs_nss_size(he_cap_ie_elem); 128 he_ppe_size = 129 ieee80211_he_ppe_size(he_cap_ie[sizeof(he_cap->he_cap_elem) + 130 mcs_nss_size], 131 he_cap_ie_elem->phy_cap_info); 132 he_total_size = sizeof(he_cap->he_cap_elem) + mcs_nss_size + 133 he_ppe_size; 134 if (he_cap_len < he_total_size) 135 return; 136 137 memcpy(&he_cap->he_cap_elem, he_cap_ie, sizeof(he_cap->he_cap_elem)); 138 139 /* HE Tx/Rx HE MCS NSS Support Field */ 140 memcpy(&he_cap->he_mcs_nss_supp, 141 &he_cap_ie[sizeof(he_cap->he_cap_elem)], mcs_nss_size); 142 143 /* Check if there are (optional) PPE Thresholds */ 144 if (he_cap->he_cap_elem.phy_cap_info[6] & 145 IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) 146 memcpy(he_cap->ppe_thres, 147 &he_cap_ie[sizeof(he_cap->he_cap_elem) + mcs_nss_size], 148 he_ppe_size); 149 150 he_cap->has_he = true; 151 152 sta->cur_max_bandwidth = ieee80211_sta_cap_rx_bw(sta); 153 sta->sta.bandwidth = ieee80211_sta_cur_vht_bw(sta); 154 155 if (sband->band == NL80211_BAND_6GHZ && he_6ghz_capa) 156 ieee80211_update_from_he_6ghz_capa(he_6ghz_capa, sta); 157 > 158 ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_80, 159 &he_cap->he_mcs_nss_supp.rx_mcs_80, > 160 &own_he_cap.he_mcs_nss_supp.tx_mcs_80, 161 &he_cap->he_mcs_nss_supp.tx_mcs_80); 162 163 own_160 = own_he_cap.he_cap_elem.phy_cap_info[0] & 164 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; 165 peer_160 = he_cap->he_cap_elem.phy_cap_info[0] & 166 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; 167 168 if (peer_160 && own_160) { > 169 ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_160, 170 &he_cap->he_mcs_nss_supp.rx_mcs_160, > 171 &own_he_cap.he_mcs_nss_supp.tx_mcs_160, 172 &he_cap->he_mcs_nss_supp.tx_mcs_160); 173 } else if (peer_160 && !own_160) { 174 ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.rx_mcs_160); 175 ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.tx_mcs_160); 176 he_cap->he_cap_elem.phy_cap_info[0] &= 177 ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; 178 } 179 180 own_80p80 = own_he_cap.he_cap_elem.phy_cap_info[0] & 181 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G; 182 peer_80p80 = he_cap->he_cap_elem.phy_cap_info[0] & 183 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G; 184 185 if (peer_80p80 && own_80p80) { > 186 ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_80p80, 187 &he_cap->he_mcs_nss_supp.rx_mcs_80p80, > 188 &own_he_cap.he_mcs_nss_supp.tx_mcs_80p80, 189 &he_cap->he_mcs_nss_supp.tx_mcs_80p80); 190 } else if (peer_80p80 && !own_80p80) { 191 ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.rx_mcs_80p80); 192 ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.tx_mcs_80p80); 193 he_cap->he_cap_elem.phy_cap_info[0] &= 194 ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G; 195 } 196 } 197 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 45699 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: net/mac80211/he.c:158:33: warning: taking address of packed member 'rx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value Date: Fri, 02 Jul 2021 01:25:27 +0800 [thread overview] Message-ID: <202107020120.My5MzpqI-lkp@intel.com> (raw) [-- Attachment #1: Type: text/plain, Size: 14001 bytes --] Hi Wen, FYI, the error/warning still remains. tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: dbe69e43372212527abf48609aba7fc39a6daa27 commit: 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 mac80211: reduce peer HE MCS/NSS to own capabilities date: 5 months ago config: mips-buildonly-randconfig-r005-20210630 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8d21d5472501460933e78aead04cf59579025ba4) 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 # install mips cross compiling tool for clang build # apt-get install binutils-mips-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): In file included from net/mac80211/he.c:9: In file included from net/mac80211/ieee80211_i.h:16: In file included from include/linux/if_ether.h:19: In file included from include/linux/skbuff.h:28: In file included from include/net/checksum.h:22: arch/mips/include/asm/checksum.h:161:9: error: unsupported inline asm: input with type 'unsigned long' matching output with type '__wsum' (aka 'unsigned int') : "0" ((__force unsigned long)daddr), ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from net/mac80211/he.c:9: In file included from net/mac80211/ieee80211_i.h:30: In file included from include/net/mac80211.h:22: In file included from include/net/codel.h:48: In file included from include/net/inet_ecn.h:9: In file included from include/net/inet_sock.h:22: In file included from include/net/sock.h:61: include/linux/poll.h:142:27: warning: division by zero is undefined [-Wdivision-by-zero] M(RDNORM) | M(RDBAND) | M(WRNORM) | M(WRBAND) | ^~~~~~~~~ include/linux/poll.h:140:32: note: expanded from macro 'M' #define M(X) (__force __poll_t)__MAP(val, POLL##X, (__force __u16)EPOLL##X) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/poll.h:126:51: note: expanded from macro '__MAP' (from < to ? (v & from) * (to/from) : (v & from) / (from/to)) ^ ~~~~~~~~~ include/linux/poll.h:142:39: warning: division by zero is undefined [-Wdivision-by-zero] M(RDNORM) | M(RDBAND) | M(WRNORM) | M(WRBAND) | ^~~~~~~~~ include/linux/poll.h:140:32: note: expanded from macro 'M' #define M(X) (__force __poll_t)__MAP(val, POLL##X, (__force __u16)EPOLL##X) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/poll.h:126:51: note: expanded from macro '__MAP' (from < to ? (v & from) * (to/from) : (v & from) / (from/to)) ^ ~~~~~~~~~ >> net/mac80211/he.c:158:33: warning: taking address of packed member 'rx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:159:12: warning: taking address of packed member 'rx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.rx_mcs_80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:160:12: warning: taking address of packed member 'tx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &own_he_cap.he_mcs_nss_supp.tx_mcs_80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:161:12: warning: taking address of packed member 'tx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.tx_mcs_80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:169:34: warning: taking address of packed member 'rx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_160, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:170:13: warning: taking address of packed member 'rx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.rx_mcs_160, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:171:13: warning: taking address of packed member 'tx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &own_he_cap.he_mcs_nss_supp.tx_mcs_160, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:172:13: warning: taking address of packed member 'tx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.tx_mcs_160); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:174:29: warning: taking address of packed member 'rx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.rx_mcs_160); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:175:29: warning: taking address of packed member 'tx_mcs_160' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.tx_mcs_160); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:186:34: warning: taking address of packed member 'rx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_80p80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:187:13: warning: taking address of packed member 'rx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.rx_mcs_80p80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/mac80211/he.c:188:13: warning: taking address of packed member 'tx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &own_he_cap.he_mcs_nss_supp.tx_mcs_80p80, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:189:13: warning: taking address of packed member 'tx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] &he_cap->he_mcs_nss_supp.tx_mcs_80p80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:191:29: warning: taking address of packed member 'rx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.rx_mcs_80p80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ net/mac80211/he.c:192:29: warning: taking address of packed member 'tx_mcs_80p80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value [-Waddress-of-packed-member] ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.tx_mcs_80p80); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 18 warnings and 1 error generated. vim +158 net/mac80211/he.c 105 106 void 107 ieee80211_he_cap_ie_to_sta_he_cap(struct ieee80211_sub_if_data *sdata, 108 struct ieee80211_supported_band *sband, 109 const u8 *he_cap_ie, u8 he_cap_len, 110 const struct ieee80211_he_6ghz_capa *he_6ghz_capa, 111 struct sta_info *sta) 112 { 113 struct ieee80211_sta_he_cap *he_cap = &sta->sta.he_cap; 114 struct ieee80211_sta_he_cap own_he_cap = sband->iftype_data->he_cap; 115 struct ieee80211_he_cap_elem *he_cap_ie_elem = (void *)he_cap_ie; 116 u8 he_ppe_size; 117 u8 mcs_nss_size; 118 u8 he_total_size; 119 bool own_160, peer_160, own_80p80, peer_80p80; 120 121 memset(he_cap, 0, sizeof(*he_cap)); 122 123 if (!he_cap_ie || !ieee80211_get_he_sta_cap(sband)) 124 return; 125 126 /* Make sure size is OK */ 127 mcs_nss_size = ieee80211_he_mcs_nss_size(he_cap_ie_elem); 128 he_ppe_size = 129 ieee80211_he_ppe_size(he_cap_ie[sizeof(he_cap->he_cap_elem) + 130 mcs_nss_size], 131 he_cap_ie_elem->phy_cap_info); 132 he_total_size = sizeof(he_cap->he_cap_elem) + mcs_nss_size + 133 he_ppe_size; 134 if (he_cap_len < he_total_size) 135 return; 136 137 memcpy(&he_cap->he_cap_elem, he_cap_ie, sizeof(he_cap->he_cap_elem)); 138 139 /* HE Tx/Rx HE MCS NSS Support Field */ 140 memcpy(&he_cap->he_mcs_nss_supp, 141 &he_cap_ie[sizeof(he_cap->he_cap_elem)], mcs_nss_size); 142 143 /* Check if there are (optional) PPE Thresholds */ 144 if (he_cap->he_cap_elem.phy_cap_info[6] & 145 IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) 146 memcpy(he_cap->ppe_thres, 147 &he_cap_ie[sizeof(he_cap->he_cap_elem) + mcs_nss_size], 148 he_ppe_size); 149 150 he_cap->has_he = true; 151 152 sta->cur_max_bandwidth = ieee80211_sta_cap_rx_bw(sta); 153 sta->sta.bandwidth = ieee80211_sta_cur_vht_bw(sta); 154 155 if (sband->band == NL80211_BAND_6GHZ && he_6ghz_capa) 156 ieee80211_update_from_he_6ghz_capa(he_6ghz_capa, sta); 157 > 158 ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_80, 159 &he_cap->he_mcs_nss_supp.rx_mcs_80, > 160 &own_he_cap.he_mcs_nss_supp.tx_mcs_80, 161 &he_cap->he_mcs_nss_supp.tx_mcs_80); 162 163 own_160 = own_he_cap.he_cap_elem.phy_cap_info[0] & 164 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; 165 peer_160 = he_cap->he_cap_elem.phy_cap_info[0] & 166 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; 167 168 if (peer_160 && own_160) { > 169 ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_160, 170 &he_cap->he_mcs_nss_supp.rx_mcs_160, > 171 &own_he_cap.he_mcs_nss_supp.tx_mcs_160, 172 &he_cap->he_mcs_nss_supp.tx_mcs_160); 173 } else if (peer_160 && !own_160) { 174 ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.rx_mcs_160); 175 ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.tx_mcs_160); 176 he_cap->he_cap_elem.phy_cap_info[0] &= 177 ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; 178 } 179 180 own_80p80 = own_he_cap.he_cap_elem.phy_cap_info[0] & 181 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G; 182 peer_80p80 = he_cap->he_cap_elem.phy_cap_info[0] & 183 IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G; 184 185 if (peer_80p80 && own_80p80) { > 186 ieee80211_he_mcs_intersection(&own_he_cap.he_mcs_nss_supp.rx_mcs_80p80, 187 &he_cap->he_mcs_nss_supp.rx_mcs_80p80, > 188 &own_he_cap.he_mcs_nss_supp.tx_mcs_80p80, 189 &he_cap->he_mcs_nss_supp.tx_mcs_80p80); 190 } else if (peer_80p80 && !own_80p80) { 191 ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.rx_mcs_80p80); 192 ieee80211_he_mcs_disable(&he_cap->he_mcs_nss_supp.tx_mcs_80p80); 193 he_cap->he_cap_elem.phy_cap_info[0] &= 194 ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G; 195 } 196 } 197 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 45699 bytes --]
next reply other threads:[~2021-07-01 17:25 UTC|newest] Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-01 17:25 kernel test robot [this message] 2021-07-01 17:25 ` net/mac80211/he.c:158:33: warning: taking address of packed member 'rx_mcs_80' of class or structure 'ieee80211_he_mcs_nss_supp' may result in an unaligned pointer value kernel test robot -- strict thread matches above, loose matches on Subject: below -- 2023-08-22 17:11 kernel test robot 2023-03-13 19:21 kernel test robot 2023-02-09 19:45 kernel test robot 2023-01-28 17:03 kernel test robot 2022-09-01 6:16 kernel test robot 2022-08-07 16:21 kernel test robot 2021-11-07 18:46 kernel test robot 2021-11-07 18:46 ` kernel test robot 2021-10-31 3:25 kernel test robot 2021-10-31 3:25 ` kernel test robot 2021-08-28 14:56 kernel test robot 2021-08-28 14:56 ` kernel test robot 2021-03-01 16:28 kernel test robot 2021-03-01 16:28 ` kernel test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202107020120.My5MzpqI-lkp@intel.com \ --to=lkp@intel.com \ --cc=clang-built-linux@googlegroups.com \ --cc=johannes.berg@intel.com \ --cc=kbuild-all@lists.01.org \ --cc=linux-kernel@vger.kernel.org \ --cc=wgong@codeaurora.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.