* [PATCH 0/5] Introduce pci_(request|release)_(mem|io)_regions @ 2016-05-31 12:05 Johannes Thumshirn 2016-05-31 12:05 ` [PATCH 5/5] ethernet: Use pci_(request|release)_mem_regions Johannes Thumshirn 0 siblings, 1 reply; 6+ 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] 6+ 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 @ 2016-05-31 12:05 ` Johannes Thumshirn 2016-06-01 7:59 ` Christoph Hellwig 0 siblings, 1 reply; 6+ 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] 6+ messages in thread
* Re: [PATCH 5/5] ethernet: Use pci_(request|release)_mem_regions 2016-05-31 12:05 ` [PATCH 5/5] ethernet: Use pci_(request|release)_mem_regions Johannes Thumshirn @ 2016-06-01 7:59 ` Christoph Hellwig 2016-06-01 8:51 ` Johannes Thumshirn 0 siblings, 1 reply; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ 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; 6+ 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] 6+ messages in thread
end of thread, other threads:[~2016-06-01 15:26 UTC | newest] Thread overview: 6+ 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 5/5] ethernet: Use pci_(request|release)_mem_regions 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).