2012-08-26 16:15:59

by Julia Lawall

[permalink] [raw]
Subject: [PATCH] drivers/media/dvb-frontends/rtl2830.c: correct double assignment

From: Julia Lawall <[email protected]>

The double assignment is meant to be a bit-or to combine two values.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression i;
@@

*i = ...;
i = ...;
// </smpl>

Signed-off-by: Julia Lawall <[email protected]>

---
drivers/media/dvb-frontends/rtl2830.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/dvb-frontends/rtl2830.c b/drivers/media/dvb-frontends/rtl2830.c
index 8fa8b08..b6ab858 100644
--- a/drivers/media/dvb-frontends/rtl2830.c
+++ b/drivers/media/dvb-frontends/rtl2830.c
@@ -254,7 +254,7 @@ static int rtl2830_init(struct dvb_frontend *fe)
goto err;

buf[0] = tmp << 6;
- buf[0] = (if_ctl >> 16) & 0x3f;
+ buf[0] |= (if_ctl >> 16) & 0x3f;
buf[1] = (if_ctl >> 8) & 0xff;
buf[2] = (if_ctl >> 0) & 0xff;


2012-08-26 16:22:13

by Antti Palosaari

[permalink] [raw]
Subject: Re: [PATCH] drivers/media/dvb-frontends/rtl2830.c: correct double assignment

On 08/26/2012 07:15 PM, Julia Lawall wrote:
> From: Julia Lawall <[email protected]>
>
> The double assignment is meant to be a bit-or to combine two values.
>
> A simplified version of the semantic match that finds this problem is as
> follows: (http://coccinelle.lip6.fr/)
>
> // <smpl>
> @@
> expression i;
> @@
>
> *i = ...;
> i = ...;
> // </smpl>
>
> Signed-off-by: Julia Lawall <[email protected]>
>
> ---
> drivers/media/dvb-frontends/rtl2830.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/media/dvb-frontends/rtl2830.c b/drivers/media/dvb-frontends/rtl2830.c
> index 8fa8b08..b6ab858 100644
> --- a/drivers/media/dvb-frontends/rtl2830.c
> +++ b/drivers/media/dvb-frontends/rtl2830.c
> @@ -254,7 +254,7 @@ static int rtl2830_init(struct dvb_frontend *fe)
> goto err;
>
> buf[0] = tmp << 6;
> - buf[0] = (if_ctl >> 16) & 0x3f;
> + buf[0] |= (if_ctl >> 16) & 0x3f;
> buf[1] = (if_ctl >> 8) & 0xff;
> buf[2] = (if_ctl >> 0) & 0xff;
>
>
Thank you!

Acked-by: Antti Palosaari <[email protected]>
Reviewed-by: Antti Palosaari <[email protected]>


Antti
--
http://palosaari.fi/