| From 1e6a4eba693ac72e6f91b4252458c933110e5f4c Mon Sep 17 00:00:00 2001 |
| From: Leonard Crestez <leonard.crestez@nxp.com> |
| Date: Thu, 20 Feb 2020 18:29:34 +0200 |
| Subject: firmware: imx: misc: Align imx sc msg structs to 4 |
| |
| From: Leonard Crestez <leonard.crestez@nxp.com> |
| |
| 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 | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/firmware/imx/misc.c |
| +++ b/drivers/firmware/imx/misc.c |
| @@ -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. |