clk: imx: Align imx sc clock msg structs to 4
authorLeonard Crestez <leonard.crestez@nxp.com>
Thu, 20 Feb 2020 16:29:32 +0000 (18:29 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Apr 2020 13:11:01 +0000 (15:11 +0200)
commit a0ae04a25650fd51b7106e742d27333e502173c6 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.

Fix by marking with __aligned(4).

Fixes: fe37b4820417 ("clk: imx: add scu clock common part")
Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
Link: https://lkml.kernel.org/r/10e97a04980d933b2cfecb6b124bf9046b6e4f16.1582216144.git.leonard.crestez@nxp.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/clk/imx/clk-scu.c

index fbef740..3c5c42d 100644 (file)
@@ -43,12 +43,12 @@ struct imx_sc_msg_req_set_clock_rate {
        __le32 rate;
        __le16 resource;
        u8 clk;
-} __packed;
+} __packed __aligned(4);
 
 struct req_get_clock_rate {
        __le16 resource;
        u8 clk;
-} __packed;
+} __packed __aligned(4);
 
 struct resp_get_clock_rate {
        __le32 rate;
@@ -121,7 +121,7 @@ struct imx_sc_msg_req_clock_enable {
        u8 clk;
        u8 enable;
        u8 autog;
-} __packed;
+} __packed __aligned(4);
 
 static inline struct clk_scu *to_clk_scu(struct clk_hw *hw)
 {