powerpc/fsl-pci: Correct use of ! and &
authorHimangi Saraogi <himangi774@gmail.com>
Sat, 19 Jul 2014 21:49:59 +0000 (03:19 +0530)
committerScott Wood <scottwood@freescale.com>
Wed, 30 Jul 2014 00:26:31 +0000 (19:26 -0500)
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.

This is not tested and clearly changes the semantics, so it is only
something to consider.

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>
Signed-off-by: Scott Wood <scottwood@freescale.com>
arch/powerpc/sysdev/fsl_pci.c

index 4bd091a05583b7eeed07c22c2375be83cbcf34a9..c5077673bd9433633be839cc58c02bfc6137d29c 100644 (file)
@@ -853,8 +853,8 @@ u64 fsl_pci_immrbar_base(struct pci_controller *hose)
                in = pcie->cfg_type0 + PEX_RC_INWIN_BASE;
                for (i = 0; i < 4; i++) {
                        /* not enabled, skip */
-                       if (!in_le32(&in[i].ar) & PEX_RCIWARn_EN)
-                                continue;
+                       if (!(in_le32(&in[i].ar) & PEX_RCIWARn_EN))
+                               continue;
 
                        if (get_immrbase() == in_le32(&in[i].tar))
                                return (u64)in_le32(&in[i].barh) << 32 |