diff mbox

arm64: KVM: Add braces to multi-line if statement in virtual PMU code

Message ID 1459509142-13524-1-git-send-email-will.deacon@arm.com
State New
Headers show

Commit Message

Will Deacon April 1, 2016, 11:12 a.m. UTC
The kernel is written in C, not python, so we need braces around
multi-line if statements. GCC 6 actually warns about this, thanks to the
fantastic new "-Wmisleading-indentation" flag:

 | virt/kvm/arm/pmu.c: In function ‘kvm_pmu_overflow_status’:
 | virt/kvm/arm/pmu.c:198:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
 |    reg &= vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
 |    ^~~
 | arch/arm64/kvm/../../../virt/kvm/arm/pmu.c:196:2: note: ...this ‘if’ clause, but it is not
 |   if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
 |   ^~

As it turns out, this particular case is harmless (we just do some &=
operations with 0), but worth fixing nonetheless.

Signed-off-by: Will Deacon <will.deacon@arm.com>
---
 virt/kvm/arm/pmu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Christoffer Dall April 1, 2016, 11:30 a.m. UTC | #1
On Fri, Apr 01, 2016 at 12:12:22PM +0100, Will Deacon wrote:
> The kernel is written in C, not python, so we need braces around
> multi-line if statements. GCC 6 actually warns about this, thanks to the
> fantastic new "-Wmisleading-indentation" flag:

We should rewrite the kernel in python!

> 
>  | virt/kvm/arm/pmu.c: In function ‘kvm_pmu_overflow_status’:
>  | virt/kvm/arm/pmu.c:198:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
>  |    reg &= vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
>  |    ^~~
>  | arch/arm64/kvm/../../../virt/kvm/arm/pmu.c:196:2: note: ...this ‘if’ clause, but it is not
>  |   if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
>  |   ^~
> 
> As it turns out, this particular case is harmless (we just do some &=
> operations with 0), but worth fixing nonetheless.
> 
> Signed-off-by: Will Deacon <will.deacon@arm.com>

Thanks for the patch.

-Christoffer

> ---
>  virt/kvm/arm/pmu.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/virt/kvm/arm/pmu.c b/virt/kvm/arm/pmu.c
> index b5754c6c5508..575c7aa30d7e 100644
> --- a/virt/kvm/arm/pmu.c
> +++ b/virt/kvm/arm/pmu.c
> @@ -193,11 +193,12 @@ static u64 kvm_pmu_overflow_status(struct kvm_vcpu *vcpu)
>  {
>  	u64 reg = 0;
>  
> -	if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
> +	if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E)) {
>  		reg = vcpu_sys_reg(vcpu, PMOVSSET_EL0);
>  		reg &= vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
>  		reg &= vcpu_sys_reg(vcpu, PMINTENSET_EL1);
>  		reg &= kvm_pmu_valid_counter_mask(vcpu);
> +	}
>  
>  	return reg;
>  }
> -- 
> 2.1.4
>
Will Deacon April 1, 2016, 11:36 a.m. UTC | #2
On Fri, Apr 01, 2016 at 01:30:40PM +0200, Christoffer Dall wrote:
> On Fri, Apr 01, 2016 at 12:12:22PM +0100, Will Deacon wrote:
> > The kernel is written in C, not python, so we need braces around
> > multi-line if statements. GCC 6 actually warns about this, thanks to the
> > fantastic new "-Wmisleading-indentation" flag:
> 
> We should rewrite the kernel in python!

Oh man, you made me look and I found this:

https://mail.python.org/pipermail/python-list/2004-October/283327.html

but, today's certainly the day for whacky suggestions.

> >  | virt/kvm/arm/pmu.c: In function ‘kvm_pmu_overflow_status’:
> >  | virt/kvm/arm/pmu.c:198:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
> >  |    reg &= vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
> >  |    ^~~
> >  | arch/arm64/kvm/../../../virt/kvm/arm/pmu.c:196:2: note: ...this ‘if’ clause, but it is not
> >  |   if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
> >  |   ^~
> > 
> > As it turns out, this particular case is harmless (we just do some &=
> > operations with 0), but worth fixing nonetheless.
> > 
> > Signed-off-by: Will Deacon <will.deacon@arm.com>
> 
> Thanks for the patch.

No problem. I timed it nicely with your pull request.

Will
Christoffer Dall April 1, 2016, 12:10 p.m. UTC | #3
On Fri, Apr 01, 2016 at 12:36:25PM +0100, Will Deacon wrote:
> On Fri, Apr 01, 2016 at 01:30:40PM +0200, Christoffer Dall wrote:
> > On Fri, Apr 01, 2016 at 12:12:22PM +0100, Will Deacon wrote:
> > > The kernel is written in C, not python, so we need braces around
> > > multi-line if statements. GCC 6 actually warns about this, thanks to the
> > > fantastic new "-Wmisleading-indentation" flag:
> > 
> > We should rewrite the kernel in python!
> 
> Oh man, you made me look and I found this:
> 
> https://mail.python.org/pipermail/python-list/2004-October/283327.html

Haha, the reply saying "Great idea, go for it!" is hilarious.

> 
> but, today's certainly the day for whacky suggestions.
> 

I wanted to have sent you and Catalin my Linux in EL2 patch set today,
but it was still too messy and hacked up for that to be funny,
unfortunately.

> > >  | virt/kvm/arm/pmu.c: In function ‘kvm_pmu_overflow_status’:
> > >  | virt/kvm/arm/pmu.c:198:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
> > >  |    reg &= vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
> > >  |    ^~~
> > >  | arch/arm64/kvm/../../../virt/kvm/arm/pmu.c:196:2: note: ...this ‘if’ clause, but it is not
> > >  |   if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
> > >  |   ^~
> > > 
> > > As it turns out, this particular case is harmless (we just do some &=
> > > operations with 0), but worth fixing nonetheless.
> > > 
> > > Signed-off-by: Will Deacon <will.deacon@arm.com>
> > 
> > Thanks for the patch.
> 
> No problem. I timed it nicely with your pull request.
> 
Yeah, I figure I will just add it to the next pull request, unless
anyone objects to that.

-Christoffer
Shannon Zhao April 1, 2016, 2:23 p.m. UTC | #4
On 2016年04月01日 19:12, Will Deacon wrote:
> The kernel is written in C, not python, so we need braces around
> multi-line if statements. GCC 6 actually warns about this, thanks to the
> fantastic new "-Wmisleading-indentation" flag:
> 
>  | virt/kvm/arm/pmu.c: In function ‘kvm_pmu_overflow_status’:
>  | virt/kvm/arm/pmu.c:198:3: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation]
>  |    reg &= vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
>  |    ^~~
>  | arch/arm64/kvm/../../../virt/kvm/arm/pmu.c:196:2: note: ...this ‘if’ clause, but it is not
>  |   if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
>  |   ^~
> 
> As it turns out, this particular case is harmless (we just do some &=
> operations with 0), but worth fixing nonetheless.
> 
Ah, thanks! I might be fooled at that moment. :)

Reviewed-by: Shannon Zhao <shannon.zhao@linaro.org>

> Signed-off-by: Will Deacon <will.deacon@arm.com>
> ---
>  virt/kvm/arm/pmu.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/virt/kvm/arm/pmu.c b/virt/kvm/arm/pmu.c
> index b5754c6c5508..575c7aa30d7e 100644
> --- a/virt/kvm/arm/pmu.c
> +++ b/virt/kvm/arm/pmu.c
> @@ -193,11 +193,12 @@ static u64 kvm_pmu_overflow_status(struct kvm_vcpu *vcpu)
>  {
>  	u64 reg = 0;
>  
> -	if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
> +	if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E)) {
>  		reg = vcpu_sys_reg(vcpu, PMOVSSET_EL0);
>  		reg &= vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
>  		reg &= vcpu_sys_reg(vcpu, PMINTENSET_EL1);
>  		reg &= kvm_pmu_valid_counter_mask(vcpu);
> +	}
>  
>  	return reg;
>  }
>
diff mbox

Patch

diff --git a/virt/kvm/arm/pmu.c b/virt/kvm/arm/pmu.c
index b5754c6c5508..575c7aa30d7e 100644
--- a/virt/kvm/arm/pmu.c
+++ b/virt/kvm/arm/pmu.c
@@ -193,11 +193,12 @@  static u64 kvm_pmu_overflow_status(struct kvm_vcpu *vcpu)
 {
 	u64 reg = 0;
 
-	if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E))
+	if ((vcpu_sys_reg(vcpu, PMCR_EL0) & ARMV8_PMU_PMCR_E)) {
 		reg = vcpu_sys_reg(vcpu, PMOVSSET_EL0);
 		reg &= vcpu_sys_reg(vcpu, PMCNTENSET_EL0);
 		reg &= vcpu_sys_reg(vcpu, PMINTENSET_EL1);
 		reg &= kvm_pmu_valid_counter_mask(vcpu);
+	}
 
 	return reg;
 }