]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
firmware: imx: misc: Align imx sc msg structs to 4
authorLeonard Crestez <leonard.crestez@nxp.com>
Thu, 20 Feb 2020 16:29:34 +0000 (18:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Mar 2020 06:18:43 +0000 (07:18 +0100)
commit 1e6a4eba693ac72e6f91b4252458c933110e5f4c upstream.

The imx SC api strongly assumes that messages are composed out of
4-bytes words but some of our message structs have odd sizeofs.

This produces many oopses with CONFIG_KASAN=y:

    BUG: KASAN: stack-out-of-bounds in imx_mu_send_data+0x108/0x1f0

It shouldn't cause an issues in normal use because these structs are
always allocated on the stack.

Fixes: 15e1f2bc8b3b ("firmware: imx: add misc svc support")
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/firmware/imx/misc.c

index 4b56a587dacd4b5b65d6d74e83eaec177ba0b7cb..6a21ff942f82ada95c197f7f2ca23e856eb43d9b 100644 (file)
@@ -16,7 +16,7 @@ struct imx_sc_msg_req_misc_set_ctrl {
        u32 ctrl;
        u32 val;
        u16 resource;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_req_cpu_start {
        struct imx_sc_rpc_msg hdr;
@@ -30,12 +30,12 @@ struct imx_sc_msg_req_misc_get_ctrl {
        struct imx_sc_rpc_msg hdr;
        u32 ctrl;
        u16 resource;
-} __packed;
+} __packed __aligned(4);
 
 struct imx_sc_msg_resp_misc_get_ctrl {
        struct imx_sc_rpc_msg hdr;
        u32 val;
-} __packed;
+} __packed __aligned(4);
 
 /*
  * This function sets a miscellaneous control value.