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: 11105693fa
("crypto: atmel-ecc - introduce Microchip...")
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
Родитель
20a0f97613
Коммит
49d22167f8
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче