Date: Tue, 5 Apr 2022 19:11:52 GMT From: "Bjoern A. Zeeb" <bz@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 681b6a95f728 - releng/13.1 - LinuxKPI: 802.11: fix compat code for i386 Message-ID: <202204051911.235JBq5w097267@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch releng/13.1 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=681b6a95f728fb78485f65bb98303d804e927f84 commit 681b6a95f728fb78485f65bb98303d804e927f84 Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2022-03-31 17:29:53 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2022-04-05 19:11:00 +0000 LinuxKPI: 802.11: fix compat code for i386 Compiling another driver on i386 revealed two problems: - ieee80211_tx_info.status.status_driver_data space needs to be calculated. While a pointer is 32bit vm_paddr_t is 64 bit on i386 so we didn't fit more than one of these in but needed more space. - the arguments to ieee80211_txq_get_depth() are expected to unsigned long and not uint64_t. No user noticable changes. Sponsored by: The FreeBSD Foundation Approved by: re (gjb) (cherry picked from commit 86220d3cbd500b1018dcdabb0ba70644db438cfd) (cherry picked from commit 2a8e509ba30c6546ceeec49f9447c2e3d21a1d22) --- sys/compat/linuxkpi/common/include/net/mac80211.h | 9 +++++---- sys/compat/linuxkpi/common/src/linux_80211.c | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sys/compat/linuxkpi/common/include/net/mac80211.h b/sys/compat/linuxkpi/common/include/net/mac80211.h index 14404d4723f8..4e3342837ddc 100644 --- a/sys/compat/linuxkpi/common/include/net/mac80211.h +++ b/sys/compat/linuxkpi/common/include/net/mac80211.h @@ -670,7 +670,7 @@ struct ieee80211_tx_info { uint8_t antenna; uint16_t tx_time; bool is_valid_ack_signal; - void *status_driver_data[2]; /* XXX TODO */ + void *status_driver_data[16 / sizeof(void *)]; /* XXX TODO */ } status; #define IEEE80211_TX_INFO_DRIVER_DATA_SIZE (5 * sizeof(void *)) /* XXX TODO 5? */ void *driver_data[IEEE80211_TX_INFO_DRIVER_DATA_SIZE / sizeof(void *)]; @@ -900,8 +900,8 @@ struct sk_buff *linuxkpi_ieee80211_pspoll_get(struct ieee80211_hw *, struct ieee80211_vif *); struct sk_buff *linuxkpi_ieee80211_nullfunc_get(struct ieee80211_hw *, struct ieee80211_vif *, bool); -void linuxkpi_ieee80211_txq_get_depth(struct ieee80211_txq *, uint64_t *, - uint64_t *); +void linuxkpi_ieee80211_txq_get_depth(struct ieee80211_txq *, unsigned long *, + unsigned long *); struct wireless_dev *linuxkpi_ieee80211_vif_to_wdev(struct ieee80211_vif *); void linuxkpi_ieee80211_connection_loss(struct ieee80211_vif *); void linuxkpi_ieee80211_beacon_loss(struct ieee80211_vif *); @@ -1931,7 +1931,8 @@ ieee80211_tx_info_clear_status(struct ieee80211_tx_info *info) } static __inline void -ieee80211_txq_get_depth(struct ieee80211_txq *txq, uint64_t *frame_cnt, uint64_t *byte_cnt) +ieee80211_txq_get_depth(struct ieee80211_txq *txq, unsigned long *frame_cnt, + unsigned long *byte_cnt) { if (frame_cnt == NULL && byte_cnt == NULL) diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c index 3a70d8bbfcab..13ad2908c021 100644 --- a/sys/compat/linuxkpi/common/src/linux_80211.c +++ b/sys/compat/linuxkpi/common/src/linux_80211.c @@ -4007,11 +4007,11 @@ linuxkpi_ieee80211_tx_dequeue(struct ieee80211_hw *hw, void linuxkpi_ieee80211_txq_get_depth(struct ieee80211_txq *txq, - uint64_t *frame_cnt, uint64_t *byte_cnt) + unsigned long *frame_cnt, unsigned long *byte_cnt) { struct lkpi_txq *ltxq; struct sk_buff *skb; - uint64_t fc, bc; + unsigned long fc, bc; ltxq = TXQ_TO_LTXQ(txq);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202204051911.235JBq5w097267>