summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2019-05-31 14:39:51 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2019-06-06 14:38:57 +0800
commit49d22167f826134e579179aa2217c74647e62015 (patch)
tree9f440d6203d8872105c2f2669e1e9ee5d44d8aff
parent20a0f9761343fba9b25ea46bd3a3e5e533d974f8 (diff)
downloadlinux-49d22167f826134e579179aa2217c74647e62015.tar.bz2
crypto: atmel - Fix sparse endianness warnings
The param2 member in atmel_i2c_cmd is supposed to be little-endian but was marked as u16. This patch changes it to a __le16 which reveals a missing endian swap in atmel_i2c_init_read_cmd. Another missing little-endian marking is also added in atmel_i2c_checksum. Fixes: 11105693fa05 ("crypto: atmel-ecc - introduce Microchip...") Reported-by: kbuild test robot <lkp@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/atmel-i2c.c4
-rw-r--r--drivers/crypto/atmel-i2c.h3
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/crypto/atmel-i2c.c b/drivers/crypto/atmel-i2c.c
index be49ab7f4338..dc876fab2882 100644
--- a/drivers/crypto/atmel-i2c.c
+++ b/drivers/crypto/atmel-i2c.c
@@ -34,7 +34,7 @@ static void atmel_i2c_checksum(struct atmel_i2c_cmd *cmd)
{
u8 *data = &cmd->count;
size_t len = cmd->count - CRC_SIZE;
- u16 *__crc16 = (u16 *)(data + len);
+ __le16 *__crc16 = (__le16 *)(data + len);
*__crc16 = cpu_to_le16(bitrev16(crc16(0, data, len)));
}
@@ -48,7 +48,7 @@ void atmel_i2c_init_read_cmd(struct atmel_i2c_cmd *cmd)
* (UserExtra, Selector, LockValue, LockConfig).
*/
cmd->param1 = CONFIG_ZONE;
- cmd->param2 = DEVICE_LOCK_ADDR;
+ cmd->param2 = cpu_to_le16(DEVICE_LOCK_ADDR);
cmd->count = READ_COUNT;
atmel_i2c_checksum(cmd);
diff --git a/drivers/crypto/atmel-i2c.h b/drivers/crypto/atmel-i2c.h
index c6bd43b78f33..21860b99c3e3 100644
--- a/drivers/crypto/atmel-i2c.h
+++ b/drivers/crypto/atmel-i2c.h
@@ -8,6 +8,7 @@
#define __ATMEL_I2C_H__
#include <linux/hw_random.h>
+#include <linux/types.h>
#define ATMEL_ECC_PRIORITY 300
@@ -50,7 +51,7 @@ struct atmel_i2c_cmd {
u8 count;
u8 opcode;
u8 param1;
- u16 param2;
+ __le16 param2;
u8 data[MAX_RSP_SIZE];
u8 msecs;
u16 rxsize;