Message ID | 20190916204158.6889-14-efremov@linux.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | [RESEND,v3,01/26] PCI: Add define for the number of standard PCI BARs | expand |
On Mon, Sep 16, 2019 at 11:41:45PM +0300, Denis Efremov wrote: > To iterate through all possible BARs, loop conditions refactored to the > *number* of BARs "i < PCI_STD_NUM_BARS", instead of the index of the last > valid BAR "i <= BAR_5". This is more idiomatic C style and allows to avoid > the fencepost error. > > Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com> > Cc: "David S. Miller" <davem@davemloft.net> > Signed-off-by: Denis Efremov <efremov@linux.com> > --- > drivers/net/ethernet/intel/e1000/e1000.h | 1 - > drivers/net/ethernet/intel/e1000/e1000_main.c | 2 +- > 2 files changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/intel/e1000/e1000.h b/drivers/net/ethernet/intel/e1000/e1000.h > index c40729b2c184..7fad2f24dcad 100644 > --- a/drivers/net/ethernet/intel/e1000/e1000.h > +++ b/drivers/net/ethernet/intel/e1000/e1000.h > @@ -45,7 +45,6 @@ > > #define BAR_0 0 > #define BAR_1 1 > -#define BAR_5 5 No issue with this patch. However I noticed that at least 5 of the network drivers have these same definitions, which are identical to the pci_barno enum of include/linux/pci-epf.h. There are mostly used with pci_ioremap_bar and pci_resource_** macros. I wonder if this is an indicator that these defintions should live in the core. Thanks, Andrew Murray > > #define INTEL_E1000_ETHERNET_DEVICE(device_id) {\ > PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)} > diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c > index f703fa58458e..db4fd82036af 100644 > --- a/drivers/net/ethernet/intel/e1000/e1000_main.c > +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c > @@ -977,7 +977,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) > goto err_ioremap; > > if (adapter->need_ioport) { > - for (i = BAR_1; i <= BAR_5; i++) { > + for (i = BAR_1; i < PCI_STD_NUM_BARS; i++) { > if (pci_resource_len(pdev, i) == 0) > continue; > if (pci_resource_flags(pdev, i) & IORESOURCE_IO) { > -- > 2.21.0 >
diff --git a/drivers/net/ethernet/intel/e1000/e1000.h b/drivers/net/ethernet/intel/e1000/e1000.h index c40729b2c184..7fad2f24dcad 100644 --- a/drivers/net/ethernet/intel/e1000/e1000.h +++ b/drivers/net/ethernet/intel/e1000/e1000.h @@ -45,7 +45,6 @@ #define BAR_0 0 #define BAR_1 1 -#define BAR_5 5 #define INTEL_E1000_ETHERNET_DEVICE(device_id) {\ PCI_DEVICE(PCI_VENDOR_ID_INTEL, device_id)} diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index f703fa58458e..db4fd82036af 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -977,7 +977,7 @@ static int e1000_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto err_ioremap; if (adapter->need_ioport) { - for (i = BAR_1; i <= BAR_5; i++) { + for (i = BAR_1; i < PCI_STD_NUM_BARS; i++) { if (pci_resource_len(pdev, i) == 0) continue; if (pci_resource_flags(pdev, i) & IORESOURCE_IO) {
To iterate through all possible BARs, loop conditions refactored to the *number* of BARs "i < PCI_STD_NUM_BARS", instead of the index of the last valid BAR "i <= BAR_5". This is more idiomatic C style and allows to avoid the fencepost error. Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Denis Efremov <efremov@linux.com> --- drivers/net/ethernet/intel/e1000/e1000.h | 1 - drivers/net/ethernet/intel/e1000/e1000_main.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-)