crypto: caam - fix implicit casts in endianness helpers
authorHoria Geantă <horia.geanta@nxp.com>
Wed, 12 Sep 2018 08:59:30 +0000 (11:59 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 13 Nov 2018 19:16:53 +0000 (11:16 -0800)
[ Upstream commit aae733a3f46f5ef338fbdde26e14cbb205a23de0 ]

Fix the following sparse endianness warnings:

drivers/crypto/caam/regs.h:95:1: sparse: incorrect type in return expression (different base types) @@    expected unsigned int @@    got restricted __le32unsigned int @@
drivers/crypto/caam/regs.h:95:1:    expected unsigned int
drivers/crypto/caam/regs.h:95:1:    got restricted __le32 [usertype] <noident>
drivers/crypto/caam/regs.h:95:1: sparse: incorrect type in return expression (different base types) @@    expected unsigned int @@    got restricted __be32unsigned int @@
drivers/crypto/caam/regs.h:95:1:    expected unsigned int
drivers/crypto/caam/regs.h:95:1:    got restricted __be32 [usertype] <noident>

drivers/crypto/caam/regs.h:92:1: sparse: cast to restricted __le32
drivers/crypto/caam/regs.h:92:1: sparse: cast to restricted __be32

Fixes: 261ea058f016 ("crypto: caam - handle core endianness != caam endianness")
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/crypto/caam/regs.h

index 84d2f83..b03e6f5 100644 (file)
 
 extern bool caam_little_end;
 
-#define caam_to_cpu(len)                               \
-static inline u##len caam##len ## _to_cpu(u##len val)  \
-{                                                      \
-       if (caam_little_end)                            \
-               return le##len ## _to_cpu(val);         \
-       else                                            \
-               return be##len ## _to_cpu(val);         \
+#define caam_to_cpu(len)                                               \
+static inline u##len caam##len ## _to_cpu(u##len val)                  \
+{                                                                      \
+       if (caam_little_end)                                            \
+               return le##len ## _to_cpu((__force __le##len)val);      \
+       else                                                            \
+               return be##len ## _to_cpu((__force __be##len)val);      \
 }
 
-#define cpu_to_caam(len)                               \
-static inline u##len cpu_to_caam##len(u##len val)      \
-{                                                      \
-       if (caam_little_end)                            \
-               return cpu_to_le##len(val);             \
-       else                                            \
-               return cpu_to_be##len(val);             \
+#define cpu_to_caam(len)                                       \
+static inline u##len cpu_to_caam##len(u##len val)              \
+{                                                              \
+       if (caam_little_end)                                    \
+               return (__force u##len)cpu_to_le##len(val);     \
+       else                                                    \
+               return (__force u##len)cpu_to_be##len(val);     \
 }
 
 caam_to_cpu(16)