OSDN Git Service

PCI: Parenthesize PCI_DEVID and PCI_VPD_LRDT_ID parameters
authorMegan Kamiya <megan.a.kamiya@intel.com>
Sat, 6 Sep 2014 03:19:10 +0000 (20:19 -0700)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 16 Sep 2014 23:09:09 +0000 (17:09 -0600)
Add parentheses around parameters in PCI_DEVID and PCI_VPD_LRDT_ID macros
to prevent possible expansion errors as described by the CERT Secure Coding
Standard: PRE01-C: Use parentheses within macros around parameter names

Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Megan Kamiya <megan.a.kamiya@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
include/linux/pci.h

index 61978a4..cb744f3 100644 (file)
@@ -45,7 +45,7 @@
  * In the interest of not exposing interfaces to user-space unnecessarily,
  * the following kernel-only defines are being added here.
  */
-#define PCI_DEVID(bus, devfn)  ((((u16)bus) << 8) | devfn)
+#define PCI_DEVID(bus, devfn)  ((((u16)(bus)) << 8) | (devfn))
 /* return bus from PCI devid = ((u16)bus_number) << 8) | devfn */
 #define PCI_BUS_NUM(x) (((x) >> 8) & 0xff)
 
@@ -1701,7 +1701,7 @@ bool pci_acs_path_enabled(struct pci_dev *start,
                          struct pci_dev *end, u16 acs_flags);
 
 #define PCI_VPD_LRDT                   0x80    /* Large Resource Data Type */
-#define PCI_VPD_LRDT_ID(x)             (x | PCI_VPD_LRDT)
+#define PCI_VPD_LRDT_ID(x)             ((x) | PCI_VPD_LRDT)
 
 /* Large Resource Data Type Tag Item Names */
 #define PCI_VPD_LTIN_ID_STRING         0x02    /* Identifier String */