diff mbox series

[next] drivers: thermal: processor_thermal_device: fix missing bitwise-or operator

Message ID 20190729102930.2956-1-colin.king@canonical.com (mailing list archive)
State Superseded, archived
Headers show
Series [next] drivers: thermal: processor_thermal_device: fix missing bitwise-or operator | expand

Commit Message

Colin King July 29, 2019, 10:29 a.m. UTC
From: Colin Ian King <colin.king@canonical.com>

The variable val is having the top 8 bits cleared and then the variable
is being re-assinged and setting just the top 8 bits.  I believe the
intention was bitwise-or in the top 8 bits.  Fix this by replacing
the = operator with |= instead.

Addresses-Coverity: ("Unused value")
Fixes: b0c74b08517e ("drivers: thermal: processor_thermal_device: Export sysfs inteface for TCC offset")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 .../thermal/intel/int340x_thermal/processor_thermal_device.c    | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Walter Harms July 29, 2019, 11:24 a.m. UTC | #1
Am 29.07.2019 12:29, schrieb Colin King:
> From: Colin Ian King <colin.king@canonical.com>
> 
> The variable val is having the top 8 bits cleared and then the variable
> is being re-assinged and setting just the top 8 bits.  I believe the
> intention was bitwise-or in the top 8 bits.  Fix this by replacing
> the = operator with |= instead.
> 
> Addresses-Coverity: ("Unused value")
> Fixes: b0c74b08517e ("drivers: thermal: processor_thermal_device: Export sysfs inteface for TCC offset")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  .../thermal/intel/int340x_thermal/processor_thermal_device.c    | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
> index 6f6ac6a8e82d..cb22317911ef 100644
> --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
> +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
> @@ -164,7 +164,7 @@ static int tcc_offset_update(int tcc)
>  		return err;
>  
>  	val = ~GENMASK_ULL(31, 24);
> -	val = (tcc & 0xff) << 24;
> +	val |= (tcc & 0xff) << 24;
>  

I do not think that GENMASK makes sence here.

re,
 wh

>  	err = wrmsrl_safe(MSR_IA32_TEMPERATURE_TARGET, val);
>  	if (err)
Colin King July 29, 2019, 11:29 a.m. UTC | #2
On 29/07/2019 12:24, walter harms wrote:
> 
> 
> Am 29.07.2019 12:29, schrieb Colin King:
>> From: Colin Ian King <colin.king@canonical.com>
>>
>> The variable val is having the top 8 bits cleared and then the variable
>> is being re-assinged and setting just the top 8 bits.  I believe the
>> intention was bitwise-or in the top 8 bits.  Fix this by replacing
>> the = operator with |= instead.
>>
>> Addresses-Coverity: ("Unused value")
>> Fixes: b0c74b08517e ("drivers: thermal: processor_thermal_device: Export sysfs inteface for TCC offset")
>> Signed-off-by: Colin Ian King <colin.king@canonical.com>
>> ---
>>  .../thermal/intel/int340x_thermal/processor_thermal_device.c    | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
>> index 6f6ac6a8e82d..cb22317911ef 100644
>> --- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
>> +++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
>> @@ -164,7 +164,7 @@ static int tcc_offset_update(int tcc)
>>  		return err;
>>  
>>  	val = ~GENMASK_ULL(31, 24);
>> -	val = (tcc & 0xff) << 24;
>> +	val |= (tcc & 0xff) << 24;
>>  
> 
> I do not think that GENMASK makes sence here.

Yeah, val &= ~GENMASK_ULL(31, 24)

I'll send a V2


> 
> re,
>  wh
> 
>>  	err = wrmsrl_safe(MSR_IA32_TEMPERATURE_TARGET, val);
>>  	if (err)
srinivas pandruvada July 29, 2019, 11:50 a.m. UTC | #3
On Mon, 2019-07-29 at 12:29 +0100, Colin Ian King wrote:
> On 29/07/2019 12:24, walter harms wrote:
> > 
> > 
> > Am 29.07.2019 12:29, schrieb Colin King:
> > > From: Colin Ian King <colin.king@canonical.com>
> > > 
> > > The variable val is having the top 8 bits cleared and then the
> > > variable
> > > is being re-assinged and setting just the top 8 bits.  I believe
> > > the
> > > intention was bitwise-or in the top 8 bits.  Fix this by
> > > replacing
> > > the = operator with |= instead.
> > > 
> > > Addresses-Coverity: ("Unused value")
> > > Fixes: b0c74b08517e ("drivers: thermal: processor_thermal_device:
> > > Export sysfs inteface for TCC offset")
> > > Signed-off-by: Colin Ian King <colin.king@canonical.com>
> > > ---
> > >  .../thermal/intel/int340x_thermal/processor_thermal_device.c    
> > > | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git
> > > a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.
> > > c
> > > b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.
> > > c
> > > index 6f6ac6a8e82d..cb22317911ef 100644
> > > ---
> > > a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.
> > > c
> > > +++
> > > b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.
> > > c
> > > @@ -164,7 +164,7 @@ static int tcc_offset_update(int tcc)
> > >  		return err;
> > >  
> > >  	val = ~GENMASK_ULL(31, 24);
> > > -	val = (tcc & 0xff) << 24;
> > > +	val |= (tcc & 0xff) << 24;
> > >  
> > 
> > I do not think that GENMASK makes sence here.
> 
> Yeah, val &= ~GENMASK_ULL(31, 24)
> 
> I'll send a V2
> 
Thanks Colin for the fix.

-Srinivas
> 
> > 
> > re,
> >  wh
> > 
> > >  	err = wrmsrl_safe(MSR_IA32_TEMPERATURE_TARGET, val);
> > >  	if (err)
> 
>
diff mbox series

Patch

diff --git a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
index 6f6ac6a8e82d..cb22317911ef 100644
--- a/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
+++ b/drivers/thermal/intel/int340x_thermal/processor_thermal_device.c
@@ -164,7 +164,7 @@  static int tcc_offset_update(int tcc)
 		return err;
 
 	val = ~GENMASK_ULL(31, 24);
-	val = (tcc & 0xff) << 24;
+	val |= (tcc & 0xff) << 24;
 
 	err = wrmsrl_safe(MSR_IA32_TEMPERATURE_TARGET, val);
 	if (err)