* 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
@ 2021-08-28 14:56 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-08-28 14:56 UTC (permalink / raw)
To: Wen Gong; +Cc: llvm, kbuild-all, linux-kernel, Johannes Berg
[-- Attachment #1: Type: text/plain, Size: 12724 bytes --]
Hi Wen,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 64b4fc45bea6f4faa843d2f97ff51665280efee1
commit: 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 mac80211: reduce peer HE MCS/NSS to own capabilities
date: 7 months ago
config: i386-randconfig-a015-20210828 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 4e1a164d7bd53653f79decc121afe784d2fde0a7)
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://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=i386
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 >>):
clang-14: warning: optimization flag '-falign-jumps=0' is not supported [-Wignored-optimization-argument]
In file included from net/mac80211/he.c:9:
In file included from net/mac80211/ieee80211_i.h:15:
In file included from include/linux/device.h:15:
In file included from include/linux/dev_printk.h:16:
In file included from include/linux/ratelimit.h:6:
In file included from include/linux/sched.h:14:
In file included from include/linux/pid.h:5:
In file included from include/linux/rculist.h:11:
In file included from include/linux/rcupdate.h:27:
In file included from include/linux/preempt.h:78:
In file included from arch/x86/include/asm/preempt.h:7:
In file included from include/linux/thread_info.h:56:
arch/x86/include/asm/thread_info.h:172:13: warning: calling '__builtin_frame_address' with a nonzero argument is unsafe [-Wframe-address]
oldframe = __builtin_frame_address(1);
^~~~~~~~~~~~~~~~~~~~~~~~~~
arch/x86/include/asm/thread_info.h:174:11: warning: calling '__builtin_frame_address' with a nonzero argument is unsafe [-Wframe-address]
frame = __builtin_frame_address(2);
^~~~~~~~~~~~~~~~~~~~~~~~~~
>> 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 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: 35737 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* 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
@ 2021-11-07 18:46 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-11-07 18:46 UTC (permalink / raw)
To: Wen Gong; +Cc: llvm, kbuild-all, linux-kernel, Johannes Berg
[-- 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 --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* 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
@ 2021-10-31 3:25 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-10-31 3:25 UTC (permalink / raw)
To: Wen Gong; +Cc: llvm, kbuild-all, linux-kernel, Johannes Berg
[-- Attachment #1: Type: text/plain, Size: 17783 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 180eca540ae06246d594bdd8d8213426a259cc8c
commit: 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 mac80211: reduce peer HE MCS/NSS to own capabilities
date: 9 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 --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* 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
@ 2021-07-01 17:25 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-07-01 17:25 UTC (permalink / raw)
To: Wen Gong; +Cc: clang-built-linux, kbuild-all, linux-kernel, Johannes Berg
[-- 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 --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* 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
@ 2021-03-01 16:28 kernel test robot
0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-03-01 16:28 UTC (permalink / raw)
To: Wen Gong; +Cc: kbuild-all, clang-built-linux, linux-kernel, Johannes Berg
[-- Attachment #1: Type: text/plain, Size: 17778 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: fe07bfda2fb9cdef8a4d4008a409bb02f35f1bd8
commit: 7f7aa94bcaf03d0f18a6853d8f7dad6a4d25bbd6 mac80211: reduce peer HE MCS/NSS to own capabilities
date: 5 weeks ago
config: mips-randconfig-r011-20210301 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project b077d82b00d81934c7c27ac89dd8b0e7f448bded)
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: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: 31235 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-11-07 18:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-28 14:56 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 --
2021-11-07 18:46 kernel test robot
2021-10-31 3:25 kernel test robot
2021-07-01 17:25 kernel test robot
2021-03-01 16:28 kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).