summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBjørn Mork <bjorn@mork.no>2016-08-23 14:31:05 +0200
committerFelix Fietkau <nbd@nbd.name>2016-08-24 11:06:32 +0200
commiteb1dec7d0dc283a7f61aa574a443a0ab61f8793f (patch)
treecff8b23e3a2bef94ac6a0392f5f861de518cae68
parent5624e3f1772edc9cd46c10a795d27d570314a44a (diff)
uqmi: fix big endian bugs in MBIM code
All MBIM integer fields are 32bit little endian. So we need to convert then all on big endian systems. Fixes: e69bf24b00d8 ("uqmi: add support for MBIM devices with QMI service") Signed-off-by: Bjørn Mork <bjorn@mork.no>
-rw-r--r--mbim.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/mbim.c b/mbim.c
index 33ce19d..f5336b1 100644
--- a/mbim.c
+++ b/mbim.c
@@ -39,12 +39,12 @@ bool is_mbim_qmi(struct mbim_command_message *msg)
void mbim_qmi_cmd(struct mbim_command_message *msg, int len, uint16_t tid)
{
msg->header.type = cpu_to_le32(MBIM_MESSAGE_TYPE_COMMAND);
- msg->header.length = sizeof(*msg) + len;
+ msg->header.length = cpu_to_le32(sizeof(*msg) + len);
msg->header.transaction_id = cpu_to_le32(tid);
- msg->fragment_header.total = 1;
+ msg->fragment_header.total = cpu_to_le32(1);
msg->fragment_header.current = 0;
memcpy(msg->service_id, qmiuuid, 16);
msg->command_id = cpu_to_le32(MBIM_CID_QMI_MSG);
msg->command_type = cpu_to_le32(MBIM_MESSAGE_COMMAND_TYPE_SET);
- msg->buffer_length = len;
+ msg->buffer_length = cpu_to_le32(len);
}