From: Alexander Wilhelm <alexander.wilhelm@westermo.com>
To: Jeff Johnson <jjohnson@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>
Cc: linux-wireless@vger.kernel.org, ath12k@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org
Subject: [PATCH 04/11] wifi: ath12k: fix endianness handling in QMI firmware memory indication
Date: Wed, 16 Jul 2025 09:50:53 +0200 [thread overview]
Message-ID: <20250716075100.1447352-5-alexander.wilhelm@westermo.com> (raw)
In-Reply-To: <20250716075100.1447352-1-alexander.wilhelm@westermo.com>
Ensure proper endianness support for big-endian platforms by correcting
data types in the QMI firmware memory indication request message and its
associated structures as well. Add missing byte swaps wherever these
structures are accessed or modified.
Fixes: d889913205cf ("wifi: ath12k: driver for Qualcomm Wi-Fi 7 devices")
Signed-off-by: Alexander Wilhelm <alexander.wilhelm@westermo.com>
---
drivers/net/wireless/ath/ath12k/qmi.c | 15 ++++++++-------
drivers/net/wireless/ath/ath12k/qmi.h | 12 ++++++------
2 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
index cf05c76cc112..146e9e1c4834 100644
--- a/drivers/net/wireless/ath/ath12k/qmi.c
+++ b/drivers/net/wireless/ath/ath12k/qmi.c
@@ -3637,18 +3637,19 @@ static void ath12k_qmi_msg_mem_request_cb(struct qmi_handle *qmi_hdl,
ath12k_dbg(ab, ATH12K_DBG_QMI, "qmi firmware request memory request\n");
- if (msg->mem_seg_len == 0 ||
- msg->mem_seg_len > ATH12K_QMI_WLANFW_MAX_NUM_MEM_SEG_V01)
+ if (le32_to_cpu(msg->mem_seg_len) == 0 ||
+ le32_to_cpu(msg->mem_seg_len) > ATH12K_QMI_WLANFW_MAX_NUM_MEM_SEG_V01)
ath12k_warn(ab, "Invalid memory segment length: %u\n",
- msg->mem_seg_len);
+ le32_to_cpu(msg->mem_seg_len));
- ab->qmi.mem_seg_count = msg->mem_seg_len;
+ ab->qmi.mem_seg_count = le32_to_cpu(msg->mem_seg_len);
for (i = 0; i < qmi->mem_seg_count ; i++) {
- ab->qmi.target_mem[i].type = msg->mem_seg[i].type;
- ab->qmi.target_mem[i].size = msg->mem_seg[i].size;
+ ab->qmi.target_mem[i].type = le32_to_cpu(msg->mem_seg[i].type);
+ ab->qmi.target_mem[i].size = le32_to_cpu(msg->mem_seg[i].size);
ath12k_dbg(ab, ATH12K_DBG_QMI, "qmi mem seg type %d size %d\n",
- msg->mem_seg[i].type, msg->mem_seg[i].size);
+ le32_to_cpu(msg->mem_seg[i].type),
+ le32_to_cpu(msg->mem_seg[i].size));
}
if (test_bit(ATH12K_FLAG_FIXED_MEM_REGION, &ab->dev_flags)) {
diff --git a/drivers/net/wireless/ath/ath12k/qmi.h b/drivers/net/wireless/ath/ath12k/qmi.h
index 026dc33a39d8..92993c85cec9 100644
--- a/drivers/net/wireless/ath/ath12k/qmi.h
+++ b/drivers/net/wireless/ath/ath12k/qmi.h
@@ -327,8 +327,8 @@ struct qmi_wlanfw_ind_register_resp_msg_v01 {
#define QMI_WLANFW_MAX_STR_LEN_V01 16
struct qmi_wlanfw_mem_cfg_s_v01 {
- u64 offset;
- u32 size;
+ __le64 offset;
+ __le32 size;
u8 secure_flag;
};
@@ -344,14 +344,14 @@ enum qmi_wlanfw_mem_type_enum_v01 {
};
struct qmi_wlanfw_mem_seg_s_v01 {
- u32 size;
- enum qmi_wlanfw_mem_type_enum_v01 type;
- u32 mem_cfg_len;
+ __le32 size;
+ __le32 type;
+ __le32 mem_cfg_len;
struct qmi_wlanfw_mem_cfg_s_v01 mem_cfg[QMI_WLANFW_MAX_NUM_MEM_CFG_V01];
};
struct qmi_wlanfw_request_mem_ind_msg_v01 {
- u32 mem_seg_len;
+ __le32 mem_seg_len;
struct qmi_wlanfw_mem_seg_s_v01 mem_seg[ATH12K_QMI_WLANFW_MAX_NUM_MEM_SEG_V01];
};
--
2.34.1
next prev parent reply other threads:[~2025-07-16 7:51 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-16 7:50 [PATCH 00/11] wifi: ath12k: Fix endianness handling in QMI Alexander Wilhelm
2025-07-16 7:50 ` [PATCH 01/11] wifi: ath12k: fix endianness handling in QMI host capability request Alexander Wilhelm
2025-07-16 7:50 ` [PATCH 02/11] wifi: ath12k: fix endianness handling in QMI phy capability response Alexander Wilhelm
2025-07-16 7:50 ` [PATCH 03/11] wifi: ath12k: fix endianness handling in QMI firmware indication Alexander Wilhelm
2025-07-16 7:50 ` Alexander Wilhelm [this message]
2025-07-16 7:50 ` [PATCH 05/11] wifi: ath12k: fix endianness handling in QMI respond firmware memory Alexander Wilhelm
2025-07-16 7:50 ` [PATCH 06/11] wifi: ath12k: fix endianness handling in QMI firmware capabilities Alexander Wilhelm
2025-07-16 7:50 ` [PATCH 07/11] wifi: ath12k: fix endianness handling in QMI bdf download Alexander Wilhelm
2025-07-17 15:59 ` kernel test robot
2025-07-16 7:50 ` [PATCH 08/11] wifi: ath12k: fix endianness handling in QMI firmware m3 info Alexander Wilhelm
2025-07-16 7:50 ` [PATCH 09/11] wifi: ath12k: fix endianness handling in QMI firmware wlan mode Alexander Wilhelm
2025-07-16 7:50 ` [PATCH 10/11] wifi: ath12k: fix endianness handling in QMI wlan configuration Alexander Wilhelm
2025-07-16 7:51 ` [PATCH 11/11] wifi: ath12k: fix endianness handling in QMI response Alexander Wilhelm
2025-07-17 8:33 ` kernel test robot
2025-07-16 15:13 ` [PATCH 00/11] wifi: ath12k: Fix endianness handling in QMI Jeff Johnson
2025-07-20 4:24 ` Bjorn Andersson
2025-07-21 7:36 ` Alexander Wilhelm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250716075100.1447352-5-alexander.wilhelm@westermo.com \
--to=alexander.wilhelm@westermo.com \
--cc=andersson@kernel.org \
--cc=ath12k@lists.infradead.org \
--cc=jjohnson@kernel.org \
--cc=konradybcio@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®