> +#ifdef CONFIG_PCIEAER
 > +#include <linux/aer.h>
 > +#endif

I don't think this ifdef is needed... <linux/aer.h> looks fine to
include even if PCIEAER isn't set.

 > +#ifndef PCI_MSIX_FLAGS
 > +#define PCI_MSIX_FLAGS 2
 > +#endif
 > +#ifndef PCI_MSIX_FLAGS_ENABLE
 > +#define  PCI_MSIX_FLAGS_ENABLE  (1 << 15)
 > +#endif
 > +#ifndef PCI_MSIX_FLAGS_QSIZE
 > +#define PCI_MSIX_FLAGS_QSIZE 0x7FF
 > +#endif

None of this is needed ... all these constants are defined, right?

 > +#ifdef CONFIG_PCIEAER
 > +    /* enable basic AER reporting.  Perhaps more later */
 > +    if (pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_ERR)) {
 > +            ret = pci_enable_pcie_error_reporting(pdev);
 > +            if (ret)
 > +                    qib_early_err(&pdev->dev,
 > +                                  "Unable to enable pcie error reporting"
 > +                                  ": %d\n", ret);
 > +    } else
 > +            qib_dbg("AER capability not found! AER reports not enabled\n");
 > +#endif

ifdef here isn't needed either, I don't think.  And neither is the test
for the capability... just call pci_enable_pcie_error_reporting always
and it will return an error if the config option isn't set or the cap
isn't found.

 > +#ifdef CONFIG_PCI_MSI

again, ifdef not needed, right?

 > +static void qib_msix_setup(struct qib_devdata *dd, int pos, u32 *msixcnt,
 > +                       struct msix_entry *msix_entry)
 > +{
 > +    int ret;
 > +    u32 tabsize = 0;
 > +    u16 msix_flags;
 > +
 > +    pci_read_config_word(dd->pcidev, pos + PCI_MSIX_FLAGS, &msix_flags);
 > +    tabsize = 1 + (msix_flags & PCI_MSIX_FLAGS_QSIZE);
 > +    if (tabsize > *msixcnt)
 > +            tabsize = *msixcnt;
 > +    ret = pci_enable_msix(dd->pcidev, msix_entry, tabsize);

all the monkeying with config space seems dubious... fallback should
handle the table size, and I don't think drivers should be peeking and
poking in config space anyway.  Fix the PCI core if some generic
function is missing...

 > +/**
 > + * We save the msi lo and hi values, so we can restore them after
 > + * chip reset (the kernel PCI infrastructure doesn't yet handle that
 > + * correctly.
 > + */

again... if the core doesn't do something right, fix it rather than
hacking around it in a driver.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to