On 11/10/15 13:16, ludovic.tancerel@xxxxxxxxxxxxxxxxx wrote: > Hello Jonathan > > I often work on Sunday, so it is not a pb. > > I apologize for not correcting this myself, I was not sure what had to be done … That's quite alright. I'm rubbish at spotting this particular issue in drivers or we'd have dealt with it earlier + my sparse was out of date (now it reports the same as the autobuilder one). > I had a look and this looks ok. Cool > > I cannot test this today as I do not have access to HW, but can surely test the patch tomorrow morning. I'll probably set up my pull request then but not actually send it until I get an OK from you. > > Thanks a lot for doing the change, > regards, > Ludo > > > >> Le 11 oct. 2015 à 13:57, Jonathan Cameron <jic23@xxxxxxxxxx> a écrit : >> >> If anyone can take a quick look at this today (ideally Ludovic! but I appreciate it's a Sunday) >> that would be great as this is stalling my sending pull request to Greg. >> >> I 'might' apply it anyway on the basis it is straight forward but >> nice to have a sanity check from someone! >> >> Jonathan >> >> >> On 11/10/15 12:55, Jonathan Cameron wrote: >>> This patch changes various types to the appropriate endian specific >>> versions. Also introduces an additional local variable to avoid >>> a single variable being used for both be and cpu endianness. >>> >>> These aren't bugs as such, but clearing them up does make the code >>> clearer. >>> >>> Warning was: >>> sparse warnings: (new ones prefixed by >>) >>> >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:126:9: sparse: cast to restricted __be32 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:127:16: sparse: cast to restricted __be32 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: sparse: incorrect type in assignment (different base types) >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: expected unsigned short [unsigned] [addressable] [usertype] send_buf >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:208:18: got restricted __be16 [usertype] <noident> >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>>>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:216:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: sparse: incorrect type in assignment (different base types) >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: expected unsigned short [unsigned] [addressable] [usertype] send_buf >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:230:18: got restricted __be16 [usertype] <noident> >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c:239:19: sparse: cast to restricted __be64 >>> >>> >>> Reported-by: kbuild test robot <fengguang.wu@xxxxxxxxx> >>> Signed-off-by: Jonathan Cameron <jic23@xxxxxxxxxx> >>> --- >>> drivers/iio/common/ms_sensors/ms_sensors_i2c.c | 29 +++++++++++++------------- >>> 1 file changed, 15 insertions(+), 14 deletions(-) >>> >>> diff --git a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c >>> index 056c4f3bf497..669dc7c270f5 100644 >>> --- a/drivers/iio/common/ms_sensors/ms_sensors_i2c.c >>> +++ b/drivers/iio/common/ms_sensors/ms_sensors_i2c.c >>> @@ -106,7 +106,7 @@ int ms_sensors_convert_and_read(void *cli, u8 conv, u8 rd, >>> unsigned int delay, u32 *adc) >>> { >>> int ret; >>> - u32 buf = 0; >>> + __be32 buf = 0; >>> struct i2c_client *client = (struct i2c_client *)cli; >>> >>> /* Trigger conversion */ >>> @@ -186,8 +186,9 @@ static bool ms_sensors_crc_valid(u32 value) >>> int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) >>> { >>> u8 i; >>> - u64 rcv_buf = 0; >>> - u16 send_buf; >>> + __be64 rcv_buf = 0; >>> + u64 rcv_val; >>> + __be16 send_buf; >>> int ret; >>> >>> struct i2c_msg msg[2] = { >>> @@ -213,18 +214,18 @@ int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) >>> return ret; >>> } >>> >>> - rcv_buf = be64_to_cpu(rcv_buf); >>> - dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_buf); >>> + rcv_val = be64_to_cpu(rcv_buf); >>> + dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_val); >>> >>> for (i = 0; i < 64; i += 16) { >>> - if (!ms_sensors_crc_valid((rcv_buf >> i) & 0xFFFF)) >>> + if (!ms_sensors_crc_valid((rcv_val >> i) & 0xFFFF)) >>> return -ENODEV; >>> } >>> >>> - *sn = (((rcv_buf >> 32) & 0xFF000000) | >>> - ((rcv_buf >> 24) & 0x00FF0000) | >>> - ((rcv_buf >> 16) & 0x0000FF00) | >>> - ((rcv_buf >> 8) & 0x000000FF)) << 16; >>> + *sn = (((rcv_val >> 32) & 0xFF000000) | >>> + ((rcv_val >> 24) & 0x00FF0000) | >>> + ((rcv_val >> 16) & 0x0000FF00) | >>> + ((rcv_val >> 8) & 0x000000FF)) << 16; >>> >>> /* Read LSB part of serial number */ >>> send_buf = cpu_to_be16(MS_SENSORS_SERIAL_READ_LSB); >>> @@ -236,15 +237,15 @@ int ms_sensors_read_serial(struct i2c_client *client, u64 *sn) >>> return ret; >>> } >>> >>> - rcv_buf = be64_to_cpu(rcv_buf) >> 16; >>> - dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_buf); >>> + rcv_val = be64_to_cpu(rcv_buf) >> 16; >>> + dev_dbg(&client->dev, "Serial MSB raw : %llx\n", rcv_val); >>> >>> for (i = 0; i < 48; i += 24) { >>> - if (!ms_sensors_crc_valid((rcv_buf >> i) & 0xFFFFFF)) >>> + if (!ms_sensors_crc_valid((rcv_val >> i) & 0xFFFFFF)) >>> return -ENODEV; >>> } >>> >>> - *sn |= (rcv_buf & 0xFFFF00) << 40 | (rcv_buf >> 32); >>> + *sn |= (rcv_val & 0xFFFF00) << 40 | (rcv_val >> 32); >>> >>> return 0; >>> } >>> >> > > -- > To unsubscribe from this list: send the line "unsubscribe linux-iio" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe linux-iio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html