diff mbox series

iio: chemical: sps30: Explicity truncate constant by masking

Message ID 20191013095515.1438147-1-jic23@kernel.org (mailing list archive)
State New, archived
Headers show
Series iio: chemical: sps30: Explicity truncate constant by masking | expand

Commit Message

Jonathan Cameron Oct. 13, 2019, 9:55 a.m. UTC
From: Jonathan Cameron <Jonathan.Cameron@huawei.com>

When breaking up a constant to write to two 8 bit registers
it isn't obvious to sparse that it was intentional.

CHECK   drivers/iio/chemical/sps30.c
drivers/iio/chemical/sps30.c:120:30: warning: cast truncates bits from constant value (8004 becomes 4)

So in the interests of minimising noisy warnings, let us add
a mask.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: Tomasz Duszynski <tduszyns@gmail.com>
---
 drivers/iio/chemical/sps30.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Tomasz Duszynski Oct. 17, 2019, 4:41 p.m. UTC | #1
On Sun, Oct 13, 2019 at 10:55:15AM +0100, jic23@kernel.org wrote:
> From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
>
> When breaking up a constant to write to two 8 bit registers
> it isn't obvious to sparse that it was intentional.
>
> CHECK   drivers/iio/chemical/sps30.c
> drivers/iio/chemical/sps30.c:120:30: warning: cast truncates bits from constant value (8004 becomes 4)
>
> So in the interests of minimising noisy warnings, let us add
> a mask.
>
> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> Cc: Tomasz Duszynski <tduszyns@gmail.com>
> ---
>  drivers/iio/chemical/sps30.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iio/chemical/sps30.c b/drivers/iio/chemical/sps30.c
> index edbb956e81e8..acb9f8ecbb3d 100644
> --- a/drivers/iio/chemical/sps30.c
> +++ b/drivers/iio/chemical/sps30.c
> @@ -117,7 +117,7 @@ static int sps30_do_cmd(struct sps30_state *state, u16 cmd, u8 *data, int size)
>  		break;
>  	case SPS30_READ_AUTO_CLEANING_PERIOD:
>  		buf[0] = SPS30_AUTO_CLEANING_PERIOD >> 8;
> -		buf[1] = (u8)SPS30_AUTO_CLEANING_PERIOD;
> +		buf[1] = (u8)(SPS30_AUTO_CLEANING_PERIOD & 0xff);
>  		/* fall through */
>  	case SPS30_READ_DATA_READY_FLAG:
>  	case SPS30_READ_DATA:
> --
> 2.23.0
>

Thanks for catching this.
Acked-by: Tomasz Duszynski <tduszyns@gmail.com>
Jonathan Cameron Oct. 18, 2019, 6:52 p.m. UTC | #2
On Thu, 17 Oct 2019 18:41:12 +0200
Tomasz Duszynski <tduszyns@gmail.com> wrote:

> On Sun, Oct 13, 2019 at 10:55:15AM +0100, jic23@kernel.org wrote:
> > From: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> >
> > When breaking up a constant to write to two 8 bit registers
> > it isn't obvious to sparse that it was intentional.
> >
> > CHECK   drivers/iio/chemical/sps30.c
> > drivers/iio/chemical/sps30.c:120:30: warning: cast truncates bits from constant value (8004 becomes 4)
> >
> > So in the interests of minimising noisy warnings, let us add
> > a mask.
> >
> > Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > Cc: Tomasz Duszynski <tduszyns@gmail.com>
> > ---
> >  drivers/iio/chemical/sps30.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/iio/chemical/sps30.c b/drivers/iio/chemical/sps30.c
> > index edbb956e81e8..acb9f8ecbb3d 100644
> > --- a/drivers/iio/chemical/sps30.c
> > +++ b/drivers/iio/chemical/sps30.c
> > @@ -117,7 +117,7 @@ static int sps30_do_cmd(struct sps30_state *state, u16 cmd, u8 *data, int size)
> >  		break;
> >  	case SPS30_READ_AUTO_CLEANING_PERIOD:
> >  		buf[0] = SPS30_AUTO_CLEANING_PERIOD >> 8;
> > -		buf[1] = (u8)SPS30_AUTO_CLEANING_PERIOD;
> > +		buf[1] = (u8)(SPS30_AUTO_CLEANING_PERIOD & 0xff);
> >  		/* fall through */
> >  	case SPS30_READ_DATA_READY_FLAG:
> >  	case SPS30_READ_DATA:
> > --
> > 2.23.0
> >  
> 
> Thanks for catching this.
> Acked-by: Tomasz Duszynski <tduszyns@gmail.com>

Applied. Thanks,

Jonathan
diff mbox series

Patch

diff --git a/drivers/iio/chemical/sps30.c b/drivers/iio/chemical/sps30.c
index edbb956e81e8..acb9f8ecbb3d 100644
--- a/drivers/iio/chemical/sps30.c
+++ b/drivers/iio/chemical/sps30.c
@@ -117,7 +117,7 @@  static int sps30_do_cmd(struct sps30_state *state, u16 cmd, u8 *data, int size)
 		break;
 	case SPS30_READ_AUTO_CLEANING_PERIOD:
 		buf[0] = SPS30_AUTO_CLEANING_PERIOD >> 8;
-		buf[1] = (u8)SPS30_AUTO_CLEANING_PERIOD;
+		buf[1] = (u8)(SPS30_AUTO_CLEANING_PERIOD & 0xff);
 		/* fall through */
 	case SPS30_READ_DATA_READY_FLAG:
 	case SPS30_READ_DATA: