* [PATCH 0/5] Introduce pci_(request|release)_(mem|io)_regions @ 2016-05-31 12:05 Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 1/5] PCI: Add helpers to request/release memory and I/O regions Johannes Thumshirn ` (4 more replies) 0 siblings, 5 replies; 14+ messages in thread From: Johannes Thumshirn @ 2016-05-31 12:05 UTC (permalink / raw) To: Bjorn Helgaas Cc: linux-pci, linux-kernel, Johannes Thumshirn, Christoph Hellwig, Keith Busch, Jens Axboe, linux-nvme, James Smart, Dick Kennedy, James E.J. Bottomley, Martin K. Petersen, linux-scsi, Frank Haverkamp, Greg Kroah-Hartman, Jay Cliburn, Chris Snook, Jeff Kirsher, David S. Miller, netdev, intel-wired-lan The first patch in this series introduces the following 4 helper functions to the PCI core: * pci_request_mem_regions() * pci_request_io_regions() * pci_release_mem_regions() * pci_release_io_regions() which encapsulate the request and release of a PCI device's memory or I/O bars. The subsequent patches convert the drivers, which use the pci_request_selected_regions(pdev, pci_select_bars(pdev, IORESOURCE_MEM), name); and similar pattern to use the new interface. This was suggested by Christoph Hellwig in http://lists.infradead.org/pipermail/linux-nvme/2016-May/004570.html and tested on kernel v4.6 with NVMe. The conversion of the drivers has been performed by the following coccinelle spatch: // IORESOURCE_MEM @@ expression err, pdev, name; @@ - err = pci_request_selected_regions(pdev, pci_select_bars(pdev, IORESOURCE_MEM), name); + err = pci_request_mem_regions(pdev, name); @@ expression pdev; @@ - pci_release_selected_regions(pdev, pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); @@ expression err, pdev, name; identifier bars; @@ - bars = pci_select_bars(pdev, IORESOURCE_MEM); ... - err = pci_request_selected_regions(pdev, bars, name); + err = pci_request_mem_regions(pdev, name); @@ expression pdev; identifier bars; @@ - bars = pci_select_bars(pdev, IORESOURCE_MEM); ... - pci_release_selected_regions(pdev, bars); + pci_release_mem_regions(pdev); // IORESOURCE_IO @@ expression err, pdev, name; @@ - err = pci_request_selected_regions(pdev, pci_select_bars(pdev, IORESOURCE_IO), name); + err = pci_request_io_regions(pdev, name); @@ expression pdev; @@ - pci_release_selected_regions(pdev, pci_select_bars(pdev, IORESOURCE_IO)); + pci_release_io_regions(pdev); @@ expression err, pdev, name; identifier bars; @@ - bars = pci_select_bars(pdev, IORESOURCE_IO); ... - err = pci_request_selected_regions(pdev, bars, name); + err = pci_request_io_regions(pdev, name); @@ expression pdev; identifier bars; @@ - bars = pci_select_bars(pdev, IORESOURCE_IO); ... - pci_release_selected_regions(pdev, bars); + pci_release_io_regions(pdev); Johannes Thumshirn (5): PCI: Add helpers to request/release memory and I/O regions NVMe: Use pci_(request|release)_mem_regions scsi: Use pci_(request|release)_mem_regions GenWQE: Use pci_(request|release)_mem_regions ethernet: Use pci_(request|release)_mem_regions drivers/misc/genwqe/card_base.c | 13 +++++------- drivers/net/ethernet/atheros/alx/main.c | 12 +++++------ drivers/net/ethernet/intel/e1000e/netdev.c | 6 ++---- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 11 +++------- drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++------ drivers/net/ethernet/intel/igb/igb_main.c | 10 +++------ drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 9 +++------ drivers/nvme/host/pci.c | 10 +++------ drivers/scsi/lpfc/lpfc_init.c | 5 +---- include/linux/pci.h | 29 +++++++++++++++++++++++++++ 10 files changed, 57 insertions(+), 57 deletions(-) Cc: Christoph Hellwig <hch@infradead.org> Cc: Keith Busch <keith.busch@intel.com> Cc: Jens Axboe <axboe@fb.com> Cc: linux-nvme@lists.infradead.org Cc: James Smart <james.smart@avagotech.com> Cc: Dick Kennedy <dick.kennedy@avagotech.com> Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com> Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: linux-scsi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: Frank Haverkamp <haver@linux.vnet.ibm.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Jay Cliburn <jcliburn@gmail.com> Cc: Chris Snook <chris.snook@gmail.com> Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Cc: David S. Miller <davem@davemloft.net> Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: intel-wired-lan@lists.osuosl.org -- 1.8.5.6 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/5] PCI: Add helpers to request/release memory and I/O regions 2016-05-31 12:05 [PATCH 0/5] Introduce pci_(request|release)_(mem|io)_regions Johannes Thumshirn @ 2016-05-31 12:05 ` Johannes Thumshirn 2016-06-01 7:57 ` Christoph Hellwig 2016-05-31 12:05 ` [PATCH 2/5] NVMe: Use pci_(request|release)_mem_regions Johannes Thumshirn ` (3 subsequent siblings) 4 siblings, 1 reply; 14+ messages in thread From: Johannes Thumshirn @ 2016-05-31 12:05 UTC (permalink / raw) To: Bjorn Helgaas; +Cc: linux-pci, linux-kernel, Johannes Thumshirn Add helpers to request and release a device's memory or I/O regions. With these helpers in place, one does not need to select a device's memory or I/O regions with pci_select_bars() prior to requesting or releasing them. Suggested-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> --- include/linux/pci.h | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/include/linux/pci.h b/include/linux/pci.h index 932ec74..846f4cf 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2007,6 +2007,35 @@ static inline bool pci_is_dev_assigned(struct pci_dev *pdev) return (pdev->dev_flags & PCI_DEV_FLAGS_ASSIGNED) == PCI_DEV_FLAGS_ASSIGNED; } +static inline int +pci_request_io_regions(struct pci_dev *pdev, const char *name) +{ + return pci_request_selected_regions(pdev, + pci_select_bars(pdev, IORESOURCE_IO), name); +} + +static inline void +pci_release_io_regions(struct pci_dev *pdev) +{ + return pci_release_selected_regions(pdev, + pci_select_bars(pdev, IORESOURCE_IO)); +} + +static inline int +pci_request_mem_regions(struct pci_dev *pdev, const char *name) +{ + return pci_request_selected_regions(pdev, + pci_select_bars(pdev, IORESOURCE_MEM), name); +} + +static inline void +pci_release_mem_regions(struct pci_dev *pdev) +{ + return pci_release_selected_regions(pdev, + pci_select_bars(pdev, + IORESOURCE_MEM)); +} + /** * pci_ari_enabled - query ARI forwarding status * @bus: the PCI bus -- 1.8.5.6 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/5] PCI: Add helpers to request/release memory and I/O regions 2016-05-31 12:05 ` [PATCH 1/5] PCI: Add helpers to request/release memory and I/O regions Johannes Thumshirn @ 2016-06-01 7:57 ` Christoph Hellwig 0 siblings, 0 replies; 14+ messages in thread From: Christoph Hellwig @ 2016-06-01 7:57 UTC (permalink / raw) To: Johannes Thumshirn; +Cc: Bjorn Helgaas, linux-pci, linux-kernel On Tue, May 31, 2016 at 02:05:09PM +0200, Johannes Thumshirn wrote: > Add helpers to request and release a device's memory or I/O regions. > > With these helpers in place, one does not need to select a device's memory or > I/O regions with pci_select_bars() prior to requesting or releasing them. > > Suggested-by: Christoph Hellwig <hch@infradead.org> > Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> > --- > include/linux/pci.h | 29 +++++++++++++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/include/linux/pci.h b/include/linux/pci.h > index 932ec74..846f4cf 100644 > --- a/include/linux/pci.h > +++ b/include/linux/pci.h > @@ -2007,6 +2007,35 @@ static inline bool pci_is_dev_assigned(struct pci_dev *pdev) > return (pdev->dev_flags & PCI_DEV_FLAGS_ASSIGNED) == PCI_DEV_FLAGS_ASSIGNED; > } > > +static inline int > +pci_request_io_regions(struct pci_dev *pdev, const char *name) > +{ > + return pci_request_selected_regions(pdev, > + pci_select_bars(pdev, IORESOURCE_IO), name); Needs a little indentation tweak to not spill over 80 characters. Two tabs should be plenty indentation for the continuation of function arguments. Ditto for the other functions, Otherwise looks fine: Reviewed-by: Christoph Hellwig <hch@lst.de> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/5] NVMe: Use pci_(request|release)_mem_regions 2016-05-31 12:05 [PATCH 0/5] Introduce pci_(request|release)_(mem|io)_regions Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 1/5] PCI: Add helpers to request/release memory and I/O regions Johannes Thumshirn @ 2016-05-31 12:05 ` Johannes Thumshirn 2016-06-01 7:58 ` Christoph Hellwig 2016-05-31 12:05 ` [PATCH 3/5] scsi: " Johannes Thumshirn ` (2 subsequent siblings) 4 siblings, 1 reply; 14+ messages in thread From: Johannes Thumshirn @ 2016-05-31 12:05 UTC (permalink / raw) To: Bjorn Helgaas Cc: linux-pci, linux-kernel, Johannes Thumshirn, Christoph Hellwig, Keith Busch, Jens Axboe, linux-nvme Now that we do have pci_request_mem_regions() and pci_release_mem_regions() at hand, use it in the NVMe driver. Suggested-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Cc: Christoph Hellwig <hch@infradead.org> Cc: Keith Busch <keith.busch@intel.com> Cc: Jens Axboe <axboe@fb.com> Cc: linux-nvme@lists.infradead.org --- drivers/nvme/host/pci.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 4fd733f..e7d17ae 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -1756,7 +1756,7 @@ static void nvme_dev_unmap(struct nvme_dev *dev) { if (dev->bar) iounmap(dev->bar); - pci_release_regions(to_pci_dev(dev->dev)); + pci_release_mem_regions(to_pci_dev(dev->dev)); } static void nvme_pci_disable(struct nvme_dev *dev) @@ -1979,13 +1979,9 @@ static const struct nvme_ctrl_ops nvme_pci_ctrl_ops = { static int nvme_dev_map(struct nvme_dev *dev) { - int bars; struct pci_dev *pdev = to_pci_dev(dev->dev); - bars = pci_select_bars(pdev, IORESOURCE_MEM); - if (!bars) - return -ENODEV; - if (pci_request_selected_regions(pdev, bars, "nvme")) + if (pci_request_mem_regions(pdev, "nvme")) return -ENODEV; dev->bar = ioremap(pci_resource_start(pdev, 0), 8192); @@ -1994,7 +1990,7 @@ static int nvme_dev_map(struct nvme_dev *dev) return 0; release: - pci_release_regions(pdev); + pci_release_mem_regions(pdev); return -ENODEV; } -- 1.8.5.6 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/5] NVMe: Use pci_(request|release)_mem_regions 2016-05-31 12:05 ` [PATCH 2/5] NVMe: Use pci_(request|release)_mem_regions Johannes Thumshirn @ 2016-06-01 7:58 ` Christoph Hellwig 0 siblings, 0 replies; 14+ messages in thread From: Christoph Hellwig @ 2016-06-01 7:58 UTC (permalink / raw) To: Johannes Thumshirn Cc: Bjorn Helgaas, linux-pci, linux-kernel, Christoph Hellwig, Keith Busch, Jens Axboe, linux-nvme Looks fine, Reviewed-by: Christoph Hellwig <hch@lst.de> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/5] scsi: Use pci_(request|release)_mem_regions 2016-05-31 12:05 [PATCH 0/5] Introduce pci_(request|release)_(mem|io)_regions Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 1/5] PCI: Add helpers to request/release memory and I/O regions Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 2/5] NVMe: Use pci_(request|release)_mem_regions Johannes Thumshirn @ 2016-05-31 12:05 ` Johannes Thumshirn 2016-06-01 7:59 ` Christoph Hellwig 2016-05-31 12:05 ` [PATCH 4/5] GenWQE: " Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 5/5] ethernet: " Johannes Thumshirn 4 siblings, 1 reply; 14+ messages in thread From: Johannes Thumshirn @ 2016-05-31 12:05 UTC (permalink / raw) To: Bjorn Helgaas Cc: linux-pci, linux-kernel, Johannes Thumshirn, James Smart, Dick Kennedy, James E.J. Bottomley, Martin K. Petersen, linux-scsi Now that we do have pci_request_mem_regions() and pci_release_mem_regions() at hand, use it in the lpfc driver. Suggested-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Cc: James Smart <james.smart@avagotech.com> Cc: Dick Kennedy <dick.kennedy@avagotech.com> Cc: "James E.J. Bottomley" <jejb@linux.vnet.ibm.com> Cc: "Martin K. Petersen" <martin.petersen@oracle.com> Cc: linux-scsi@vger.kernel.org Cc: linux-kernel@vger.kernel.org --- drivers/scsi/lpfc/lpfc_init.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c index f57d02c..75af768 100644 --- a/drivers/scsi/lpfc/lpfc_init.c +++ b/drivers/scsi/lpfc/lpfc_init.c @@ -4820,17 +4820,14 @@ static void lpfc_disable_pci_dev(struct lpfc_hba *phba) { struct pci_dev *pdev; - int bars; /* Obtain PCI device reference */ if (!phba->pcidev) return; else pdev = phba->pcidev; - /* Select PCI BARs */ - bars = pci_select_bars(pdev, IORESOURCE_MEM); /* Release PCI resource and disable PCI device */ - pci_release_selected_regions(pdev, bars); + pci_release_mem_regions(pdev); pci_disable_device(pdev); return; -- 1.8.5.6 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 3/5] scsi: Use pci_(request|release)_mem_regions 2016-05-31 12:05 ` [PATCH 3/5] scsi: " Johannes Thumshirn @ 2016-06-01 7:59 ` Christoph Hellwig 2016-06-01 8:04 ` Johannes Thumshirn 0 siblings, 1 reply; 14+ messages in thread From: Christoph Hellwig @ 2016-06-01 7:59 UTC (permalink / raw) To: Johannes Thumshirn Cc: Bjorn Helgaas, linux-pci, linux-kernel, James Smart, Dick Kennedy, James E.J. Bottomley, Martin K. Petersen, linux-scsi On Tue, May 31, 2016 at 02:05:11PM +0200, Johannes Thumshirn wrote: > Now that we do have pci_request_mem_regions() and pci_release_mem_regions() at > hand, use it in the lpfc driver. This should read lpfc instead of scsi in the subject line. Also the request side of the patch seems to be missing. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/5] scsi: Use pci_(request|release)_mem_regions 2016-06-01 7:59 ` Christoph Hellwig @ 2016-06-01 8:04 ` Johannes Thumshirn 0 siblings, 0 replies; 14+ messages in thread From: Johannes Thumshirn @ 2016-06-01 8:04 UTC (permalink / raw) To: Christoph Hellwig Cc: Bjorn Helgaas, linux-pci, linux-kernel, James Smart, Dick Kennedy, James E.J. Bottomley, Martin K. Petersen, linux-scsi On Wed, Jun 01, 2016 at 12:59:29AM -0700, Christoph Hellwig wrote: > On Tue, May 31, 2016 at 02:05:11PM +0200, Johannes Thumshirn wrote: > > Now that we do have pci_request_mem_regions() and pci_release_mem_regions() at > > hand, use it in the lpfc driver. > > This should read lpfc instead of scsi in the subject line. > > Also the request side of the patch seems to be missing. You're right. I'll be checking why the coccinelle spatch didn't catch it up. -- Johannes Thumshirn Storage jthumshirn@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/5] GenWQE: Use pci_(request|release)_mem_regions 2016-05-31 12:05 [PATCH 0/5] Introduce pci_(request|release)_(mem|io)_regions Johannes Thumshirn ` (2 preceding siblings ...) 2016-05-31 12:05 ` [PATCH 3/5] scsi: " Johannes Thumshirn @ 2016-05-31 12:05 ` Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 5/5] ethernet: " Johannes Thumshirn 4 siblings, 0 replies; 14+ messages in thread From: Johannes Thumshirn @ 2016-05-31 12:05 UTC (permalink / raw) To: Bjorn Helgaas Cc: linux-pci, linux-kernel, Johannes Thumshirn, Frank Haverkamp, Greg Kroah-Hartman Now that we do have pci_request_mem_regions() and pci_release_mem_regions() at hand, use it in the genwqe driver. Suggested-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Cc: Frank Haverkamp <haver@linux.vnet.ibm.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> --- drivers/misc/genwqe/card_base.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/drivers/misc/genwqe/card_base.c b/drivers/misc/genwqe/card_base.c index 4cf8f82..cb398be 100644 --- a/drivers/misc/genwqe/card_base.c +++ b/drivers/misc/genwqe/card_base.c @@ -182,7 +182,7 @@ static void genwqe_dev_free(struct genwqe_dev *cd) */ static int genwqe_bus_reset(struct genwqe_dev *cd) { - int bars, rc = 0; + int rc = 0; struct pci_dev *pci_dev = cd->pci_dev; void __iomem *mmio; @@ -193,8 +193,7 @@ static int genwqe_bus_reset(struct genwqe_dev *cd) cd->mmio = NULL; pci_iounmap(pci_dev, mmio); - bars = pci_select_bars(pci_dev, IORESOURCE_MEM); - pci_release_selected_regions(pci_dev, bars); + pci_release_mem_regions(pci_dev); /* * Firmware/BIOS might change memory mapping during bus reset. @@ -218,7 +217,7 @@ static int genwqe_bus_reset(struct genwqe_dev *cd) GENWQE_INJECT_GFIR_FATAL | GENWQE_INJECT_GFIR_INFO); - rc = pci_request_selected_regions(pci_dev, bars, genwqe_driver_name); + rc = pci_request_mem_regions(pci_dev, genwqe_driver_name); if (rc) { dev_err(&pci_dev->dev, "[%s] err: request bars failed (%d)\n", __func__, rc); @@ -1071,7 +1070,6 @@ static int genwqe_pci_setup(struct genwqe_dev *cd) int err, bars; struct pci_dev *pci_dev = cd->pci_dev; - bars = pci_select_bars(pci_dev, IORESOURCE_MEM); err = pci_enable_device_mem(pci_dev); if (err) { dev_err(&pci_dev->dev, @@ -1080,7 +1078,7 @@ static int genwqe_pci_setup(struct genwqe_dev *cd) } /* Reserve PCI I/O and memory resources */ - err = pci_request_selected_regions(pci_dev, bars, genwqe_driver_name); + err = pci_request_mem_regions(pci_dev, genwqe_driver_name); if (err) { dev_err(&pci_dev->dev, "[%s] err: request bars failed (%d)\n", __func__, err); @@ -1160,8 +1158,7 @@ static void genwqe_pci_remove(struct genwqe_dev *cd) if (cd->mmio) pci_iounmap(pci_dev, cd->mmio); - bars = pci_select_bars(pci_dev, IORESOURCE_MEM); - pci_release_selected_regions(pci_dev, bars); + pci_release_mem_regions(pci_dev); pci_disable_device(pci_dev); } -- 1.8.5.6 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 5/5] ethernet: Use pci_(request|release)_mem_regions 2016-05-31 12:05 [PATCH 0/5] Introduce pci_(request|release)_(mem|io)_regions Johannes Thumshirn ` (3 preceding siblings ...) 2016-05-31 12:05 ` [PATCH 4/5] GenWQE: " Johannes Thumshirn @ 2016-05-31 12:05 ` Johannes Thumshirn 2016-06-01 7:59 ` Christoph Hellwig 4 siblings, 1 reply; 14+ messages in thread From: Johannes Thumshirn @ 2016-05-31 12:05 UTC (permalink / raw) To: Bjorn Helgaas Cc: linux-pci, linux-kernel, Johannes Thumshirn, Jay Cliburn, Chris Snook, Jeff Kirsher, David S. Miller, netdev, intel-wired-lan Now that we do have pci_request_mem_regions() and pci_release_mem_regions() at hand, use it in the ethernet drivers. Suggested-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de> Cc: Jay Cliburn <jcliburn@gmail.com> Cc: Chris Snook <chris.snook@gmail.com> Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Cc: David S. Miller <davem@davemloft.net> Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: intel-wired-lan@lists.osuosl.org --- drivers/net/ethernet/atheros/alx/main.c | 12 +++++------- drivers/net/ethernet/intel/e1000e/netdev.c | 6 ++---- drivers/net/ethernet/intel/fm10k/fm10k_pci.c | 11 +++-------- drivers/net/ethernet/intel/i40e/i40e_main.c | 9 +++------ drivers/net/ethernet/intel/igb/igb_main.c | 10 +++------- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 9 +++------ 6 files changed, 19 insertions(+), 38 deletions(-) diff --git a/drivers/net/ethernet/atheros/alx/main.c b/drivers/net/ethernet/atheros/alx/main.c index 55b118e..d2363de 100644 --- a/drivers/net/ethernet/atheros/alx/main.c +++ b/drivers/net/ethernet/atheros/alx/main.c @@ -1238,7 +1238,7 @@ static int alx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) struct alx_priv *alx; struct alx_hw *hw; bool phy_configured; - int bars, err; + int err; err = pci_enable_device_mem(pdev); if (err) @@ -1258,11 +1258,10 @@ static int alx_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } } - bars = pci_select_bars(pdev, IORESOURCE_MEM); - err = pci_request_selected_regions(pdev, bars, alx_drv_name); + err = pci_request_mem_regions(pdev, alx_drv_name); if (err) { dev_err(&pdev->dev, - "pci_request_selected_regions failed(bars:%d)\n", bars); + "pci_request_mem_regions failed\n"); goto out_pci_disable; } @@ -1388,7 +1387,7 @@ out_unmap: out_free_netdev: free_netdev(netdev); out_pci_release: - pci_release_selected_regions(pdev, bars); + pci_release_mem_regions(pdev); out_pci_disable: pci_disable_device(pdev); return err; @@ -1407,8 +1406,7 @@ static void alx_remove(struct pci_dev *pdev) unregister_netdev(alx->dev); iounmap(hw->hw_addr); - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); pci_disable_pcie_error_reporting(pdev); pci_disable_device(pdev); diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index 9b4ec13..ecd8d15 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c @@ -7284,8 +7284,7 @@ err_flashmap: err_ioremap: free_netdev(netdev); err_alloc_etherdev: - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); err_pci_reg: err_dma: pci_disable_device(pdev); @@ -7352,8 +7351,7 @@ static void e1000_remove(struct pci_dev *pdev) if ((adapter->hw.flash_address) && (adapter->hw.mac.type < e1000_pch_spt)) iounmap(adapter->hw.flash_address); - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); free_netdev(netdev); diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c index 4eb7a6f..ad28e87 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_pci.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_pci.c @@ -1940,10 +1940,7 @@ static int fm10k_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto err_dma; } - err = pci_request_selected_regions(pdev, - pci_select_bars(pdev, - IORESOURCE_MEM), - fm10k_driver_name); + err = pci_request_mem_regions(pdev, fm10k_driver_name); if (err) { dev_err(&pdev->dev, "pci_request_selected_regions failed: %d\n", err); @@ -2034,8 +2031,7 @@ err_sw_init: err_ioremap: free_netdev(netdev); err_alloc_netdev: - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); err_pci_reg: err_dma: pci_disable_device(pdev); @@ -2086,8 +2082,7 @@ static void fm10k_remove(struct pci_dev *pdev) free_netdev(netdev); - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); pci_disable_pcie_error_reporting(pdev); diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index 3449129..37592b1 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -10779,8 +10779,7 @@ static int i40e_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } /* set up pci connections */ - err = pci_request_selected_regions(pdev, pci_select_bars(pdev, - IORESOURCE_MEM), i40e_driver_name); + err = pci_request_mem_regions(pdev, i40e_driver_name); if (err) { dev_info(&pdev->dev, "pci_request_selected_regions failed %d\n", err); @@ -11277,8 +11276,7 @@ err_ioremap: kfree(pf); err_pf_alloc: pci_disable_pcie_error_reporting(pdev); - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); err_pci_reg: err_dma: pci_disable_device(pdev); @@ -11387,8 +11385,7 @@ static void i40e_remove(struct pci_dev *pdev) iounmap(hw->hw_addr); kfree(pf); - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); pci_disable_pcie_error_reporting(pdev); pci_disable_device(pdev); diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 55a1405c..466087f 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -2288,9 +2288,7 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent) } } - err = pci_request_selected_regions(pdev, pci_select_bars(pdev, - IORESOURCE_MEM), - igb_driver_name); + err = pci_request_mem_regions(pdev, igb_driver_name); if (err) goto err_pci_reg; @@ -2707,8 +2705,7 @@ err_sw_init: err_ioremap: free_netdev(netdev); err_alloc_etherdev: - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); err_pci_reg: err_dma: pci_disable_device(pdev); @@ -2873,8 +2870,7 @@ static void igb_remove(struct pci_dev *pdev) pci_iounmap(pdev, adapter->io_addr); if (hw->flash_address) iounmap(hw->flash_address); - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); kfree(adapter->shadow_vfta); free_netdev(netdev); diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 7df3fe2..1357dd2 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -9084,8 +9084,7 @@ static int ixgbe_probe(struct pci_dev *pdev, const struct pci_device_id *ent) pci_using_dac = 0; } - err = pci_request_selected_regions(pdev, pci_select_bars(pdev, - IORESOURCE_MEM), ixgbe_driver_name); + err = pci_request_mem_regions(pdev, ixgbe_driver_name); if (err) { dev_err(&pdev->dev, "pci_request_selected_regions failed 0x%x\n", err); @@ -9460,8 +9459,7 @@ err_ioremap: disable_dev = !test_and_set_bit(__IXGBE_DISABLED, &adapter->state); free_netdev(netdev); err_alloc_etherdev: - pci_release_selected_regions(pdev, - pci_select_bars(pdev, IORESOURCE_MEM)); + pci_release_mem_regions(pdev); err_pci_reg: err_dma: if (!adapter || disable_dev) @@ -9527,8 +9525,7 @@ static void ixgbe_remove(struct pci_dev *pdev) #endif iounmap(adapter->io_addr); - pci_release_selected_regions(pdev, pci_select_bars(pdev, - IORESOURCE_MEM)); + pci_release_mem_regions(pdev); e_dev_info("complete\n"); -- 1.8.5.6 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 5/5] ethernet: Use pci_(request|release)_mem_regions 2016-05-31 12:05 ` [PATCH 5/5] ethernet: " Johannes Thumshirn @ 2016-06-01 7:59 ` Christoph Hellwig 2016-06-01 8:51 ` Johannes Thumshirn 0 siblings, 1 reply; 14+ messages in thread From: Christoph Hellwig @ 2016-06-01 7:59 UTC (permalink / raw) To: Johannes Thumshirn Cc: Bjorn Helgaas, linux-pci, linux-kernel, Jay Cliburn, Chris Snook, Jeff Kirsher, David S. Miller, netdev, intel-wired-lan On Tue, May 31, 2016 at 02:05:13PM +0200, Johannes Thumshirn wrote: > Now that we do have pci_request_mem_regions() and pci_release_mem_regions() at > hand, use it in the ethernet drivers. This should probably be one patch per driver. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 5/5] ethernet: Use pci_(request|release)_mem_regions 2016-06-01 7:59 ` Christoph Hellwig @ 2016-06-01 8:51 ` Johannes Thumshirn 2016-06-01 14:56 ` Jeff Kirsher 0 siblings, 1 reply; 14+ messages in thread From: Johannes Thumshirn @ 2016-06-01 8:51 UTC (permalink / raw) To: Christoph Hellwig Cc: Bjorn Helgaas, linux-pci, linux-kernel, Jay Cliburn, Chris Snook, Jeff Kirsher, David S. Miller, netdev, intel-wired-lan On Wed, Jun 01, 2016 at 12:59:56AM -0700, Christoph Hellwig wrote: > On Tue, May 31, 2016 at 02:05:13PM +0200, Johannes Thumshirn wrote: > > Now that we do have pci_request_mem_regions() and pci_release_mem_regions() at > > hand, use it in the ethernet drivers. > > This should probably be one patch per driver. I though if I do one patch per subsystem it'll be less a hassle for the individual maintainers, but if the netdev people want it as split up, I'll be doing it of cause. Johannes -- Johannes Thumshirn Storage jthumshirn@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 5/5] ethernet: Use pci_(request|release)_mem_regions 2016-06-01 8:51 ` Johannes Thumshirn @ 2016-06-01 14:56 ` Jeff Kirsher 2016-06-01 15:26 ` Johannes Thumshirn 0 siblings, 1 reply; 14+ messages in thread From: Jeff Kirsher @ 2016-06-01 14:56 UTC (permalink / raw) To: Johannes Thumshirn, Christoph Hellwig Cc: Bjorn Helgaas, linux-pci, linux-kernel, Jay Cliburn, Chris Snook, David S. Miller, netdev, intel-wired-lan [-- Attachment #1: Type: text/plain, Size: 798 bytes --] On Wed, 2016-06-01 at 10:51 +0200, Johannes Thumshirn wrote: > On Wed, Jun 01, 2016 at 12:59:56AM -0700, Christoph Hellwig wrote: > > On Tue, May 31, 2016 at 02:05:13PM +0200, Johannes Thumshirn wrote: > > > Now that we do have pci_request_mem_regions() and > pci_release_mem_regions() at > > > hand, use it in the ethernet drivers. > > > > This should probably be one patch per driver. > > I though if I do one patch per subsystem it'll be less a hassle for the > individual maintainers, but if the netdev people want it as split up, > I'll be > doing it of cause. Since almost all the changes are to Intel wired LAN drivers, if you just split off the atheros change into a separate patch, I would be happy. Then you could keep just one patch to change all the Intel drivers. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 819 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 5/5] ethernet: Use pci_(request|release)_mem_regions 2016-06-01 14:56 ` Jeff Kirsher @ 2016-06-01 15:26 ` Johannes Thumshirn 0 siblings, 0 replies; 14+ messages in thread From: Johannes Thumshirn @ 2016-06-01 15:26 UTC (permalink / raw) To: Jeff Kirsher Cc: Christoph Hellwig, Bjorn Helgaas, linux-pci, linux-kernel, Jay Cliburn, Chris Snook, David S. Miller, netdev, intel-wired-lan On Wed, Jun 01, 2016 at 07:56:45AM -0700, Jeff Kirsher wrote: > On Wed, 2016-06-01 at 10:51 +0200, Johannes Thumshirn wrote: > > On Wed, Jun 01, 2016 at 12:59:56AM -0700, Christoph Hellwig wrote: > > > On Tue, May 31, 2016 at 02:05:13PM +0200, Johannes Thumshirn wrote: > > > > Now that we do have pci_request_mem_regions() and > > pci_release_mem_regions() at > > > > hand, use it in the ethernet drivers. > > > > > > This should probably be one patch per driver. > > > > I though if I do one patch per subsystem it'll be less a hassle for the > > individual maintainers, but if the netdev people want it as split up, > > I'll be > > doing it of cause. > > Since almost all the changes are to Intel wired LAN drivers, if you just > split off the atheros change into a separate patch, I would be happy. Then > you could keep just one patch to change all the Intel drivers. That should be doable. I'll send a v2 with all requested changes tomorrow. -- Johannes Thumshirn Storage jthumshirn@suse.de +49 911 74053 689 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850 ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2016-06-01 15:26 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-05-31 12:05 [PATCH 0/5] Introduce pci_(request|release)_(mem|io)_regions Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 1/5] PCI: Add helpers to request/release memory and I/O regions Johannes Thumshirn 2016-06-01 7:57 ` Christoph Hellwig 2016-05-31 12:05 ` [PATCH 2/5] NVMe: Use pci_(request|release)_mem_regions Johannes Thumshirn 2016-06-01 7:58 ` Christoph Hellwig 2016-05-31 12:05 ` [PATCH 3/5] scsi: " Johannes Thumshirn 2016-06-01 7:59 ` Christoph Hellwig 2016-06-01 8:04 ` Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 4/5] GenWQE: " Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 5/5] ethernet: " Johannes Thumshirn 2016-06-01 7:59 ` Christoph Hellwig 2016-06-01 8:51 ` Johannes Thumshirn 2016-06-01 14:56 ` Jeff Kirsher 2016-06-01 15:26 ` Johannes Thumshirn
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).