]> www.infradead.org Git - users/hch/misc.git/commitdiff
wifi: mwifiex: fix endianness handling in mwifiex_send_rgpower_table
authorStefan Kerkmann <s.kerkmann@pengutronix.de>
Wed, 10 Sep 2025 13:03:32 +0000 (15:03 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 11 Sep 2025 06:53:43 +0000 (08:53 +0200)
The length of the host command is a u16 stored in little endian byte
order, which needs byte order conversion to work correctly on big endian
systems.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/linux-wireless/aLqZI4FfOI4iJZtf@stanley.mountain
Fixes: 7b6f16a25806 ("wifi: mwifiex: add rgpower table loading support")
Signed-off-by: Stefan Kerkmann <s.kerkmann@pengutronix.de>
Reviewed-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Link: https://patch.msgid.link/20250910-for-next-v1-1-3ee311706231@pengutronix.de
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/marvell/mwifiex/sta_cmd.c

index 91d5098081e8b97420322484a229654c026e4618..dcca71158fc682902c0bd3376da32e81f8f6561f 100644 (file)
@@ -1537,7 +1537,7 @@ int mwifiex_send_rgpower_table(struct mwifiex_private *priv, const u8 *data,
                }
 
                if (*pos == '}' && start_raw) {
-                       memcpy(&hostcmd->len, &hostcmd->cmd[2], sizeof(u16));
+                       hostcmd->len = get_unaligned_le16(&hostcmd->cmd[2]);
                        ret = mwifiex_send_cmd(priv, 0, 0, 0, hostcmd, false);
                        if (ret) {
                                mwifiex_dbg(adapter, ERROR,