From: kernel test robot <lkp@intel.com>
To: Wen Gong <wgong@codeaurora.org>
Cc: llvm@lists.linux.dev, 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: Mon, 8 Nov 2021 02:46:45 +0800 [thread overview]
Message-ID: <202111080236.iJ10rabv-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 17832 bytes --]
Hi Wen,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb
commit: 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 mac80211: reduce peer HE MCS/NSS to own capabilities
date: 10 months ago
config: mips-randconfig-r002-20211031 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d321548c3ce987f4f21350ba1c81fdb5d4354224)
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 W=1 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:17:
In file included from include/linux/bvec.h:14:
In file included from include/linux/mm.h:33:
In file included from include/linux/pgtable.h:6:
arch/mips/include/asm/pgtable.h:202:3: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
arch/mips/include/asm/cmpxchg.h:220:2: note: expanded from macro 'cmpxchg64'
cmpxchg((ptr), (o), (n)); \
^
arch/mips/include/asm/cmpxchg.h:204:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
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:19:
include/linux/netdevice.h:559:11: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
} while (cmpxchg(&n->state, val, new) != val);
^
arch/mips/include/asm/cmpxchg.h:194:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
In file included from net/mac80211/he.c:9:
In file included from net/mac80211/ieee80211_i.h:19:
include/linux/netdevice.h:559:11: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
arch/mips/include/asm/cmpxchg.h:204:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
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))
^ ~~~~~~~~~
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:
include/net/sock.h:1994:12: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
old_dst = xchg((__force struct dst_entry **)&sk->sk_dst_cache, dst);
^
arch/mips/include/asm/cmpxchg.h:102:7: note: expanded from macro 'xchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
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:
include/net/sock.h:2244:8: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
err = xchg(&sk->sk_err, 0);
^
arch/mips/include/asm/cmpxchg.h:102:7: note: expanded from macro 'xchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
>> 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);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34 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: 43063 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: Mon, 08 Nov 2021 02:46:45 +0800 [thread overview]
Message-ID: <202111080236.iJ10rabv-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 18111 bytes --]
Hi Wen,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb
commit: 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 mac80211: reduce peer HE MCS/NSS to own capabilities
date: 10 months ago
config: mips-randconfig-r002-20211031 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project d321548c3ce987f4f21350ba1c81fdb5d4354224)
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 W=1 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:17:
In file included from include/linux/bvec.h:14:
In file included from include/linux/mm.h:33:
In file included from include/linux/pgtable.h:6:
arch/mips/include/asm/pgtable.h:202:3: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
arch/mips/include/asm/cmpxchg.h:220:2: note: expanded from macro 'cmpxchg64'
cmpxchg((ptr), (o), (n)); \
^
arch/mips/include/asm/cmpxchg.h:204:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
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:19:
include/linux/netdevice.h:559:11: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
} while (cmpxchg(&n->state, val, new) != val);
^
arch/mips/include/asm/cmpxchg.h:194:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
In file included from net/mac80211/he.c:9:
In file included from net/mac80211/ieee80211_i.h:19:
include/linux/netdevice.h:559:11: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
arch/mips/include/asm/cmpxchg.h:204:7: note: expanded from macro 'cmpxchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
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))
^ ~~~~~~~~~
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:
include/net/sock.h:1994:12: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
old_dst = xchg((__force struct dst_entry **)&sk->sk_dst_cache, dst);
^
arch/mips/include/asm/cmpxchg.h:102:7: note: expanded from macro 'xchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
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:
include/net/sock.h:2244:8: warning: converting the result of '<<' to a boolean always evaluates to true [-Wtautological-constant-compare]
err = xchg(&sk->sk_err, 0);
^
arch/mips/include/asm/cmpxchg.h:102:7: note: expanded from macro 'xchg'
if (!__SYNC_loongson3_war) \
^
arch/mips/include/asm/sync.h:147:34: note: expanded from macro '__SYNC_loongson3_war'
# define __SYNC_loongson3_war (1 << 31)
^
>> 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);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34 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: 43063 bytes --]
next reply other threads:[~2021-11-07 18:47 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-07 18:46 kernel test robot [this message]
2021-11-07 18:46 ` 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-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-07-01 17:25 kernel test robot
2021-07-01 17:25 ` 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=202111080236.iJ10rabv-lkp@intel.com \
--to=lkp@intel.com \
--cc=johannes.berg@intel.com \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--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: link
Be 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.