Re: [PATCH RESEND] wifi: ath12k: fix MAC address copy on big endian
Baochen Qiang <[email protected]>
| Newsgroups | org.infradead.lists.ath12k,org.kernel.vger.linux-kernel,org.kernel.vger.linux-wireless |
|---|---|
| Message-ID | <[email protected]> |
On 6/29/2026 3:55 PM, Alexander Wilhelm wrote: > The ath12k_dp_get_mac_addr function performs a simple memcpy from a > CPU-native data types into an u8 array. On a big-endian architecture, this > later results in a null‑pointer dereference. Convert the data to Alex, did you find a time to investigate the root cause of the null pointer? > little‑endian first, then copy it into the target array. > > Signed-off-by: Alexander Wilhelm <[email protected]> > --- > drivers/net/wireless/ath/ath12k/dp.h | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath12k/dp.h b/drivers/net/wireless/ath/ath12k/dp.h > index f8cfc7bb29dd..50957915dbf4 100644 > --- a/drivers/net/wireless/ath/ath12k/dp.h > +++ b/drivers/net/wireless/ath/ath12k/dp.h > @@ -647,8 +647,11 @@ int ath12k_dp_arch_rx_tid_delete_handler(struct ath12k_dp *dp, > > static inline void ath12k_dp_get_mac_addr(u32 addr_l32, u16 addr_h16, u8 *addr) > { > - memcpy(addr, &addr_l32, 4); > - memcpy(addr + 4, &addr_h16, ETH_ALEN - 4); > + __le32 le_addr_l32 = cpu_to_le32(addr_l32); > + __le16 le_addr_h16 = cpu_to_le16(addr_h16); > + > + memcpy(addr, &le_addr_l32, 4); > + memcpy(addr + 4, &le_addr_h16, ETH_ALEN - 4); > } > > static inline struct ath12k_dp * > > --- > base-commit: 702847e8cfd51856836a282db2073defd7cfd80c > change-id: 20260317-fix-mac-addr-copy-on-big-endian-f1a4fea40184 > > Best regards,