tree:
https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.19
head: fd9257f21c8e6b27d0de6e42b32d1136266c8701
commit: 318ac899ffacd36596e01c9a784fe1bd007aa6e4 [31/39] FROMGIT: ath10k: add CCMP PN
replay protection for fragmented frames for PCIe
config:
arm64-chromiumos-arm64-customedconfig-chrome-os:chromeos-4.19:1c68c68e817969a1e15b79c9aa4d7561b21a509d
(attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add chrome-os
https://chromium.googlesource.com/chromiumos/third_party/kernel
git fetch --no-tags chrome-os chromeos-4.19
git checkout 318ac899ffacd36596e01c9a784fe1bd007aa6e4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross W=1 ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from drivers/net/wireless/ath/ath10k/core.h:18,
from drivers/net/wireless/ath/ath10k/htt_rx.c:8:
drivers/net/wireless/ath/ath10k/htt.h:1764:1: error: alignment 1 of 'struct
ath10k_htt_txbuf_32' is less than 4 [-Werror=packed-not-aligned]
1764 | } __packed;
| ^
drivers/net/wireless/ath/ath10k/htt.h:1771:1: error: alignment 1 of 'struct
ath10k_htt_txbuf_64' is less than 4 [-Werror=packed-not-aligned]
1771 | } __packed;
| ^
drivers/net/wireless/ath/ath10k/htt_rx.c: In function
'ath10k_htt_rx_h_frag_pn_check':
> drivers/net/wireless/ath/ath10k/htt_rx.c:1556:7: error: variable
'more_frags' set but not used [-Werror=unused-but-set-variable]
1556 |
bool more_frags;
| ^~~~~~~~~~
cc1: all warnings being treated as errors
vim +/more_frags +1556 drivers/net/wireless/ath/ath10k/htt_rx.c
1546
1547 static bool ath10k_htt_rx_h_frag_pn_check(struct ath10k *ar,
1548 struct sk_buff *skb,
1549 u16 peer_id,
1550 u16 offset,
1551 enum htt_rx_mpdu_encrypt_type enctype)
1552 {
1553 struct ath10k_peer *peer;
1554 union htt_rx_pn_t *last_pn, new_pn = {0};
1555 struct ieee80211_hdr *hdr;
1556 bool more_frags;
1557 u8 tid, frag_number;
1558 u32 seq;
1559
1560 peer = ath10k_peer_find_by_id(ar, peer_id);
1561 if (!peer) {
1562 ath10k_dbg(ar, ATH10K_DBG_HTT, "invalid peer for frag pn check\n");
1563 return false;
1564 }
1565
1566 hdr = (struct ieee80211_hdr *)(skb->data + offset);
1567 if (ieee80211_is_data_qos(hdr->frame_control))
1568 tid = ieee80211_get_tid(hdr);
1569 else
1570 tid = ATH10K_TXRX_NON_QOS_TID;
1571
1572 last_pn = &peer->frag_tids_last_pn[tid];
1573 new_pn.pn48 = ath10k_htt_rx_h_get_pn(ar, skb, offset, enctype);
1574 more_frags = ieee80211_has_morefrags(hdr->frame_control);
1575 frag_number = le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_FRAG;
1576 seq = (__le16_to_cpu(hdr->seq_ctrl) & IEEE80211_SCTL_SEQ) >> 4;
1577
1578 if (frag_number == 0) {
1579 last_pn->pn48 = new_pn.pn48;
1580 peer->frag_tids_seq[tid] = seq;
1581 } else {
1582 if (seq != peer->frag_tids_seq[tid])
1583 return false;
1584
1585 if (new_pn.pn48 != last_pn->pn48 + 1)
1586 return false;
1587
1588 last_pn->pn48 = new_pn.pn48;
1589 }
1590
1591 return true;
1592 }
1593
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org