drivers: CCI: Correct use of ! and &
authorHimangi Saraogi <himangi774@gmail.com>
Wed, 30 Jul 2014 10:37:35 +0000 (11:37 +0100)
committerOlof Johansson <olof@lixom.net>
Thu, 31 Jul 2014 05:58:54 +0000 (22:58 -0700)
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>

Signed-off-by: Himangi Saraogi <himangi774@gmail.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Acked-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
drivers/bus/arm-cci.c

index 5a86da9..7af78df 100644 (file)
@@ -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);