drivers: CCI: Correct use of ! and &
PATCH 1/1 drivers: CCI: Correct use of ! and &
From: Himangi Saraogi <[email protected]>
In commit ae91d60ba88ef0bdb1b5e9b2363bd52fc45d2af7, a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way.
The Coccinelle semantic patch that makes this change is as follows:
// <smpl>
@@ expression E1,E2; @@
(
!E1 & !E2
|
- !E1 & E2
+ !(E1 & E2)
)
// </smpl>
--- drivers/bus/arm-cci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/bus/arm-cci.c +2 -1
@@ -397,7 +397,8 @@ static irqreturn_t pmu_handle_irq(int irq_num, void *dev) hw_counter = &event->hw;/* Did this counter overflow? */ -if (!pmu_read_register (idx,CCI_PMU_OVRFLW ) &CCI_PMU_OVRFLW_FLAG ) +if (!(pmu_read_register (idx,CCI_PMU_OVRFLW ) & +CCI_PMU_OVRFLW_FLAG ))continue ;pmu_write_register (CCI_PMU_OVRFLW_FLAG , idx,CCI_PMU_OVRFLW );
Signature · 1 line
1.7.10.4
Olof Johansson
AppliedPATCH 1/1 drivers: CCI: Correct use of ! and &
Quoted 18 lines · Punit Agrawal
From: Himangi Saraogi <[email protected]>
In commit
ae91d60ba88ef0bdb1b5e9b2363bd52fc45d2af7, a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way.The Coccinelle semantic patch that makes this change is as follows:
// <smpl>
@@ expression E1,E2; @@
(
!E1 & !E2
|
- !E1 & E2
+ !(E1 & E2)
)
// </smpl>
Quoted 5 lines
Cc stable at vger.kernel.orgSigned-off-by Himangi Saraogi <[email protected]>Acked-by Julia Lawall <[email protected]>Acked-by Punit Agrawal <[email protected]>---
Thanks, applied (adding a Fixes: tag, please use those in the future)
-Olof
PATCH 1/1 drivers: CCI: Correct use of ! and &
Hi,
Quoted 19 lines · Olof Johansson
Quoted 18 lines · Punit Agrawal
From: Himangi Saraogi <[email protected]>
In commit
ae91d60ba88ef0bdb1b5e9b2363bd52fc45d2af7, a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way.The Coccinelle semantic patch that makes this change is as follows:
// <smpl>
@@ expression E1,E2; @@
(
!E1 & !E2
|
- !E1 & E2
+ !(E1 & E2)
)
// </smpl>
Quoted 7 lines
Quoted 5 lines
Cc stable at vger.kernel.orgSigned-off-by Himangi Saraogi <[email protected]>Acked-by Julia Lawall <[email protected]>Acked-by Punit Agrawal <[email protected]>---
Thanks, applied (adding a Fixes: tag, please use those in the future)
On second look, I see that the code doesn't actually change behavior (since the mask is done with 0x1, it happens to have the same result). Pure luck before. :)
Because of this, I've moved this to our next/fixes-non-critical branch, which will be sent up during the 3.17 merge window, and I took off the stable cc. It's still a good fix, but since it doesn't actually fix broken behavior there's no need to rush it.
-Olof
PATCH 1/1 drivers: CCI: Correct use of ! and &
Hi Olof,
Quoted 29 lines · Olof Johansson
Hi,
Quoted 26 lines · Olof Johansson
Quoted 18 lines · Punit Agrawal
From: Himangi Saraogi <[email protected]>
In commit
ae91d60ba88ef0bdb1b5e9b2363bd52fc45d2af7, a bug was fixed that involved converting !x & y to !(x & y). The code below shows the same pattern, and thus should perhaps be fixed in the same way.The Coccinelle semantic patch that makes this change is as follows:
// <smpl>
@@ expression E1,E2; @@
(
!E1 & !E2
|
- !E1 & E2
+ !(E1 & E2)
)
// </smpl>Quoted 5 lines
Cc stable at vger.kernel.orgSigned-off-by Himangi Saraogi <[email protected]>Acked-by Julia Lawall <[email protected]>Acked-by Punit Agrawal <[email protected]>---
Thanks, applied (adding a Fixes: tag, please use those in the future)
Will do.
Quoted 4 lines
On second look, I see that the code doesn't actually change behavior (since the mask is done with
0x1, it happens to have the same result). Pure luck before. :)
Although I'd tested the original submission and had seen interrupts handled correctly, this fix made me question if I was mis-remembering (since this was about a year ago).
I had convinced myself that the fix was required. Re-evaluating all the conditions after reading your response, I agree that it is not a change in behaviour but still a correct fix.
Quoted 5 lines
Because of this, I've moved this to our next/fixes-non-critical branch, which will be sent up during the 3.17 merge window, and I took off the stable cc. It's still a good fix, but since it doesn't actually fix broken behavior there's no need to rush it.
Ack. Thanks a lot.
Quoted 8 lines
-Olof
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel