Ensure proper endianness support for big-endian platforms by correcting data types in the QMI firmware M3 info request message. Add missing byte swaps wherever this structure is accessed or modified. Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices") Signed-off-by: Alexander Wilhelm <alexander.wilhelm@xxxxxxxxxxxx> --- drivers/net/wireless/ath/ath12k/qmi.c | 4 ++-- drivers/net/wireless/ath/ath12k/qmi.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c index d18ffb86f7bc..5043d0c39b56 100644 --- a/drivers/net/wireless/ath/ath12k/qmi.c +++ b/drivers/net/wireless/ath/ath12k/qmi.c @@ -3198,8 +3198,8 @@ int ath12k_qmi_wlanfw_m3_info_send(struct ath12k_base *ab) ath12k_err(ab, "failed to load m3 firmware: %d", ret); return ret; } - req.addr = m3_mem->paddr; - req.size = m3_mem->size; + req.addr = cpu_to_le64(m3_mem->paddr); + req.size = cpu_to_le32(m3_mem->size); } ret = qmi_txn_init(&ab->qmi.handle, &txn, diff --git a/drivers/net/wireless/ath/ath12k/qmi.h b/drivers/net/wireless/ath/ath12k/qmi.h index a48850ec0296..101d91131ef0 100644 --- a/drivers/net/wireless/ath/ath12k/qmi.h +++ b/drivers/net/wireless/ath/ath12k/qmi.h @@ -529,8 +529,8 @@ struct qmi_wlanfw_bdf_download_resp_msg_v01 { #define QMI_WLANFW_M3_INFO_REQ_V01 0x003C struct qmi_wlanfw_m3_info_req_msg_v01 { - u64 addr; - u32 size; + __le64 addr; + __le32 size; }; struct qmi_wlanfw_m3_info_resp_msg_v01 { -- 2.34.1