]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
remoteproc: sysmon: Correct subsys_name_len type in QMI request
authorBjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Fri, 20 Feb 2026 21:11:48 +0000 (15:11 -0600)
committerBjorn Andersson <andersson@kernel.org>
Wed, 4 Mar 2026 19:12:06 +0000 (13:12 -0600)
The QMI message encoder has up until recently read a single byte (as
elem_size == 1), but with the introduction of big endian support it's
become apparent that this field is expected to be a full u32 -
regardless of the size of the length in the encoded message (which is
what elem_size specifies).

The result is that the encoder now reads past the length byte and
rejects the unreasonably large length formed when including the
following 3 bytes from the subsys_name array.

Fix this by changing to the expected type.

Fixes: 1fb82ee806d1 ("remoteproc: qcom: Introduce sysmon")
Signed-off-by: Bjorn Andersson <bjorn.andersson@oss.qualcomm.com>
Reviewed-by: Chris Lew <christopher.lew@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260220-qmi-encode-invalid-length-v2-1-5674be35ab29@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
drivers/remoteproc/qcom_sysmon.c

index cf10e8ecfb8f5fd535f7bb646ff077f20c1e098d..3ceec1fd6d99849f72dd7b0f5f608b7ae510d805 100644 (file)
@@ -203,7 +203,7 @@ static const struct qmi_elem_info ssctl_shutdown_resp_ei[] = {
 };
 
 struct ssctl_subsys_event_req {
-       u8 subsys_name_len;
+       u32 subsys_name_len;
        char subsys_name[SSCTL_SUBSYS_NAME_LENGTH];
        u32 event;
        u8 evt_driven_valid;