Re: [patch] x86/pmc_atom: silence shift wrapping warnings in pmc_sleep_tmr_show()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2014/8/2 0:42, Kasagar, Srinidhi wrote:
> On Fri, Aug 01, 2014 at 11:27:15AM +0300, Dan Carpenter wrote:
>> I don't know if we really need 64 bits here but these variables are
>> declared as u64 and it can't hurt to cast this so we prevent any shift
>> wrapping.
> 
> Hmm..not sure the usage of u64 for these registers. AFAIK these registers
> are 32-bit wide..

I didn't declare the registers, I declared the variables in microsecond.

> 
> Aubrey, any reason declaring them as u64?

These registers are the time spent in units of 32us. So yes, we need
64bits here for the conversion.

> 
> Srinidhi
> 
>>
>> Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>

The patch looks good to me.

Acked-by: Aubrey Li <aubrey.li@xxxxxxxxxxxxxxx>

>>
>> diff --git a/arch/x86/kernel/pmc_atom.c b/arch/x86/kernel/pmc_atom.c
>> index 0d92ef6..0c424a6 100644
>> --- a/arch/x86/kernel/pmc_atom.c
>> +++ b/arch/x86/kernel/pmc_atom.c
>> @@ -174,11 +174,11 @@ static int pmc_sleep_tmr_show(struct seq_file *s, void *unused)
>>  	struct pmc_dev *pmc = s->private;
>>  	u64 s0ir_tmr, s0i1_tmr, s0i2_tmr, s0i3_tmr, s0_tmr;
>>  
>> -	s0ir_tmr = pmc_reg_read(pmc, PMC_S0IR_TMR) << PMC_TMR_SHIFT;
>> -	s0i1_tmr = pmc_reg_read(pmc, PMC_S0I1_TMR) << PMC_TMR_SHIFT;
>> -	s0i2_tmr = pmc_reg_read(pmc, PMC_S0I2_TMR) << PMC_TMR_SHIFT;
>> -	s0i3_tmr = pmc_reg_read(pmc, PMC_S0I3_TMR) << PMC_TMR_SHIFT;
>> -	s0_tmr = pmc_reg_read(pmc, PMC_S0_TMR) << PMC_TMR_SHIFT;
>> +	s0ir_tmr = (u64)pmc_reg_read(pmc, PMC_S0IR_TMR) << PMC_TMR_SHIFT;
>> +	s0i1_tmr = (u64)pmc_reg_read(pmc, PMC_S0I1_TMR) << PMC_TMR_SHIFT;
>> +	s0i2_tmr = (u64)pmc_reg_read(pmc, PMC_S0I2_TMR) << PMC_TMR_SHIFT;
>> +	s0i3_tmr = (u64)pmc_reg_read(pmc, PMC_S0I3_TMR) << PMC_TMR_SHIFT;
>> +	s0_tmr = (u64)pmc_reg_read(pmc, PMC_S0_TMR) << PMC_TMR_SHIFT;
>>  
>>  	seq_printf(s, "S0IR Residency:\t%lldus\n", s0ir_tmr);
>>  	seq_printf(s, "S0I1 Residency:\t%lldus\n", s0i1_tmr);
> 

--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux