* [PATCH] iio:measurement specialties core: Fix endian sparse warnings.
@ 2015-10-11 11:55 Jonathan Cameron
2015-10-11 11:57 ` Jonathan Cameron
0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2015-10-11 11:55 UTC (permalink / raw)
To: linux-iio; +Cc: ludovic.tancerel, kbuild-all, fengguang.wu, Jonathan Cameron
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@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
---
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;
}
--
2.6.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] iio:measurement specialties core: Fix endian sparse warnings.
2015-10-11 11:55 [PATCH] iio:measurement specialties core: Fix endian sparse warnings Jonathan Cameron
@ 2015-10-11 11:57 ` Jonathan Cameron
2015-10-11 12:16 ` ludovic.tancerel
0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2015-10-11 11:57 UTC (permalink / raw)
To: linux-iio; +Cc: ludovic.tancerel, kbuild-all, fengguang.wu
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@intel.com>
> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
> ---
> 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;
> }
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] iio:measurement specialties core: Fix endian sparse warnings.
2015-10-11 11:57 ` Jonathan Cameron
@ 2015-10-11 12:16 ` ludovic.tancerel
2015-10-11 13:29 ` Jonathan Cameron
0 siblings, 1 reply; 7+ messages in thread
From: ludovic.tancerel @ 2015-10-11 12:16 UTC (permalink / raw)
To: Jonathan Cameron; +Cc: linux-iio, kbuild-all, fengguang.wu
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 …
I had a look and this looks ok.
I cannot test this today as I do not have access to HW, but can surely test the patch tomorrow morning.
Thanks a lot for doing the change,
regards,
Ludo
> Le 11 oct. 2015 à 13:57, Jonathan Cameron <jic23@kernel.org> 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@intel.com>
>> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
>> ---
>> 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;
>> }
>>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] iio:measurement specialties core: Fix endian sparse warnings.
2015-10-11 12:16 ` ludovic.tancerel
@ 2015-10-11 13:29 ` Jonathan Cameron
2015-10-12 9:36 ` ludovic.tancerel
0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2015-10-11 13:29 UTC (permalink / raw)
To: ludovic.tancerel@maplehightech.com; +Cc: linux-iio, kbuild-all, fengguang.wu
On 11/10/15 13:16, ludovic.tancerel@maplehightech.com 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@kernel.org> 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@intel.com>
>>> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
>>> ---
>>> 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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] iio:measurement specialties core: Fix endian sparse warnings.
2015-10-11 13:29 ` Jonathan Cameron
@ 2015-10-12 9:36 ` ludovic.tancerel
2015-10-12 16:12 ` Jonathan Cameron
0 siblings, 1 reply; 7+ messages in thread
From: ludovic.tancerel @ 2015-10-12 9:36 UTC (permalink / raw)
To: Jonathan Cameron; +Cc: linux-iio, kbuild-all, fengguang.wu
Hello Jonathan,
I was able to test the patch, and checked items impacted with your change.
>From my prospective it is ok to apply.
Regards,
Ludovic
> Le 11 oct. 2015 à 15:29, Jonathan Cameron <jic23@kernel.org> a écrit :
>
> On 11/10/15 13:16, ludovic.tancerel@maplehightech.com 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@kernel.org> 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@intel.com>
>>>> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
>>>> ---
>>>> 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@vger.kernel.org
>> 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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] iio:measurement specialties core: Fix endian sparse warnings.
2015-10-12 9:36 ` ludovic.tancerel
@ 2015-10-12 16:12 ` Jonathan Cameron
2015-10-12 17:23 ` Jonathan Cameron
0 siblings, 1 reply; 7+ messages in thread
From: Jonathan Cameron @ 2015-10-12 16:12 UTC (permalink / raw)
To: ludovic.tancerel@maplehightech.com, Jonathan Cameron
Cc: linux-iio, kbuild-all, fengguang.wu
On 12 October 2015 10:36:06 BST, "ludovic.tancerel@maplehightech.com" <ludovic.tancerel@maplehightech.com> wrote:
>Hello Jonathan,
>
>I was able to test the patch, and checked items impacted with your
>change.
>>From my prospective it is ok to apply.
>
>Regards,
>Ludovic
Thanks
A formal Acked-by always appreciated with patches like this one...
J
>
>
>> Le 11 oct. 2015 à 15:29, Jonathan Cameron <jic23@kernel.org> a écrit
>:
>>
>> On 11/10/15 13:16, ludovic.tancerel@maplehightech.com 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@kernel.org> 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@intel.com>
>>>>> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
>>>>> ---
>>>>> 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@vger.kernel.org
>>> 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@vger.kernel.org
>> 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@vger.kernel.org
>More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] iio:measurement specialties core: Fix endian sparse warnings.
2015-10-12 16:12 ` Jonathan Cameron
@ 2015-10-12 17:23 ` Jonathan Cameron
0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2015-10-12 17:23 UTC (permalink / raw)
To: Jonathan Cameron, ludovic.tancerel@maplehightech.com
Cc: linux-iio, kbuild-all, fengguang.wu
On 12/10/15 17:12, Jonathan Cameron wrote:
>
>
> On 12 October 2015 10:36:06 BST, "ludovic.tancerel@maplehightech.com" <ludovic.tancerel@maplehightech.com> wrote:
>> Hello Jonathan,
>>
>> I was able to test the patch, and checked items impacted with your
>> change.
>>>From my prospective it is ok to apply.
>>
>> Regards,
>> Ludovic
> Thanks
>
> A formal Acked-by always appreciated with patches like this one...
Applied.
>
> J
>>
>>
>>> Le 11 oct. 2015 à 15:29, Jonathan Cameron <jic23@kernel.org> a écrit
>> :
>>>
>>> On 11/10/15 13:16, ludovic.tancerel@maplehightech.com 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@kernel.org> 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@intel.com>
>>>>>> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
>>>>>> ---
>>>>>> 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@vger.kernel.org
>>>> 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@vger.kernel.org
>>> 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@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2015-10-12 17:23 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-11 11:55 [PATCH] iio:measurement specialties core: Fix endian sparse warnings Jonathan Cameron
2015-10-11 11:57 ` Jonathan Cameron
2015-10-11 12:16 ` ludovic.tancerel
2015-10-11 13:29 ` Jonathan Cameron
2015-10-12 9:36 ` ludovic.tancerel
2015-10-12 16:12 ` Jonathan Cameron
2015-10-12 17:23 ` Jonathan Cameron
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).