All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-06 21:45 ` Christophe JAILLET
  0 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:45 UTC (permalink / raw)
  To: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas
  Cc: linux-alpha, linuxppc-dev, sparclinux, dmaengine, linux-fpga,
	linux-media, MPT-FusionLinux.pdl, linux-scsi, linux-pci,
	linux-kernel, kernel-janitors, Christophe JAILLET

This serie axes all the remaining usages of the deprecated "pci-dma-compat.h"
API.

All these patches have already been posted.

They have been generated with a coccinelle script.
The tricky parts are patches that use dma_alloc_coherent() because the correct
GFP flag has to be used in place of the previous embedded GFP_ATOMIC.

Patches 1-3 are already Reviewed. References to the corresponding mail is
given below the ---

Patch 1-2,4-10 are just generated from the coccinelle script. Only too long
lines have been hand modified. dma_alloc_coherent() modification are NOT part
of these patches.

Patch 3 also includes some 'dma_set_mask_and_coherent()' instead of
'pci_set_dma_mask()/pci_set_consistent_dma_mask()'.
I've left this additional modification because it was reviewed with it.

Patch 10-15 are the tricky parts. Explanation of which GFP flag is the right one
is given in each patch. It has been divided in several patches to ease review.

Patch 15 is the only one I'm slighly unsure with. The old code was using a
GFP_USER flag in the function. I'm not familiar with it.
I *guess*  that GFP_KERNEL is fine, but maybe it should also be GFP_USER or left
as GFP_ATOMIC so that nothing is changed.

Patch 16 is the last step that remove "pci-dma-compat.h" and its only usage.


All patches, exept 1-2,6 that are architecture specific, have been compile tested.


After all that, a few rst files, 1 or 2 strings in error messages and some
error branching labels should still need some attention. 
This is some minor issues.


Only the cover letter is sent to every one. Each patch is sent to the
corresponding maintainer(s) + Andrew Morton, Christoph Hellwig and Arnd Bergmann.


Best regards.


Christophe JAILLET (16):
  alpha: Remove usage of the deprecated "pci-dma-compat.h" API
  floppy: Remove usage of the deprecated "pci-dma-compat.h" API
  fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
  media: Remove usage of the deprecated "pci-dma-compat.h" API
  agp/intel: Remove usage of the deprecated "pci-dma-compat.h" API
  sparc: Remove usage of the deprecated "pci-dma-compat.h" API
  dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h"
    API
  rapidio/tsi721: Remove usage of the deprecated "pci-dma-compat.h" API
  media: v4l2-pci-skeleton: Remove usage of the deprecated
    "pci-dma-compat.h" API
  scsi: message: fusion: Remove usage of the deprecated
    "pci-dma-compat.h" API
  scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
  scsi: mptbase: Use dma_alloc_coherent()
  scsi: mptsas: Use dma_alloc_coherent() in
    mptsas_exp_repmanufacture_info()
  scsi: mptsas: Use dma_alloc_coherent()
  scsi: mptctl: Use dma_alloc_coherent()
  PCI: Remove usage of the deprecated "pci-dma-compat.h" API

 arch/alpha/include/asm/floppy.h     |   7 +-
 arch/alpha/kernel/pci_iommu.c       |  12 +--
 arch/powerpc/include/asm/floppy.h   |   8 +-
 arch/sparc/kernel/ioport.c          |   2 +-
 drivers/char/agp/intel-gtt.c        |  26 ++---
 drivers/dma/pch_dma.c               |   2 +-
 drivers/fpga/dfl-pci.c              |  14 +--
 drivers/media/pci/cx18/cx18-queue.h |   6 +-
 drivers/media/pci/ivtv/ivtv-queue.h |  25 +++--
 drivers/media/pci/ivtv/ivtv-udma.h  |   8 +-
 drivers/message/fusion/mptbase.c    | 149 ++++++++++++++++------------
 drivers/message/fusion/mptctl.c     |  82 +++++++++------
 drivers/message/fusion/mptlan.c     |  90 +++++++++--------
 drivers/message/fusion/mptsas.c     |  94 +++++++++---------
 drivers/rapidio/devices/tsi721.c    |   8 +-
 include/linux/pci-dma-compat.h      | 129 ------------------------
 include/linux/pci.h                 |   3 -
 samples/v4l/v4l2-pci-skeleton.c     |   2 +-
 18 files changed, 289 insertions(+), 378 deletions(-)
 delete mode 100644 include/linux/pci-dma-compat.h

-- 
2.32.0


^ permalink raw reply	[flat|nested] 82+ messages in thread

* [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-06 21:45 ` Christophe JAILLET
  0 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:45 UTC (permalink / raw)
  To: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas
  Cc: kernel-janitors, linux-scsi, MPT-FusionLinux.pdl, linux-fpga,
	linux-pci, linux-kernel, dmaengine, Christophe JAILLET,
	linux-alpha, sparclinux, linuxppc-dev, linux-media

This serie axes all the remaining usages of the deprecated "pci-dma-compat.h"
API.

All these patches have already been posted.

They have been generated with a coccinelle script.
The tricky parts are patches that use dma_alloc_coherent() because the correct
GFP flag has to be used in place of the previous embedded GFP_ATOMIC.

Patches 1-3 are already Reviewed. References to the corresponding mail is
given below the ---

Patch 1-2,4-10 are just generated from the coccinelle script. Only too long
lines have been hand modified. dma_alloc_coherent() modification are NOT part
of these patches.

Patch 3 also includes some 'dma_set_mask_and_coherent()' instead of
'pci_set_dma_mask()/pci_set_consistent_dma_mask()'.
I've left this additional modification because it was reviewed with it.

Patch 10-15 are the tricky parts. Explanation of which GFP flag is the right one
is given in each patch. It has been divided in several patches to ease review.

Patch 15 is the only one I'm slighly unsure with. The old code was using a
GFP_USER flag in the function. I'm not familiar with it.
I *guess*  that GFP_KERNEL is fine, but maybe it should also be GFP_USER or left
as GFP_ATOMIC so that nothing is changed.

Patch 16 is the last step that remove "pci-dma-compat.h" and its only usage.


All patches, exept 1-2,6 that are architecture specific, have been compile tested.


After all that, a few rst files, 1 or 2 strings in error messages and some
error branching labels should still need some attention. 
This is some minor issues.


Only the cover letter is sent to every one. Each patch is sent to the
corresponding maintainer(s) + Andrew Morton, Christoph Hellwig and Arnd Bergmann.


Best regards.


Christophe JAILLET (16):
  alpha: Remove usage of the deprecated "pci-dma-compat.h" API
  floppy: Remove usage of the deprecated "pci-dma-compat.h" API
  fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
  media: Remove usage of the deprecated "pci-dma-compat.h" API
  agp/intel: Remove usage of the deprecated "pci-dma-compat.h" API
  sparc: Remove usage of the deprecated "pci-dma-compat.h" API
  dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h"
    API
  rapidio/tsi721: Remove usage of the deprecated "pci-dma-compat.h" API
  media: v4l2-pci-skeleton: Remove usage of the deprecated
    "pci-dma-compat.h" API
  scsi: message: fusion: Remove usage of the deprecated
    "pci-dma-compat.h" API
  scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
  scsi: mptbase: Use dma_alloc_coherent()
  scsi: mptsas: Use dma_alloc_coherent() in
    mptsas_exp_repmanufacture_info()
  scsi: mptsas: Use dma_alloc_coherent()
  scsi: mptctl: Use dma_alloc_coherent()
  PCI: Remove usage of the deprecated "pci-dma-compat.h" API

 arch/alpha/include/asm/floppy.h     |   7 +-
 arch/alpha/kernel/pci_iommu.c       |  12 +--
 arch/powerpc/include/asm/floppy.h   |   8 +-
 arch/sparc/kernel/ioport.c          |   2 +-
 drivers/char/agp/intel-gtt.c        |  26 ++---
 drivers/dma/pch_dma.c               |   2 +-
 drivers/fpga/dfl-pci.c              |  14 +--
 drivers/media/pci/cx18/cx18-queue.h |   6 +-
 drivers/media/pci/ivtv/ivtv-queue.h |  25 +++--
 drivers/media/pci/ivtv/ivtv-udma.h  |   8 +-
 drivers/message/fusion/mptbase.c    | 149 ++++++++++++++++------------
 drivers/message/fusion/mptctl.c     |  82 +++++++++------
 drivers/message/fusion/mptlan.c     |  90 +++++++++--------
 drivers/message/fusion/mptsas.c     |  94 +++++++++---------
 drivers/rapidio/devices/tsi721.c    |   8 +-
 include/linux/pci-dma-compat.h      | 129 ------------------------
 include/linux/pci.h                 |   3 -
 samples/v4l/v4l2-pci-skeleton.c     |   2 +-
 18 files changed, 289 insertions(+), 378 deletions(-)
 delete mode 100644 include/linux/pci-dma-compat.h

-- 
2.32.0


^ permalink raw reply	[flat|nested] 82+ messages in thread

* [PATCH 01/16] alpha: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
  (?)
@ 2022-01-06 21:46 ` Christophe JAILLET
  2022-01-10  8:43   ` Christoph Hellwig
  -1 siblings, 1 reply; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:46 UTC (permalink / raw)
  To: arnd, hch, akpm, rth, ink, mattst88
  Cc: linux-alpha, linux-kernel, kernel-janitors, Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Arnd Bergmann <arnd@arndb.de>
---
Reviewed in: https://lore.kernel.org/kernel-janitors/CAK8P3a2XwFveAd8nSCexZG3_UZga2PQ+EXHxQLGaWkLjCwrBxQ@mail.gmail.com/
---
 arch/alpha/include/asm/floppy.h |  7 ++++---
 arch/alpha/kernel/pci_iommu.c   | 12 ++++++------
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/arch/alpha/include/asm/floppy.h b/arch/alpha/include/asm/floppy.h
index 8dfdb3aa1d96..588758685439 100644
--- a/arch/alpha/include/asm/floppy.h
+++ b/arch/alpha/include/asm/floppy.h
@@ -43,17 +43,18 @@ alpha_fd_dma_setup(char *addr, unsigned long size, int mode, int io)
 	static int prev_dir;
 	int dir;
 
-	dir = (mode != DMA_MODE_READ) ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE;
+	dir = (mode != DMA_MODE_READ) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
 
 	if (bus_addr 
 	    && (addr != prev_addr || size != prev_size || dir != prev_dir)) {
 		/* different from last time -- unmap prev */
-		pci_unmap_single(isa_bridge, bus_addr, prev_size, prev_dir);
+		dma_unmap_single(&isa_bridge->dev, bus_addr, prev_size,
+				 prev_dir);
 		bus_addr = 0;
 	}
 
 	if (!bus_addr)	/* need to map it */
-		bus_addr = pci_map_single(isa_bridge, addr, size, dir);
+		bus_addr = dma_map_single(&isa_bridge->dev, addr, size, dir);
 
 	/* remember this one as prev */
 	prev_addr = addr;
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c
index 21f9ac101324..e83a02ed5267 100644
--- a/arch/alpha/kernel/pci_iommu.c
+++ b/arch/alpha/kernel/pci_iommu.c
@@ -333,7 +333,7 @@ static dma_addr_t alpha_pci_map_page(struct device *dev, struct page *page,
 	struct pci_dev *pdev = alpha_gendev_to_pci(dev);
 	int dac_allowed;
 
-	BUG_ON(dir == PCI_DMA_NONE);
+	BUG_ON(dir == DMA_NONE);
 
 	dac_allowed = pdev ? pci_dac_dma_supported(pdev, pdev->dma_mask) : 0; 
 	return pci_map_single_1(pdev, (char *)page_address(page) + offset, 
@@ -356,7 +356,7 @@ static void alpha_pci_unmap_page(struct device *dev, dma_addr_t dma_addr,
 	struct pci_iommu_arena *arena;
 	long dma_ofs, npages;
 
-	BUG_ON(dir == PCI_DMA_NONE);
+	BUG_ON(dir == DMA_NONE);
 
 	if (dma_addr >= __direct_map_base
 	    && dma_addr < __direct_map_base + __direct_map_size) {
@@ -460,7 +460,7 @@ static void alpha_pci_free_coherent(struct device *dev, size_t size,
 				    unsigned long attrs)
 {
 	struct pci_dev *pdev = alpha_gendev_to_pci(dev);
-	pci_unmap_single(pdev, dma_addr, size, PCI_DMA_BIDIRECTIONAL);
+	dma_unmap_single(&pdev->dev, dma_addr, size, DMA_BIDIRECTIONAL);
 	free_pages((unsigned long)cpu_addr, get_order(size));
 
 	DBGA2("pci_free_consistent: [%llx,%zx] from %ps\n",
@@ -639,7 +639,7 @@ static int alpha_pci_map_sg(struct device *dev, struct scatterlist *sg,
 	dma_addr_t max_dma;
 	int dac_allowed;
 
-	BUG_ON(dir == PCI_DMA_NONE);
+	BUG_ON(dir == DMA_NONE);
 
 	dac_allowed = dev ? pci_dac_dma_supported(pdev, pdev->dma_mask) : 0;
 
@@ -702,7 +702,7 @@ static int alpha_pci_map_sg(struct device *dev, struct scatterlist *sg,
 	/* Some allocation failed while mapping the scatterlist
 	   entries.  Unmap them now.  */
 	if (out > start)
-		pci_unmap_sg(pdev, start, out - start, dir);
+		dma_unmap_sg(&pdev->dev, start, out - start, dir);
 	return -ENOMEM;
 }
 
@@ -722,7 +722,7 @@ static void alpha_pci_unmap_sg(struct device *dev, struct scatterlist *sg,
 	dma_addr_t max_dma;
 	dma_addr_t fbeg, fend;
 
-	BUG_ON(dir == PCI_DMA_NONE);
+	BUG_ON(dir == DMA_NONE);
 
 	if (! alpha_mv.mv_pci_tbi)
 		return;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 02/16] floppy: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
@ 2022-01-06 21:47   ` Christophe JAILLET
  -1 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:47 UTC (permalink / raw)
  To: arnd, hch, akpm, mpe, benh, paulus
  Cc: linuxppc-dev, linux-kernel, kernel-janitors, Christophe JAILLET,
	Christoph Hellwig

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
Reviewed in: https://lore.kernel.org/kernel-janitors/YdLAqi+WQu4ZhAxE@infradead.org/
---
 arch/powerpc/include/asm/floppy.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/floppy.h b/arch/powerpc/include/asm/floppy.h
index 7af9a68fd949..f8ce178b43b7 100644
--- a/arch/powerpc/include/asm/floppy.h
+++ b/arch/powerpc/include/asm/floppy.h
@@ -134,17 +134,19 @@ static int hard_dma_setup(char *addr, unsigned long size, int mode, int io)
 	int dir;
 
 	doing_vdma = 0;
-	dir = (mode == DMA_MODE_READ) ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE;
+	dir = (mode == DMA_MODE_READ) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
 
 	if (bus_addr 
 	    && (addr != prev_addr || size != prev_size || dir != prev_dir)) {
 		/* different from last time -- unmap prev */
-		pci_unmap_single(isa_bridge_pcidev, bus_addr, prev_size, prev_dir);
+		dma_unmap_single(&isa_bridge_pcidev->dev, bus_addr, prev_size,
+				 prev_dir);
 		bus_addr = 0;
 	}
 
 	if (!bus_addr)	/* need to map it */
-		bus_addr = pci_map_single(isa_bridge_pcidev, addr, size, dir);
+		bus_addr = dma_map_single(&isa_bridge_pcidev->dev, addr, size,
+					  dir);
 
 	/* remember this one as prev */
 	prev_addr = addr;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 02/16] floppy: Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-06 21:47   ` Christophe JAILLET
  0 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:47 UTC (permalink / raw)
  To: arnd, hch, akpm, mpe, benh, paulus
  Cc: kernel-janitors, Christophe JAILLET, linuxppc-dev, linux-kernel,
	Christoph Hellwig

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
Reviewed in: https://lore.kernel.org/kernel-janitors/YdLAqi+WQu4ZhAxE@infradead.org/
---
 arch/powerpc/include/asm/floppy.h | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/include/asm/floppy.h b/arch/powerpc/include/asm/floppy.h
index 7af9a68fd949..f8ce178b43b7 100644
--- a/arch/powerpc/include/asm/floppy.h
+++ b/arch/powerpc/include/asm/floppy.h
@@ -134,17 +134,19 @@ static int hard_dma_setup(char *addr, unsigned long size, int mode, int io)
 	int dir;
 
 	doing_vdma = 0;
-	dir = (mode == DMA_MODE_READ) ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE;
+	dir = (mode == DMA_MODE_READ) ? DMA_FROM_DEVICE : DMA_TO_DEVICE;
 
 	if (bus_addr 
 	    && (addr != prev_addr || size != prev_size || dir != prev_dir)) {
 		/* different from last time -- unmap prev */
-		pci_unmap_single(isa_bridge_pcidev, bus_addr, prev_size, prev_dir);
+		dma_unmap_single(&isa_bridge_pcidev->dev, bus_addr, prev_size,
+				 prev_dir);
 		bus_addr = 0;
 	}
 
 	if (!bus_addr)	/* need to map it */
-		bus_addr = pci_map_single(isa_bridge_pcidev, addr, size, dir);
+		bus_addr = dma_map_single(&isa_bridge_pcidev->dev, addr, size,
+					  dir);
 
 	/* remember this one as prev */
 	prev_addr = addr;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 03/16] fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (2 preceding siblings ...)
  (?)
@ 2022-01-06 21:49 ` Christophe JAILLET
  2022-01-06 23:06   ` Arnd Bergmann
  2022-01-10  8:44   ` Christoph Hellwig
  -1 siblings, 2 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:49 UTC (permalink / raw)
  To: arnd, hch, akpm, hao.wu, trix, mdf, yilun.xu
  Cc: linux-fpga, linux-kernel, kernel-janitors, Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].


It has been hand modified to use 'dma_set_mask_and_coherent()' instead of
'pci_set_dma_mask()/pci_set_consistent_dma_mask()' when applicable.
This is less verbose.

The explicit 'ret = -EIO;' has been removed because
'dma_set_mask_and_coherent()' returns 0 or -EIO, so its return code can be
used directly.


[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Reviewed-by: Xu Yilun <yilun.xu@intel.com>
---
Reviewed in: https://lore.kernel.org/kernel-janitors/20210823025635.GA620145@yilunxu-OptiPlex-7050/
---
 drivers/fpga/dfl-pci.c | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/drivers/fpga/dfl-pci.c b/drivers/fpga/dfl-pci.c
index 4d68719e608f..96a11084bef4 100644
--- a/drivers/fpga/dfl-pci.c
+++ b/drivers/fpga/dfl-pci.c
@@ -15,6 +15,7 @@
  */
 
 #include <linux/pci.h>
+#include <linux/dma-mapping.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -354,16 +355,10 @@ int cci_pci_probe(struct pci_dev *pcidev, const struct pci_device_id *pcidevid)
 
 	pci_set_master(pcidev);
 
-	if (!pci_set_dma_mask(pcidev, DMA_BIT_MASK(64))) {
-		ret = pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(64));
-		if (ret)
-			goto disable_error_report_exit;
-	} else if (!pci_set_dma_mask(pcidev, DMA_BIT_MASK(32))) {
-		ret = pci_set_consistent_dma_mask(pcidev, DMA_BIT_MASK(32));
-		if (ret)
-			goto disable_error_report_exit;
-	} else {
-		ret = -EIO;
+	ret = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(64));
+	if (ret)
+		ret = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(32));
+	if (ret) {
 		dev_err(&pcidev->dev, "No suitable DMA support available.\n");
 		goto disable_error_report_exit;
 	}
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 04/16] media: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (3 preceding siblings ...)
  (?)
@ 2022-01-06 21:50 ` Christophe JAILLET
  2022-01-07  0:51   ` Arnd Bergmann
  2022-01-10  8:44   ` Christoph Hellwig
  -1 siblings, 2 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:50 UTC (permalink / raw)
  To: arnd, hch, akpm, awalls, mchehab
  Cc: linux-media, linux-kernel, kernel-janitors, Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/media/pci/cx18/cx18-queue.h |  6 +++---
 drivers/media/pci/ivtv/ivtv-queue.h | 25 ++++++++++++++-----------
 drivers/media/pci/ivtv/ivtv-udma.h  |  8 ++++----
 3 files changed, 21 insertions(+), 18 deletions(-)

diff --git a/drivers/media/pci/cx18/cx18-queue.h b/drivers/media/pci/cx18/cx18-queue.h
index e0a34bd6539e..26f2097c0496 100644
--- a/drivers/media/pci/cx18/cx18-queue.h
+++ b/drivers/media/pci/cx18/cx18-queue.h
@@ -15,15 +15,15 @@
 static inline void cx18_buf_sync_for_cpu(struct cx18_stream *s,
 	struct cx18_buffer *buf)
 {
-	pci_dma_sync_single_for_cpu(s->cx->pci_dev, buf->dma_handle,
+	dma_sync_single_for_cpu(&s->cx->pci_dev->dev, buf->dma_handle,
 				s->buf_size, s->dma);
 }
 
 static inline void cx18_buf_sync_for_device(struct cx18_stream *s,
 	struct cx18_buffer *buf)
 {
-	pci_dma_sync_single_for_device(s->cx->pci_dev, buf->dma_handle,
-				s->buf_size, s->dma);
+	dma_sync_single_for_device(&s->cx->pci_dev->dev, buf->dma_handle,
+				   s->buf_size, s->dma);
 }
 
 void _cx18_mdl_sync_for_device(struct cx18_stream *s, struct cx18_mdl *mdl);
diff --git a/drivers/media/pci/ivtv/ivtv-queue.h b/drivers/media/pci/ivtv/ivtv-queue.h
index 586b0bf63c26..b8fc2669a358 100644
--- a/drivers/media/pci/ivtv/ivtv-queue.h
+++ b/drivers/media/pci/ivtv/ivtv-queue.h
@@ -17,20 +17,20 @@
 
 static inline int ivtv_might_use_pio(struct ivtv_stream *s)
 {
-	return s->dma == PCI_DMA_NONE || (SLICED_VBI_PIO && s->type == IVTV_ENC_STREAM_TYPE_VBI);
+	return s->dma == DMA_NONE || (SLICED_VBI_PIO && s->type == IVTV_ENC_STREAM_TYPE_VBI);
 }
 
 static inline int ivtv_use_pio(struct ivtv_stream *s)
 {
 	struct ivtv *itv = s->itv;
 
-	return s->dma == PCI_DMA_NONE ||
+	return s->dma == DMA_NONE ||
 	    (SLICED_VBI_PIO && s->type == IVTV_ENC_STREAM_TYPE_VBI && itv->vbi.sliced_in->service_set);
 }
 
 static inline int ivtv_might_use_dma(struct ivtv_stream *s)
 {
-	return s->dma != PCI_DMA_NONE;
+	return s->dma != DMA_NONE;
 }
 
 static inline int ivtv_use_dma(struct ivtv_stream *s)
@@ -41,15 +41,16 @@ static inline int ivtv_use_dma(struct ivtv_stream *s)
 static inline void ivtv_buf_sync_for_cpu(struct ivtv_stream *s, struct ivtv_buffer *buf)
 {
 	if (ivtv_use_dma(s))
-		pci_dma_sync_single_for_cpu(s->itv->pdev, buf->dma_handle,
-				s->buf_size + 256, s->dma);
+		dma_sync_single_for_cpu(&s->itv->pdev->dev, buf->dma_handle,
+					s->buf_size + 256, s->dma);
 }
 
 static inline void ivtv_buf_sync_for_device(struct ivtv_stream *s, struct ivtv_buffer *buf)
 {
 	if (ivtv_use_dma(s))
-		pci_dma_sync_single_for_device(s->itv->pdev, buf->dma_handle,
-				s->buf_size + 256, s->dma);
+		dma_sync_single_for_device(&s->itv->pdev->dev,
+					   buf->dma_handle, s->buf_size + 256,
+					   s->dma);
 }
 
 int ivtv_buf_copy_from_user(struct ivtv_stream *s, struct ivtv_buffer *buf, const char __user *src, int copybytes);
@@ -70,15 +71,17 @@ void ivtv_stream_free(struct ivtv_stream *s);
 static inline void ivtv_stream_sync_for_cpu(struct ivtv_stream *s)
 {
 	if (ivtv_use_dma(s))
-		pci_dma_sync_single_for_cpu(s->itv->pdev, s->sg_handle,
-			sizeof(struct ivtv_sg_element), PCI_DMA_TODEVICE);
+		dma_sync_single_for_cpu(&s->itv->pdev->dev, s->sg_handle,
+					sizeof(struct ivtv_sg_element),
+					DMA_TO_DEVICE);
 }
 
 static inline void ivtv_stream_sync_for_device(struct ivtv_stream *s)
 {
 	if (ivtv_use_dma(s))
-		pci_dma_sync_single_for_device(s->itv->pdev, s->sg_handle,
-			sizeof(struct ivtv_sg_element), PCI_DMA_TODEVICE);
+		dma_sync_single_for_device(&s->itv->pdev->dev, s->sg_handle,
+					   sizeof(struct ivtv_sg_element),
+					   DMA_TO_DEVICE);
 }
 
 #endif
diff --git a/drivers/media/pci/ivtv/ivtv-udma.h b/drivers/media/pci/ivtv/ivtv-udma.h
index 0eef104e03b9..12b9426b2db2 100644
--- a/drivers/media/pci/ivtv/ivtv-udma.h
+++ b/drivers/media/pci/ivtv/ivtv-udma.h
@@ -23,14 +23,14 @@ void ivtv_udma_start(struct ivtv *itv);
 
 static inline void ivtv_udma_sync_for_device(struct ivtv *itv)
 {
-	pci_dma_sync_single_for_device(itv->pdev, itv->udma.SG_handle,
-		sizeof(itv->udma.SGarray), PCI_DMA_TODEVICE);
+	dma_sync_single_for_device(&itv->pdev->dev, itv->udma.SG_handle,
+				   sizeof(itv->udma.SGarray), DMA_TO_DEVICE);
 }
 
 static inline void ivtv_udma_sync_for_cpu(struct ivtv *itv)
 {
-	pci_dma_sync_single_for_cpu(itv->pdev, itv->udma.SG_handle,
-		sizeof(itv->udma.SGarray), PCI_DMA_TODEVICE);
+	dma_sync_single_for_cpu(&itv->pdev->dev, itv->udma.SG_handle,
+				sizeof(itv->udma.SGarray), DMA_TO_DEVICE);
 }
 
 #endif
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 05/16] agp/intel: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (4 preceding siblings ...)
  (?)
@ 2022-01-06 21:51 ` Christophe JAILLET
  2022-01-07  0:53   ` Arnd Bergmann
  2022-01-10  8:45   ` Christoph Hellwig
  -1 siblings, 2 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:51 UTC (permalink / raw)
  To: arnd, hch, akpm, airlied
  Cc: linux-kernel, kernel-janitors, Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/char/agp/intel-gtt.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
index c53cc9868cd8..79a1b65527c2 100644
--- a/drivers/char/agp/intel-gtt.c
+++ b/drivers/char/agp/intel-gtt.c
@@ -111,8 +111,8 @@ static int intel_gtt_map_memory(struct page **pages,
 	for_each_sg(st->sgl, sg, num_entries, i)
 		sg_set_page(sg, pages[i], PAGE_SIZE, 0);
 
-	if (!pci_map_sg(intel_private.pcidev,
-			st->sgl, st->nents, PCI_DMA_BIDIRECTIONAL))
+	if (!dma_map_sg(&intel_private.pcidev->dev, st->sgl, st->nents,
+			DMA_BIDIRECTIONAL))
 		goto err;
 
 	return 0;
@@ -127,8 +127,8 @@ static void intel_gtt_unmap_memory(struct scatterlist *sg_list, int num_sg)
 	struct sg_table st;
 	DBG("try unmapping %lu pages\n", (unsigned long)mem->page_count);
 
-	pci_unmap_sg(intel_private.pcidev, sg_list,
-		     num_sg, PCI_DMA_BIDIRECTIONAL);
+	dma_unmap_sg(&intel_private.pcidev->dev, sg_list, num_sg,
+		     DMA_BIDIRECTIONAL);
 
 	st.sgl = sg_list;
 	st.orig_nents = st.nents = num_sg;
@@ -303,9 +303,9 @@ static int intel_gtt_setup_scratch_page(void)
 	set_pages_uc(page, 1);
 
 	if (intel_private.needs_dmar) {
-		dma_addr = pci_map_page(intel_private.pcidev, page, 0,
-				    PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
-		if (pci_dma_mapping_error(intel_private.pcidev, dma_addr)) {
+		dma_addr = dma_map_page(&intel_private.pcidev->dev, page, 0,
+					PAGE_SIZE, DMA_BIDIRECTIONAL);
+		if (dma_mapping_error(&intel_private.pcidev->dev, dma_addr)) {
 			__free_page(page);
 			return -EINVAL;
 		}
@@ -552,9 +552,9 @@ static void intel_gtt_teardown_scratch_page(void)
 {
 	set_pages_wb(intel_private.scratch_page, 1);
 	if (intel_private.needs_dmar)
-		pci_unmap_page(intel_private.pcidev,
-			       intel_private.scratch_page_dma,
-			       PAGE_SIZE, PCI_DMA_BIDIRECTIONAL);
+		dma_unmap_page(&intel_private.pcidev->dev,
+			       intel_private.scratch_page_dma, PAGE_SIZE,
+			       DMA_BIDIRECTIONAL);
 	__free_page(intel_private.scratch_page);
 }
 
@@ -1412,13 +1412,13 @@ int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
 
 	if (bridge) {
 		mask = intel_private.driver->dma_mask_size;
-		if (pci_set_dma_mask(intel_private.pcidev, DMA_BIT_MASK(mask)))
+		if (dma_set_mask(&intel_private.pcidev->dev, DMA_BIT_MASK(mask)))
 			dev_err(&intel_private.pcidev->dev,
 				"set gfx device dma mask %d-bit failed!\n",
 				mask);
 		else
-			pci_set_consistent_dma_mask(intel_private.pcidev,
-						    DMA_BIT_MASK(mask));
+			dma_set_coherent_mask(&intel_private.pcidev->dev,
+					      DMA_BIT_MASK(mask));
 	}
 
 	if (intel_gtt_init() != 0) {
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 06/16] sparc: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (5 preceding siblings ...)
  (?)
@ 2022-01-06 21:51 ` Christophe JAILLET
  2022-01-07  0:54   ` Arnd Bergmann
                     ` (2 more replies)
  -1 siblings, 3 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:51 UTC (permalink / raw)
  To: arnd, hch, akpm, davem
  Cc: sparclinux, linux-kernel, kernel-janitors, Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 arch/sparc/kernel/ioport.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/sparc/kernel/ioport.c b/arch/sparc/kernel/ioport.c
index 57a72c46eddb..4e4f3d3263e4 100644
--- a/arch/sparc/kernel/ioport.c
+++ b/arch/sparc/kernel/ioport.c
@@ -309,7 +309,7 @@ arch_initcall(sparc_register_ioport);
 void arch_sync_dma_for_cpu(phys_addr_t paddr, size_t size,
 		enum dma_data_direction dir)
 {
-	if (dir != PCI_DMA_TODEVICE &&
+	if (dir != DMA_TO_DEVICE &&
 	    sparc_cpu_model == sparc_leon &&
 	    !sparc_leon3_snooping_enabled())
 		leon_flush_dcache_all();
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 07/16] dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (6 preceding siblings ...)
  (?)
@ 2022-01-06 21:52 ` Christophe JAILLET
  2022-01-07  0:56   ` Arnd Bergmann
  2022-01-10  8:45   ` Christoph Hellwig
  -1 siblings, 2 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:52 UTC (permalink / raw)
  To: arnd, hch, akpm, vkoul
  Cc: dmaengine, linux-kernel, kernel-janitors, Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/dma/pch_dma.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c
index 1da04112fcdb..c359decc07a3 100644
--- a/drivers/dma/pch_dma.c
+++ b/drivers/dma/pch_dma.c
@@ -835,7 +835,7 @@ static int pch_dma_probe(struct pci_dev *pdev,
 		goto err_disable_pdev;
 	}
 
-	err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+	err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
 	if (err) {
 		dev_err(&pdev->dev, "Cannot set proper DMA config\n");
 		goto err_free_res;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 08/16] rapidio/tsi721: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (7 preceding siblings ...)
  (?)
@ 2022-01-06 21:52 ` Christophe JAILLET
  2022-01-07  1:00   ` Arnd Bergmann
  2022-01-10  8:46   ` Christoph Hellwig
  -1 siblings, 2 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:52 UTC (permalink / raw)
  To: arnd, hch, akpm, mporter, alex.bou9
  Cc: linux-kernel, kernel-janitors, Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/rapidio/devices/tsi721.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/rapidio/devices/tsi721.c b/drivers/rapidio/devices/tsi721.c
index 4dd31dd9feea..b3134744fb55 100644
--- a/drivers/rapidio/devices/tsi721.c
+++ b/drivers/rapidio/devices/tsi721.c
@@ -2836,17 +2836,17 @@ static int tsi721_probe(struct pci_dev *pdev,
 	}
 
 	/* Configure DMA attributes. */
-	if (pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
-		err = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+	if (dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) {
+		err = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
 		if (err) {
 			tsi_err(&pdev->dev, "Unable to set DMA mask");
 			goto err_unmap_bars;
 		}
 
-		if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32)))
+		if (dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)))
 			tsi_info(&pdev->dev, "Unable to set consistent DMA mask");
 	} else {
-		err = pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64));
+		err = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64));
 		if (err)
 			tsi_info(&pdev->dev, "Unable to set consistent DMA mask");
 	}
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 09/16] media: v4l2-pci-skeleton: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (8 preceding siblings ...)
  (?)
@ 2022-01-06 21:53 ` Christophe JAILLET
  2022-01-07  1:01   ` Arnd Bergmann
  2022-01-10  8:46   ` Christoph Hellwig
  -1 siblings, 2 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:53 UTC (permalink / raw)
  To: arnd, hch, akpm; +Cc: linux-kernel, kernel-janitors, Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].

[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 samples/v4l/v4l2-pci-skeleton.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/samples/v4l/v4l2-pci-skeleton.c b/samples/v4l/v4l2-pci-skeleton.c
index 3fa6582b4a68..6311b7465220 100644
--- a/samples/v4l/v4l2-pci-skeleton.c
+++ b/samples/v4l/v4l2-pci-skeleton.c
@@ -766,7 +766,7 @@ static int skeleton_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
 	ret = pci_enable_device(pdev);
 	if (ret)
 		return ret;
-	ret = pci_set_dma_mask(pdev, DMA_BIT_MASK(32));
+	ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(32));
 	if (ret) {
 		dev_err(&pdev->dev, "no suitable DMA available.\n");
 		goto disable_pci;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 10/16] scsi: message: fusion: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (9 preceding siblings ...)
  (?)
@ 2022-01-06 21:54 ` Christophe JAILLET
  2022-01-10  8:47   ` Christoph Hellwig
  -1 siblings, 1 reply; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:54 UTC (permalink / raw)
  To: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani
  Cc: MPT-FusionLinux.pdl, linux-scsi, linux-kernel, kernel-janitors,
	Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].

A coccinelle script has been used to perform the needed transformation.
It can be found in [3].


In this patch, all functions but pci_alloc_consistent() are handled.
pci_alloc_consistent() needs more attention and explanation.


[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
[3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/message/fusion/mptbase.c | 94 +++++++++++++++++---------------
 drivers/message/fusion/mptctl.c  | 51 ++++++++++-------
 drivers/message/fusion/mptlan.c  | 90 ++++++++++++++++--------------
 drivers/message/fusion/mptsas.c  | 51 ++++++++---------
 4 files changed, 154 insertions(+), 132 deletions(-)

diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index 24a4532053e4..5a3b7b56e85a 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -316,8 +316,8 @@ mpt_is_discovery_complete(MPT_ADAPTER *ioc)
 		rc = 1;
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-	    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
  out:
 	return rc;
 }
@@ -1661,16 +1661,14 @@ mpt_mapresources(MPT_ADAPTER *ioc)
 		const uint64_t required_mask = dma_get_required_mask
 		    (&pdev->dev);
 		if (required_mask > DMA_BIT_MASK(32)
-			&& !pci_set_dma_mask(pdev, DMA_BIT_MASK(64))
-			&& !pci_set_consistent_dma_mask(pdev,
-						 DMA_BIT_MASK(64))) {
+			&& !dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))
+			&& !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(64))) {
 			ioc->dma_mask = DMA_BIT_MASK(64);
 			dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
 				": 64 BIT PCI BUS DMA ADDRESSING SUPPORTED\n",
 				ioc->name));
-		} else if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
-			&& !pci_set_consistent_dma_mask(pdev,
-						DMA_BIT_MASK(32))) {
+		} else if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))
+			   && !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32))) {
 			ioc->dma_mask = DMA_BIT_MASK(32);
 			dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
 				": 32 BIT PCI BUS DMA ADDRESSING SUPPORTED\n",
@@ -1681,9 +1679,8 @@ mpt_mapresources(MPT_ADAPTER *ioc)
 			goto out_pci_release_region;
 		}
 	} else {
-		if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))
-			&& !pci_set_consistent_dma_mask(pdev,
-						DMA_BIT_MASK(32))) {
+		if (!dma_set_mask(&pdev->dev, DMA_BIT_MASK(32))
+			&& !dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32))) {
 			ioc->dma_mask = DMA_BIT_MASK(32);
 			dinitprintk(ioc, printk(MYIOC_s_INFO_FMT
 				": 32 BIT PCI BUS DMA ADDRESSING SUPPORTED\n",
@@ -2769,9 +2766,9 @@ mpt_adapter_disable(MPT_ADAPTER *ioc)
 
 	if (ioc->spi_data.pIocPg4 != NULL) {
 		sz = ioc->spi_data.IocPg4Sz;
-		pci_free_consistent(ioc->pcidev, sz,
-			ioc->spi_data.pIocPg4,
-			ioc->spi_data.IocPg4_dma);
+		dma_free_coherent(&ioc->pcidev->dev, sz,
+				  ioc->spi_data.pIocPg4,
+				  ioc->spi_data.IocPg4_dma);
 		ioc->spi_data.pIocPg4 = NULL;
 		ioc->alloc_total -= sz;
 	}
@@ -3548,7 +3545,8 @@ mpt_free_fw_memory(MPT_ADAPTER *ioc)
 	sz = ioc->facts.FWImageSize;
 	dinitprintk(ioc, printk(MYIOC_s_DEBUG_FMT "free_fw_memory: FW Image  @ %p[%p], sz=%d[%x] bytes\n",
 		 ioc->name, ioc->cached_fw, (void *)(ulong)ioc->cached_fw_dma, sz, sz));
-	pci_free_consistent(ioc->pcidev, sz, ioc->cached_fw, ioc->cached_fw_dma);
+	dma_free_coherent(&ioc->pcidev->dev, sz, ioc->cached_fw,
+			  ioc->cached_fw_dma);
 	ioc->alloc_total -= sz;
 	ioc->cached_fw = NULL;
 }
@@ -4447,9 +4445,8 @@ PrimeIocFifos(MPT_ADAPTER *ioc)
 		 */
 		if (ioc->pcidev->device == MPI_MANUFACTPAGE_DEVID_SAS1078 &&
 		    ioc->dma_mask > DMA_BIT_MASK(35)) {
-			if (!pci_set_dma_mask(ioc->pcidev, DMA_BIT_MASK(32))
-			    && !pci_set_consistent_dma_mask(ioc->pcidev,
-			    DMA_BIT_MASK(32))) {
+			if (!dma_set_mask(&ioc->pcidev->dev, DMA_BIT_MASK(32))
+			    && !dma_set_coherent_mask(&ioc->pcidev->dev, DMA_BIT_MASK(32))) {
 				dma_mask = DMA_BIT_MASK(35);
 				d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
 				    "setting 35 bit addressing for "
@@ -4457,10 +4454,10 @@ PrimeIocFifos(MPT_ADAPTER *ioc)
 				    ioc->name));
 			} else {
 				/*Reseting DMA mask to 64 bit*/
-				pci_set_dma_mask(ioc->pcidev,
-					DMA_BIT_MASK(64));
-				pci_set_consistent_dma_mask(ioc->pcidev,
-					DMA_BIT_MASK(64));
+				dma_set_mask(&ioc->pcidev->dev,
+					     DMA_BIT_MASK(64));
+				dma_set_coherent_mask(&ioc->pcidev->dev,
+						      DMA_BIT_MASK(64));
 
 				printk(MYIOC_s_ERR_FMT
 				    "failed setting 35 bit addressing for "
@@ -4595,8 +4592,8 @@ PrimeIocFifos(MPT_ADAPTER *ioc)
 		alloc_dma += ioc->reply_sz;
 	}
 
-	if (dma_mask == DMA_BIT_MASK(35) && !pci_set_dma_mask(ioc->pcidev,
-	    ioc->dma_mask) && !pci_set_consistent_dma_mask(ioc->pcidev,
+	if (dma_mask == DMA_BIT_MASK(35) && !dma_set_mask(&ioc->pcidev->dev,
+	    ioc->dma_mask) && !dma_set_coherent_mask(&ioc->pcidev->dev,
 	    ioc->dma_mask))
 		d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
 		    "restoring 64 bit addressing\n", ioc->name));
@@ -4620,8 +4617,8 @@ PrimeIocFifos(MPT_ADAPTER *ioc)
 		ioc->sense_buf_pool = NULL;
 	}
 
-	if (dma_mask == DMA_BIT_MASK(35) && !pci_set_dma_mask(ioc->pcidev,
-	    DMA_BIT_MASK(64)) && !pci_set_consistent_dma_mask(ioc->pcidev,
+	if (dma_mask == DMA_BIT_MASK(35) && !dma_set_mask(&ioc->pcidev->dev,
+	    DMA_BIT_MASK(64)) && !dma_set_coherent_mask(&ioc->pcidev->dev,
 	    DMA_BIT_MASK(64)))
 		d36memprintk(ioc, printk(MYIOC_s_DEBUG_FMT
 		    "restoring 64 bit addressing\n", ioc->name));
@@ -4982,7 +4979,8 @@ GetLanConfigPages(MPT_ADAPTER *ioc)
 
 			}
 
-			pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage0_alloc, page0_dma);
+			dma_free_coherent(&ioc->pcidev->dev, data_sz,
+					  (u8 *)ppage0_alloc, page0_dma);
 
 			/* FIXME!
 			 *	Normalize endianness of structure data,
@@ -5026,7 +5024,8 @@ GetLanConfigPages(MPT_ADAPTER *ioc)
 			memcpy(&ioc->lan_cnfg_page1, ppage1_alloc, copy_sz);
 		}
 
-		pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage1_alloc, page1_dma);
+		dma_free_coherent(&ioc->pcidev->dev, data_sz,
+				  (u8 *)ppage1_alloc, page1_dma);
 
 		/* FIXME!
 		 *	Normalize endianness of structure data,
@@ -5325,7 +5324,8 @@ GetIoUnitPage2(MPT_ADAPTER *ioc)
 		if ((rc = mpt_config(ioc, &cfg)) == 0)
 			ioc->biosVersion = le32_to_cpu(ppage_alloc->BiosVersion);
 
-		pci_free_consistent(ioc->pcidev, data_sz, (u8 *) ppage_alloc, page_dma);
+		dma_free_coherent(&ioc->pcidev->dev, data_sz,
+				  (u8 *)ppage_alloc, page_dma);
 	}
 
 	return rc;
@@ -5456,7 +5456,9 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
 				}
 			}
 			if (pbuf) {
-				pci_free_consistent(ioc->pcidev, header.PageLength * 4, pbuf, buf_dma);
+				dma_free_coherent(&ioc->pcidev->dev,
+						  header.PageLength * 4, pbuf,
+						  buf_dma);
 			}
 		}
 	}
@@ -5543,7 +5545,9 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
 				}
 			}
 
-			pci_free_consistent(ioc->pcidev, header.PageLength * 4, pbuf, buf_dma);
+			dma_free_coherent(&ioc->pcidev->dev,
+					  header.PageLength * 4, pbuf,
+					  buf_dma);
 		}
 	}
 
@@ -5707,8 +5711,8 @@ mpt_inactive_raid_volumes(MPT_ADAPTER *ioc, u8 channel, u8 id)
 
  out:
 	if (buffer)
-		pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-		    dma_handle);
+		dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				  buffer, dma_handle);
 }
 
 /**
@@ -5776,8 +5780,8 @@ mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num,
  out:
 
 	if (buffer)
-		pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-		    dma_handle);
+		dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				  buffer, dma_handle);
 
 	return rc;
 }
@@ -5840,8 +5844,8 @@ mpt_raid_phys_disk_get_num_paths(MPT_ADAPTER *ioc, u8 phys_disk_num)
  out:
 
 	if (buffer)
-		pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-		    dma_handle);
+		dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				  buffer, dma_handle);
 
 	return rc;
 }
@@ -5929,8 +5933,8 @@ mpt_raid_phys_disk_pg1(MPT_ADAPTER *ioc, u8 phys_disk_num,
  out:
 
 	if (buffer)
-		pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-		    dma_handle);
+		dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				  buffer, dma_handle);
 
 	return rc;
 }
@@ -6011,7 +6015,7 @@ mpt_findImVolumes(MPT_ADAPTER *ioc)
 		    pIoc2->RaidVolume[i].VolumeID);
 
  out:
-	pci_free_consistent(ioc->pcidev, iocpage2sz, pIoc2, ioc2_dma);
+	dma_free_coherent(&ioc->pcidev->dev, iocpage2sz, pIoc2, ioc2_dma);
 
 	return rc;
 }
@@ -6070,7 +6074,7 @@ mpt_read_ioc_pg_3(MPT_ADAPTER *ioc)
 		}
 	}
 
-	pci_free_consistent(ioc->pcidev, iocpage3sz, pIoc3, ioc3_dma);
+	dma_free_coherent(&ioc->pcidev->dev, iocpage3sz, pIoc3, ioc3_dma);
 
 	return 0;
 }
@@ -6122,7 +6126,8 @@ mpt_read_ioc_pg_4(MPT_ADAPTER *ioc)
 		ioc->spi_data.IocPg4_dma = ioc4_dma;
 		ioc->spi_data.IocPg4Sz = iocpage4sz;
 	} else {
-		pci_free_consistent(ioc->pcidev, iocpage4sz, pIoc4, ioc4_dma);
+		dma_free_coherent(&ioc->pcidev->dev, iocpage4sz, pIoc4,
+				  ioc4_dma);
 		ioc->spi_data.pIocPg4 = NULL;
 		ioc->alloc_total -= iocpage4sz;
 	}
@@ -6210,7 +6215,7 @@ mpt_read_ioc_pg_1(MPT_ADAPTER *ioc)
 		}
 	}
 
-	pci_free_consistent(ioc->pcidev, iocpage1sz, pIoc1, ioc1_dma);
+	dma_free_coherent(&ioc->pcidev->dev, iocpage1sz, pIoc1, ioc1_dma);
 
 	return;
 }
@@ -6255,7 +6260,8 @@ mpt_get_manufacturing_pg_0(MPT_ADAPTER *ioc)
 out:
 
 	if (pbuf)
-		pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, pbuf, buf_dma);
+		dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4, pbuf,
+				  buf_dma);
 }
 
 /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c
index ae433c150b37..0f447179e3f5 100644
--- a/drivers/message/fusion/mptctl.c
+++ b/drivers/message/fusion/mptctl.c
@@ -1046,9 +1046,9 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
 		goto free_and_fail;
 
 	if (sgdir & 0x04000000)
-		dir = PCI_DMA_TODEVICE;
+		dir = DMA_TO_DEVICE;
 	else
-		dir = PCI_DMA_FROMDEVICE;
+		dir = DMA_FROM_DEVICE;
 
 	/* At start:
 	 *	sgl = sglbuf = point to beginning of sg buffer
@@ -1080,8 +1080,9 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
 
 			bytes_allocd += this_alloc;
 			sgl->FlagsLength = (0x10000000|sgdir|this_alloc);
-			dma_addr = pci_map_single(ioc->pcidev,
-				buflist[buflist_ent].kptr, this_alloc, dir);
+			dma_addr = dma_map_single(&ioc->pcidev->dev,
+						  buflist[buflist_ent].kptr,
+						  this_alloc, dir);
 			sgl->Address = dma_addr;
 
 			fragcnt++;
@@ -1140,9 +1141,11 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
 			kptr = buflist[i].kptr;
 			len = buflist[i].len;
 
-			pci_free_consistent(ioc->pcidev, len, kptr, dma_addr);
+			dma_free_coherent(&ioc->pcidev->dev, len, kptr,
+					  dma_addr);
 		}
-		pci_free_consistent(ioc->pcidev, MAX_SGL_BYTES, sglbuf, *sglbuf_dma);
+		dma_free_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES, sglbuf,
+				  *sglbuf_dma);
 	}
 	kfree(buflist);
 	return NULL;
@@ -1162,9 +1165,9 @@ kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma, struct buflist *buflist, MPT_ADAPTE
 	int		 n = 0;
 
 	if (sg->FlagsLength & 0x04000000)
-		dir = PCI_DMA_TODEVICE;
+		dir = DMA_TO_DEVICE;
 	else
-		dir = PCI_DMA_FROMDEVICE;
+		dir = DMA_FROM_DEVICE;
 
 	nib = (sg->FlagsLength & 0xF0000000) >> 28;
 	while (! (nib & 0x4)) { /* eob */
@@ -1179,8 +1182,10 @@ kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma, struct buflist *buflist, MPT_ADAPTE
 			dma_addr = sg->Address;
 			kptr = bl->kptr;
 			len = bl->len;
-			pci_unmap_single(ioc->pcidev, dma_addr, len, dir);
-			pci_free_consistent(ioc->pcidev, len, kptr, dma_addr);
+			dma_unmap_single(&ioc->pcidev->dev, dma_addr, len,
+					 dir);
+			dma_free_coherent(&ioc->pcidev->dev, len, kptr,
+					  dma_addr);
 			n++;
 		}
 		sg++;
@@ -1197,12 +1202,12 @@ kfree_sgl(MptSge_t *sgl, dma_addr_t sgl_dma, struct buflist *buflist, MPT_ADAPTE
 		dma_addr = sg->Address;
 		kptr = bl->kptr;
 		len = bl->len;
-		pci_unmap_single(ioc->pcidev, dma_addr, len, dir);
-		pci_free_consistent(ioc->pcidev, len, kptr, dma_addr);
+		dma_unmap_single(&ioc->pcidev->dev, dma_addr, len, dir);
+		dma_free_coherent(&ioc->pcidev->dev, len, kptr, dma_addr);
 		n++;
 	}
 
-	pci_free_consistent(ioc->pcidev, MAX_SGL_BYTES, sgl, sgl_dma);
+	dma_free_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES, sgl, sgl_dma);
 	kfree(buflist);
 	dctlprintk(ioc, printk(MYIOC_s_DEBUG_FMT "-SG: Free'd 1 SGL buf + %d kbufs!\n",
 	    ioc->name, n));
@@ -2283,13 +2288,13 @@ mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __u
 	/* Free the allocated memory.
 	 */
 	if (bufOut.kptr != NULL) {
-		pci_free_consistent(ioc->pcidev,
-			bufOut.len, (void *) bufOut.kptr, dma_addr_out);
+		dma_free_coherent(&ioc->pcidev->dev, bufOut.len,
+				  (void *)bufOut.kptr, dma_addr_out);
 	}
 
 	if (bufIn.kptr != NULL) {
-		pci_free_consistent(ioc->pcidev,
-			bufIn.len, (void *) bufIn.kptr, dma_addr_in);
+		dma_free_coherent(&ioc->pcidev->dev, bufIn.len,
+				  (void *)bufIn.kptr, dma_addr_in);
 	}
 
 	/* mf is null if command issued successfully
@@ -2405,7 +2410,9 @@ mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
 							pdata->BoardTracerNumber, 24);
 					}
 				}
-				pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, pbuf, buf_dma);
+				dma_free_coherent(&ioc->pcidev->dev,
+						  hdr.PageLength * 4, pbuf,
+						  buf_dma);
 				pbuf = NULL;
 			}
 		}
@@ -2519,7 +2526,7 @@ mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
 	SET_MGMT_MSG_CONTEXT(ioc->ioctl_cmds.msg_context, 0);
 
 	if (pbuf)
-		pci_free_consistent(ioc->pcidev, 4, pbuf, buf_dma);
+		dma_free_coherent(&ioc->pcidev->dev, 4, pbuf, buf_dma);
 
 	/* Copy the data from kernel memory to user memory
 	 */
@@ -2623,7 +2630,8 @@ mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
 				karg.negotiated_speed = HP_DEV_SPEED_ASYNC;
 		}
 
-		pci_free_consistent(ioc->pcidev, data_sz, (u8 *) pg0_alloc, page_dma);
+		dma_free_coherent(&ioc->pcidev->dev, data_sz, (u8 *)pg0_alloc,
+				  page_dma);
 	}
 
 	/* Set defaults
@@ -2658,7 +2666,8 @@ mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
 				karg.phase_errors = (u32) le16_to_cpu(pg3_alloc->PhaseErrorCount);
 				karg.parity_errors = (u32) le16_to_cpu(pg3_alloc->ParityErrorCount);
 			}
-			pci_free_consistent(ioc->pcidev, data_sz, (u8 *) pg3_alloc, page_dma);
+			dma_free_coherent(&ioc->pcidev->dev, data_sz,
+					  (u8 *)pg3_alloc, page_dma);
 		}
 	}
 	hd = shost_priv(ioc->sh);
diff --git a/drivers/message/fusion/mptlan.c b/drivers/message/fusion/mptlan.c
index 117fa4ebf6d7..ddf9b7a2f7c9 100644
--- a/drivers/message/fusion/mptlan.c
+++ b/drivers/message/fusion/mptlan.c
@@ -516,9 +516,9 @@ mpt_lan_close(struct net_device *dev)
 		if (priv->RcvCtl[i].skb != NULL) {
 /**/			dlprintk((KERN_INFO MYNAM "/lan_close: bucket %05x "
 /**/				  "is still out\n", i));
-			pci_unmap_single(mpt_dev->pcidev, priv->RcvCtl[i].dma,
-					 priv->RcvCtl[i].len,
-					 PCI_DMA_FROMDEVICE);
+			dma_unmap_single(&mpt_dev->pcidev->dev,
+					 priv->RcvCtl[i].dma,
+					 priv->RcvCtl[i].len, DMA_FROM_DEVICE);
 			dev_kfree_skb(priv->RcvCtl[i].skb);
 		}
 	}
@@ -528,9 +528,9 @@ mpt_lan_close(struct net_device *dev)
 
 	for (i = 0; i < priv->tx_max_out; i++) {
 		if (priv->SendCtl[i].skb != NULL) {
-			pci_unmap_single(mpt_dev->pcidev, priv->SendCtl[i].dma,
-					 priv->SendCtl[i].len,
-					 PCI_DMA_TODEVICE);
+			dma_unmap_single(&mpt_dev->pcidev->dev,
+					 priv->SendCtl[i].dma,
+					 priv->SendCtl[i].len, DMA_TO_DEVICE);
 			dev_kfree_skb(priv->SendCtl[i].skb);
 		}
 	}
@@ -582,8 +582,8 @@ mpt_lan_send_turbo(struct net_device *dev, u32 tmsg)
 			__func__, sent));
 
 	priv->SendCtl[ctx].skb = NULL;
-	pci_unmap_single(mpt_dev->pcidev, priv->SendCtl[ctx].dma,
-			 priv->SendCtl[ctx].len, PCI_DMA_TODEVICE);
+	dma_unmap_single(&mpt_dev->pcidev->dev, priv->SendCtl[ctx].dma,
+			 priv->SendCtl[ctx].len, DMA_TO_DEVICE);
 	dev_kfree_skb_irq(sent);
 
 	spin_lock_irqsave(&priv->txfidx_lock, flags);
@@ -648,8 +648,9 @@ mpt_lan_send_reply(struct net_device *dev, LANSendReply_t *pSendRep)
 				__func__, sent));
 
 		priv->SendCtl[ctx].skb = NULL;
-		pci_unmap_single(mpt_dev->pcidev, priv->SendCtl[ctx].dma,
-				 priv->SendCtl[ctx].len, PCI_DMA_TODEVICE);
+		dma_unmap_single(&mpt_dev->pcidev->dev,
+				 priv->SendCtl[ctx].dma,
+				 priv->SendCtl[ctx].len, DMA_TO_DEVICE);
 		dev_kfree_skb_irq(sent);
 
 		priv->mpt_txfidx[++priv->mpt_txfidx_tail] = ctx;
@@ -720,8 +721,8 @@ mpt_lan_sdu_send (struct sk_buff *skb, struct net_device *dev)
 	skb_reset_mac_header(skb);
 	skb_pull(skb, 12);
 
-        dma = pci_map_single(mpt_dev->pcidev, skb->data, skb->len,
-			     PCI_DMA_TODEVICE);
+	dma = dma_map_single(&mpt_dev->pcidev->dev, skb->data, skb->len,
+			     DMA_TO_DEVICE);
 
 	priv->SendCtl[ctx].skb = skb;
 	priv->SendCtl[ctx].dma = dma;
@@ -868,13 +869,17 @@ mpt_lan_receive_post_turbo(struct net_device *dev, u32 tmsg)
 			return -ENOMEM;
 		}
 
-		pci_dma_sync_single_for_cpu(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-					    priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+		dma_sync_single_for_cpu(&mpt_dev->pcidev->dev,
+					priv->RcvCtl[ctx].dma,
+					priv->RcvCtl[ctx].len,
+					DMA_FROM_DEVICE);
 
 		skb_copy_from_linear_data(old_skb, skb_put(skb, len), len);
 
-		pci_dma_sync_single_for_device(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-					       priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+		dma_sync_single_for_device(&mpt_dev->pcidev->dev,
+					   priv->RcvCtl[ctx].dma,
+					   priv->RcvCtl[ctx].len,
+					   DMA_FROM_DEVICE);
 		goto out;
 	}
 
@@ -882,8 +887,8 @@ mpt_lan_receive_post_turbo(struct net_device *dev, u32 tmsg)
 
 	priv->RcvCtl[ctx].skb = NULL;
 
-	pci_unmap_single(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-			 priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+	dma_unmap_single(&mpt_dev->pcidev->dev, priv->RcvCtl[ctx].dma,
+			 priv->RcvCtl[ctx].len, DMA_FROM_DEVICE);
 
 out:
 	spin_lock_irqsave(&priv->rxfidx_lock, flags);
@@ -927,8 +932,8 @@ mpt_lan_receive_post_free(struct net_device *dev,
 //		dlprintk((KERN_INFO MYNAM "@rpr[2] TC + 3\n"));
 
 		priv->RcvCtl[ctx].skb = NULL;
-		pci_unmap_single(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-				 priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+		dma_unmap_single(&mpt_dev->pcidev->dev, priv->RcvCtl[ctx].dma,
+				 priv->RcvCtl[ctx].len, DMA_FROM_DEVICE);
 		dev_kfree_skb_any(skb);
 
 		priv->mpt_rxfidx[++priv->mpt_rxfidx_tail] = ctx;
@@ -1028,16 +1033,16 @@ mpt_lan_receive_post_reply(struct net_device *dev,
 //					IOC_AND_NETDEV_NAMES_s_s(dev),
 //					i, l));
 
-			pci_dma_sync_single_for_cpu(mpt_dev->pcidev,
-						    priv->RcvCtl[ctx].dma,
-						    priv->RcvCtl[ctx].len,
-						    PCI_DMA_FROMDEVICE);
+			dma_sync_single_for_cpu(&mpt_dev->pcidev->dev,
+						priv->RcvCtl[ctx].dma,
+						priv->RcvCtl[ctx].len,
+						DMA_FROM_DEVICE);
 			skb_copy_from_linear_data(old_skb, skb_put(skb, l), l);
 
-			pci_dma_sync_single_for_device(mpt_dev->pcidev,
-						       priv->RcvCtl[ctx].dma,
-						       priv->RcvCtl[ctx].len,
-						       PCI_DMA_FROMDEVICE);
+			dma_sync_single_for_device(&mpt_dev->pcidev->dev,
+						   priv->RcvCtl[ctx].dma,
+						   priv->RcvCtl[ctx].len,
+						   DMA_FROM_DEVICE);
 
 			priv->mpt_rxfidx[++priv->mpt_rxfidx_tail] = ctx;
 			szrem -= l;
@@ -1056,17 +1061,17 @@ mpt_lan_receive_post_reply(struct net_device *dev,
 			return -ENOMEM;
 		}
 
-		pci_dma_sync_single_for_cpu(mpt_dev->pcidev,
-					    priv->RcvCtl[ctx].dma,
-					    priv->RcvCtl[ctx].len,
-					    PCI_DMA_FROMDEVICE);
+		dma_sync_single_for_cpu(&mpt_dev->pcidev->dev,
+					priv->RcvCtl[ctx].dma,
+					priv->RcvCtl[ctx].len,
+					DMA_FROM_DEVICE);
 
 		skb_copy_from_linear_data(old_skb, skb_put(skb, len), len);
 
-		pci_dma_sync_single_for_device(mpt_dev->pcidev,
-					       priv->RcvCtl[ctx].dma,
-					       priv->RcvCtl[ctx].len,
-					       PCI_DMA_FROMDEVICE);
+		dma_sync_single_for_device(&mpt_dev->pcidev->dev,
+					   priv->RcvCtl[ctx].dma,
+					   priv->RcvCtl[ctx].len,
+					   DMA_FROM_DEVICE);
 
 		spin_lock_irqsave(&priv->rxfidx_lock, flags);
 		priv->mpt_rxfidx[++priv->mpt_rxfidx_tail] = ctx;
@@ -1077,8 +1082,8 @@ mpt_lan_receive_post_reply(struct net_device *dev,
 
 		priv->RcvCtl[ctx].skb = NULL;
 
-		pci_unmap_single(mpt_dev->pcidev, priv->RcvCtl[ctx].dma,
-				 priv->RcvCtl[ctx].len, PCI_DMA_FROMDEVICE);
+		dma_unmap_single(&mpt_dev->pcidev->dev, priv->RcvCtl[ctx].dma,
+				 priv->RcvCtl[ctx].len, DMA_FROM_DEVICE);
 		priv->RcvCtl[ctx].dma = 0;
 
 		priv->mpt_rxfidx[++priv->mpt_rxfidx_tail] = ctx;
@@ -1199,10 +1204,10 @@ mpt_lan_post_receive_buckets(struct mpt_lan_priv *priv)
 
 			skb = priv->RcvCtl[ctx].skb;
 			if (skb && (priv->RcvCtl[ctx].len != len)) {
-				pci_unmap_single(mpt_dev->pcidev,
+				dma_unmap_single(&mpt_dev->pcidev->dev,
 						 priv->RcvCtl[ctx].dma,
 						 priv->RcvCtl[ctx].len,
-						 PCI_DMA_FROMDEVICE);
+						 DMA_FROM_DEVICE);
 				dev_kfree_skb(priv->RcvCtl[ctx].skb);
 				skb = priv->RcvCtl[ctx].skb = NULL;
 			}
@@ -1218,8 +1223,9 @@ mpt_lan_post_receive_buckets(struct mpt_lan_priv *priv)
 					break;
 				}
 
-				dma = pci_map_single(mpt_dev->pcidev, skb->data,
-						     len, PCI_DMA_FROMDEVICE);
+				dma = dma_map_single(&mpt_dev->pcidev->dev,
+						     skb->data, len,
+						     DMA_FROM_DEVICE);
 
 				priv->RcvCtl[ctx].skb = skb;
 				priv->RcvCtl[ctx].dma = dma;
diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 091b45024d34..0363b2a2264d 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -769,8 +769,8 @@ mptsas_add_device_component_starget_ir(MPT_ADAPTER *ioc,
 
  out:
 	if (buffer)
-		pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-		    dma_handle);
+		dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				  buffer, dma_handle);
 }
 
 /**
@@ -1426,8 +1426,8 @@ mptsas_sas_enclosure_pg0(MPT_ADAPTER *ioc, struct mptsas_enclosure *enclosure,
 	enclosure->sep_channel = buffer->SEPBus;
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
  out:
 	return error;
 }
@@ -2081,8 +2081,8 @@ static int mptsas_get_linkerrors(struct sas_phy *phy)
 		le32_to_cpu(buffer->PhyResetProblemCount);
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
 	return error;
 }
 
@@ -2301,7 +2301,7 @@ static void mptsas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost,
 		       << MPI_SGE_FLAGS_SHIFT;
 
 	if (!dma_map_sg(&ioc->pcidev->dev, job->request_payload.sg_list,
-			1, PCI_DMA_BIDIRECTIONAL))
+			1, DMA_BIDIRECTIONAL))
 		goto put_mf;
 
 	flagsLength |= (sg_dma_len(job->request_payload.sg_list) - 4);
@@ -2318,7 +2318,7 @@ static void mptsas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost,
 	flagsLength = flagsLength << MPI_SGE_FLAGS_SHIFT;
 
 	if (!dma_map_sg(&ioc->pcidev->dev, job->reply_payload.sg_list,
-			1, PCI_DMA_BIDIRECTIONAL))
+			1, DMA_BIDIRECTIONAL))
 		goto unmap_out;
 	flagsLength |= sg_dma_len(job->reply_payload.sg_list) + 4;
 	ioc->add_sge(psge, flagsLength,
@@ -2356,10 +2356,10 @@ static void mptsas_smp_handler(struct bsg_job *job, struct Scsi_Host *shost,
 
 unmap_in:
 	dma_unmap_sg(&ioc->pcidev->dev, job->reply_payload.sg_list, 1,
-			PCI_DMA_BIDIRECTIONAL);
+			DMA_BIDIRECTIONAL);
 unmap_out:
 	dma_unmap_sg(&ioc->pcidev->dev, job->request_payload.sg_list, 1,
-			PCI_DMA_BIDIRECTIONAL);
+			DMA_BIDIRECTIONAL);
 put_mf:
 	if (mf)
 		mpt_free_msg_frame(ioc, mf);
@@ -2452,8 +2452,8 @@ mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
 	}
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
  out:
 	return error;
 }
@@ -2509,8 +2509,8 @@ mptsas_sas_io_unit_pg1(MPT_ADAPTER *ioc)
 	    device_missing_delay & MPI_SAS_IOUNIT1_REPORT_MISSING_TIMEOUT_MASK;
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
  out:
 	return error;
 }
@@ -2573,8 +2573,8 @@ mptsas_sas_phy_pg0(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
 	phy_info->attached.handle = le16_to_cpu(buffer->AttachedDevHandle);
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
  out:
 	return error;
 }
@@ -2654,8 +2654,8 @@ mptsas_sas_device_pg0(MPT_ADAPTER *ioc, struct mptsas_devinfo *device_info,
 	device_info->flags = le16_to_cpu(buffer->Flags);
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
  out:
 	return error;
 }
@@ -2737,8 +2737,8 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info,
 	}
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
  out:
 	return error;
 }
@@ -2810,8 +2810,8 @@ mptsas_sas_expander_pg1(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
 	phy_info->attached.handle = le16_to_cpu(buffer->AttachedDevHandle);
 
  out_free_consistent:
-	pci_free_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			    buffer, dma_handle);
+	dma_free_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4, buffer,
+			  dma_handle);
  out:
 	return error;
 }
@@ -2987,7 +2987,8 @@ mptsas_exp_repmanufacture_info(MPT_ADAPTER *ioc,
 	}
 out_free:
 	if (data_out_dma)
-		pci_free_consistent(ioc->pcidev, sz, data_out, data_out_dma);
+		dma_free_coherent(&ioc->pcidev->dev, sz, data_out,
+				  data_out_dma);
 put_mf:
 	if (mf)
 		mpt_free_msg_frame(ioc, mf);
@@ -4318,8 +4319,8 @@ mptsas_adding_inactive_raid_components(MPT_ADAPTER *ioc, u8 channel, u8 id)
 
  out:
 	if (buffer)
-		pci_free_consistent(ioc->pcidev, hdr.PageLength * 4, buffer,
-		    dma_handle);
+		dma_free_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				  buffer, dma_handle);
 }
 /*
  * Work queue thread to handle SAS hotplug events
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 11/16] scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (10 preceding siblings ...)
  (?)
@ 2022-01-06 21:54 ` Christophe JAILLET
  2022-01-10  8:47   ` Christoph Hellwig
  -1 siblings, 1 reply; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:54 UTC (permalink / raw)
  To: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani
  Cc: MPT-FusionLinux.pdl, linux-scsi, linux-kernel, kernel-janitors,
	Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].


mpt_alloc_fw_memory() should still use GFP_ATOMIC, because it can be
called from mpt_do_upload() which might sleep.


[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
Instead of using GFP_ATOMIC, we could pass the 'sleepFlag' from
mpt_do_upload() and check all other callers to pass the expected flag.
---
 drivers/message/fusion/mptbase.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index 5a3b7b56e85a..c4702ef87897 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -3512,7 +3512,8 @@ mpt_alloc_fw_memory(MPT_ADAPTER *ioc, int size)
 		rc = 0;
 		goto out;
 	}
-	ioc->cached_fw = pci_alloc_consistent(ioc->pcidev, size, &ioc->cached_fw_dma);
+	ioc->cached_fw = dma_alloc_coherent(&ioc->pcidev->dev, size,
+					    &ioc->cached_fw_dma, GFP_ATOMIC);
 	if (!ioc->cached_fw) {
 		printk(MYIOC_s_ERR_FMT "Unable to allocate memory for the cached firmware image!\n",
 		    ioc->name);
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 12/16] scsi: mptbase: Use dma_alloc_coherent()
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (11 preceding siblings ...)
  (?)
@ 2022-01-06 21:54 ` Christophe JAILLET
  2022-01-10  8:47   ` Christoph Hellwig
  -1 siblings, 1 reply; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:54 UTC (permalink / raw)
  To: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani
  Cc: MPT-FusionLinux.pdl, linux-scsi, linux-kernel, kernel-janitors,
	Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].


In all these places where some memory is allocated GFP_KERNEL can be used
because they already call mpt_config() which has an explicit might_sleep().


[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/message/fusion/mptbase.c | 52 ++++++++++++++++++++------------
 1 file changed, 32 insertions(+), 20 deletions(-)

diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
index c4702ef87897..e90adfa57950 100644
--- a/drivers/message/fusion/mptbase.c
+++ b/drivers/message/fusion/mptbase.c
@@ -300,8 +300,8 @@ mpt_is_discovery_complete(MPT_ADAPTER *ioc)
 	if (!hdr.ExtPageLength)
 		goto out;
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-	    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer)
 		goto out;
 
@@ -4966,7 +4966,8 @@ GetLanConfigPages(MPT_ADAPTER *ioc)
 
 	if (hdr.PageLength > 0) {
 		data_sz = hdr.PageLength * 4;
-		ppage0_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page0_dma);
+		ppage0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
+						  &page0_dma, GFP_KERNEL);
 		rc = -ENOMEM;
 		if (ppage0_alloc) {
 			memset((u8 *)ppage0_alloc, 0, data_sz);
@@ -5013,7 +5014,8 @@ GetLanConfigPages(MPT_ADAPTER *ioc)
 
 	data_sz = hdr.PageLength * 4;
 	rc = -ENOMEM;
-	ppage1_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page1_dma);
+	ppage1_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
+					  &page1_dma, GFP_KERNEL);
 	if (ppage1_alloc) {
 		memset((u8 *)ppage1_alloc, 0, data_sz);
 		cfg.physAddr = page1_dma;
@@ -5315,7 +5317,8 @@ GetIoUnitPage2(MPT_ADAPTER *ioc)
 	/* Read the config page */
 	data_sz = hdr.PageLength * 4;
 	rc = -ENOMEM;
-	ppage_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page_dma);
+	ppage_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
+					 &page_dma, GFP_KERNEL);
 	if (ppage_alloc) {
 		memset((u8 *)ppage_alloc, 0, data_sz);
 		cfg.physAddr = page_dma;
@@ -5401,7 +5404,9 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
 		 return -EFAULT;
 
 	if (header.PageLength > 0) {
-		pbuf = pci_alloc_consistent(ioc->pcidev, header.PageLength * 4, &buf_dma);
+		pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
+					  header.PageLength * 4, &buf_dma,
+					  GFP_KERNEL);
 		if (pbuf) {
 			cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
 			cfg.physAddr = buf_dma;
@@ -5481,7 +5486,9 @@ mpt_GetScsiPortSettings(MPT_ADAPTER *ioc, int portnum)
 	if (header.PageLength > 0) {
 		/* Allocate memory and read SCSI Port Page 2
 		 */
-		pbuf = pci_alloc_consistent(ioc->pcidev, header.PageLength * 4, &buf_dma);
+		pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
+					  header.PageLength * 4, &buf_dma,
+					  GFP_KERNEL);
 		if (pbuf) {
 			cfg.action = MPI_CONFIG_ACTION_PAGE_READ_NVRAM;
 			cfg.physAddr = buf_dma;
@@ -5664,8 +5671,8 @@ mpt_inactive_raid_volumes(MPT_ADAPTER *ioc, u8 channel, u8 id)
 	if (!hdr.PageLength)
 		goto out;
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-	    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 
 	if (!buffer)
 		goto out;
@@ -5757,8 +5764,8 @@ mpt_raid_phys_disk_pg0(MPT_ADAPTER *ioc, u8 phys_disk_num,
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-	    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 
 	if (!buffer) {
 		rc = -ENOMEM;
@@ -5824,8 +5831,8 @@ mpt_raid_phys_disk_get_num_paths(MPT_ADAPTER *ioc, u8 phys_disk_num)
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-	    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 
 	if (!buffer) {
 		rc = 0;
@@ -5896,8 +5903,8 @@ mpt_raid_phys_disk_pg1(MPT_ADAPTER *ioc, u8 phys_disk_num,
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-	    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 
 	if (!buffer) {
 		rc = -ENOMEM;
@@ -5991,7 +5998,8 @@ mpt_findImVolumes(MPT_ADAPTER *ioc)
 		return -EFAULT;
 
 	iocpage2sz = header.PageLength * 4;
-	pIoc2 = pci_alloc_consistent(ioc->pcidev, iocpage2sz, &ioc2_dma);
+	pIoc2 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage2sz, &ioc2_dma,
+				   GFP_KERNEL);
 	if (!pIoc2)
 		return -ENOMEM;
 
@@ -6058,7 +6066,8 @@ mpt_read_ioc_pg_3(MPT_ADAPTER *ioc)
 	/* Read Header good, alloc memory
 	 */
 	iocpage3sz = header.PageLength * 4;
-	pIoc3 = pci_alloc_consistent(ioc->pcidev, iocpage3sz, &ioc3_dma);
+	pIoc3 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage3sz, &ioc3_dma,
+				   GFP_KERNEL);
 	if (!pIoc3)
 		return 0;
 
@@ -6109,7 +6118,8 @@ mpt_read_ioc_pg_4(MPT_ADAPTER *ioc)
 
 	if ( (pIoc4 = ioc->spi_data.pIocPg4) == NULL ) {
 		iocpage4sz = (header.PageLength + 4) * 4; /* Allow 4 additional SEP's */
-		pIoc4 = pci_alloc_consistent(ioc->pcidev, iocpage4sz, &ioc4_dma);
+		pIoc4 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage4sz,
+					   &ioc4_dma, GFP_KERNEL);
 		if (!pIoc4)
 			return;
 		ioc->alloc_total += iocpage4sz;
@@ -6165,7 +6175,8 @@ mpt_read_ioc_pg_1(MPT_ADAPTER *ioc)
 	/* Read Header good, alloc memory
 	 */
 	iocpage1sz = header.PageLength * 4;
-	pIoc1 = pci_alloc_consistent(ioc->pcidev, iocpage1sz, &ioc1_dma);
+	pIoc1 = dma_alloc_coherent(&ioc->pcidev->dev, iocpage1sz, &ioc1_dma,
+				   GFP_KERNEL);
 	if (!pIoc1)
 		return;
 
@@ -6245,7 +6256,8 @@ mpt_get_manufacturing_pg_0(MPT_ADAPTER *ioc)
 		goto out;
 
 	cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
-	pbuf = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4, &buf_dma);
+	pbuf = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				  &buf_dma, GFP_KERNEL);
 	if (!pbuf)
 		goto out;
 
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 13/16] scsi: mptsas: Use dma_alloc_coherent() in mptsas_exp_repmanufacture_info()
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (12 preceding siblings ...)
  (?)
@ 2022-01-06 21:54 ` Christophe JAILLET
  2022-01-10  8:48   ` Christoph Hellwig
  -1 siblings, 1 reply; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:54 UTC (permalink / raw)
  To: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani
  Cc: MPT-FusionLinux.pdl, linux-scsi, linux-kernel, kernel-janitors,
	Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].


The only caller of mptsas_exp_repmanufacture_info() is
mptsas_probe_one_phy(). This function already calls sas_end_device_alloc()
or sas_expander_alloc(). They both already use GFP_KERNEL.

As no spin_lock is held at this point, it is safe to also use GFP_KERNEL
here.


[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/message/fusion/mptsas.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 0363b2a2264d..9b40be04710c 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -2896,7 +2896,8 @@ mptsas_exp_repmanufacture_info(MPT_ADAPTER *ioc,
 
 	sz = sizeof(struct rep_manu_request) + sizeof(struct rep_manu_reply);
 
-	data_out = pci_alloc_consistent(ioc->pcidev, sz, &data_out_dma);
+	data_out = dma_alloc_coherent(&ioc->pcidev->dev, sz, &data_out_dma,
+				      GFP_KERNEL);
 	if (!data_out) {
 		printk(KERN_ERR "Memory allocation failure at %s:%d/%s()!\n",
 			__FILE__, __LINE__, __func__);
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 14/16] scsi: mptsas: Use dma_alloc_coherent()
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (13 preceding siblings ...)
  (?)
@ 2022-01-06 21:54 ` Christophe JAILLET
  2022-01-10  8:48   ` Christoph Hellwig
  -1 siblings, 1 reply; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:54 UTC (permalink / raw)
  To: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani
  Cc: MPT-FusionLinux.pdl, linux-scsi, linux-kernel, kernel-janitors,
	Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].


In all these places where some memory is allocated GFP_KERNEL can be used
because they already call mpt_config() which has an explicit might_sleep().


[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/message/fusion/mptsas.c | 40 ++++++++++++++++-----------------
 1 file changed, 20 insertions(+), 20 deletions(-)

diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 9b40be04710c..4acd8f9a48e1 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -702,8 +702,8 @@ mptsas_add_device_component_starget_ir(MPT_ADAPTER *ioc,
 	if (!hdr.PageLength)
 		goto out;
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-	    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 
 	if (!buffer)
 		goto out;
@@ -1399,8 +1399,8 @@ mptsas_sas_enclosure_pg0(MPT_ADAPTER *ioc, struct mptsas_enclosure *enclosure,
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-			&dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer) {
 		error = -ENOMEM;
 		goto out;
@@ -2058,8 +2058,8 @@ static int mptsas_get_linkerrors(struct sas_phy *phy)
 	if (!hdr.ExtPageLength)
 		return -ENXIO;
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-				      &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer)
 		return -ENOMEM;
 
@@ -2412,8 +2412,8 @@ mptsas_sas_io_unit_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info)
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-					    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer) {
 		error = -ENOMEM;
 		goto out;
@@ -2487,8 +2487,8 @@ mptsas_sas_io_unit_pg1(MPT_ADAPTER *ioc)
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-					    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer) {
 		error = -ENOMEM;
 		goto out;
@@ -2551,8 +2551,8 @@ mptsas_sas_phy_pg0(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-				      &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer) {
 		error = -ENOMEM;
 		goto out;
@@ -2614,8 +2614,8 @@ mptsas_sas_device_pg0(MPT_ADAPTER *ioc, struct mptsas_devinfo *device_info,
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-				      &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer) {
 		error = -ENOMEM;
 		goto out;
@@ -2697,8 +2697,8 @@ mptsas_sas_expander_pg0(MPT_ADAPTER *ioc, struct mptsas_portinfo *port_info,
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-				      &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer) {
 		error = -ENOMEM;
 		goto out;
@@ -2777,8 +2777,8 @@ mptsas_sas_expander_pg1(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info,
 		goto out;
 	}
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.ExtPageLength * 4,
-				      &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.ExtPageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 	if (!buffer) {
 		error = -ENOMEM;
 		goto out;
@@ -4273,8 +4273,8 @@ mptsas_adding_inactive_raid_components(MPT_ADAPTER *ioc, u8 channel, u8 id)
 	if (!hdr.PageLength)
 		goto out;
 
-	buffer = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4,
-	    &dma_handle);
+	buffer = dma_alloc_coherent(&ioc->pcidev->dev, hdr.PageLength * 4,
+				    &dma_handle, GFP_KERNEL);
 
 	if (!buffer)
 		goto out;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 15/16] scsi: mptctl: Use dma_alloc_coherent()
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (14 preceding siblings ...)
  (?)
@ 2022-01-06 21:54 ` Christophe JAILLET
  2022-01-10  8:48   ` Christoph Hellwig
  -1 siblings, 1 reply; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:54 UTC (permalink / raw)
  To: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani
  Cc: MPT-FusionLinux.pdl, linux-scsi, linux-kernel, kernel-janitors,
	Christophe JAILLET

In [1], Christoph Hellwig has proposed to remove the wrappers in
include/linux/pci-dma-compat.h.

Some reasons why this API should be removed have been given by Julia
Lawall in [2].


When memory is allocated in kbuf_alloc_2_sgl() GFP_KERNEL can be used
because this function already uses the GFP_USER flag for some memory
allocation and not spin_lock is taken in the between.

When memory is allocated in mptctl_do_mpt_command() GFP_KERNEL can be
used because this function already uses copy_from_user() and this
function can sleep.

When memory is allocated in mptctl_hp_hostinfo() GFP_KERNEL can be used
because this function already uses mpt_config() and this function has
an explicit might_sleep().

When memory is allocated in mptctl_hp_targetinfo() GFP_KERNEL can be used
because this function already uses mpt_config() and this function has
an explicit might_sleep().


[1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
[2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
I'm a bit unsure about the use of GFP_KERNEL in kbuf_alloc_2_sgl().

In all conversion that I've done, GFP_USER was never used. I don't fully
understand the difference between GFP_USER and GFP_KERNEL.
---
 drivers/message/fusion/mptctl.c | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/drivers/message/fusion/mptctl.c b/drivers/message/fusion/mptctl.c
index 0f447179e3f5..03c8fb1795c2 100644
--- a/drivers/message/fusion/mptctl.c
+++ b/drivers/message/fusion/mptctl.c
@@ -1041,7 +1041,8 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
 	 * copying the data in this array into the correct place in the
 	 * request and chain buffers.
 	 */
-	sglbuf = pci_alloc_consistent(ioc->pcidev, MAX_SGL_BYTES, sglbuf_dma);
+	sglbuf = dma_alloc_coherent(&ioc->pcidev->dev, MAX_SGL_BYTES,
+				    sglbuf_dma, GFP_KERNEL);
 	if (sglbuf == NULL)
 		goto free_and_fail;
 
@@ -1062,9 +1063,9 @@ kbuf_alloc_2_sgl(int bytes, u32 sgdir, int sge_offset, int *frags,
 	while (bytes_allocd < bytes) {
 		this_alloc = min(alloc_sz, bytes-bytes_allocd);
 		buflist[buflist_ent].len = this_alloc;
-		buflist[buflist_ent].kptr = pci_alloc_consistent(ioc->pcidev,
-								 this_alloc,
-								 &pa);
+		buflist[buflist_ent].kptr = dma_alloc_coherent(&ioc->pcidev->dev,
+							       this_alloc,
+							       &pa, GFP_KERNEL);
 		if (buflist[buflist_ent].kptr == NULL) {
 			alloc_sz = alloc_sz / 2;
 			if (alloc_sz == 0) {
@@ -2105,8 +2106,9 @@ mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __u
 			}
 			flagsLength |= karg.dataOutSize;
 			bufOut.len = karg.dataOutSize;
-			bufOut.kptr = pci_alloc_consistent(
-					ioc->pcidev, bufOut.len, &dma_addr_out);
+			bufOut.kptr = dma_alloc_coherent(&ioc->pcidev->dev,
+							 bufOut.len,
+							 &dma_addr_out, GFP_KERNEL);
 
 			if (bufOut.kptr == NULL) {
 				rc = -ENOMEM;
@@ -2139,8 +2141,9 @@ mptctl_do_mpt_command (MPT_ADAPTER *ioc, struct mpt_ioctl_command karg, void __u
 			flagsLength |= karg.dataInSize;
 
 			bufIn.len = karg.dataInSize;
-			bufIn.kptr = pci_alloc_consistent(ioc->pcidev,
-					bufIn.len, &dma_addr_in);
+			bufIn.kptr = dma_alloc_coherent(&ioc->pcidev->dev,
+							bufIn.len,
+							&dma_addr_in, GFP_KERNEL);
 
 			if (bufIn.kptr == NULL) {
 				rc = -ENOMEM;
@@ -2400,7 +2403,9 @@ mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
 			/* Issue the second config page request */
 			cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
 
-			pbuf = pci_alloc_consistent(ioc->pcidev, hdr.PageLength * 4, &buf_dma);
+			pbuf = dma_alloc_coherent(&ioc->pcidev->dev,
+						  hdr.PageLength * 4,
+						  &buf_dma, GFP_KERNEL);
 			if (pbuf) {
 				cfg.physAddr = buf_dma;
 				if (mpt_config(ioc, &cfg) == 0) {
@@ -2477,7 +2482,7 @@ mptctl_hp_hostinfo(MPT_ADAPTER *ioc, unsigned long arg, unsigned int data_size)
 	else
 		IstwiRWRequest->DeviceAddr = 0xB0;
 
-	pbuf = pci_alloc_consistent(ioc->pcidev, 4, &buf_dma);
+	pbuf = dma_alloc_coherent(&ioc->pcidev->dev, 4, &buf_dma, GFP_KERNEL);
 	if (!pbuf)
 		goto out;
 	ioc->add_sge((char *)&IstwiRWRequest->SGL,
@@ -2592,7 +2597,8 @@ mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
        /* Get the data transfer speeds
         */
 	data_sz = ioc->spi_data.sdp0length * 4;
-	pg0_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page_dma);
+	pg0_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz, &page_dma,
+				       GFP_KERNEL);
 	if (pg0_alloc) {
 		hdr.PageVersion = ioc->spi_data.sdp0version;
 		hdr.PageLength = data_sz;
@@ -2657,7 +2663,8 @@ mptctl_hp_targetinfo(MPT_ADAPTER *ioc, unsigned long arg)
 		/* Issue the second config page request */
 		cfg.action = MPI_CONFIG_ACTION_PAGE_READ_CURRENT;
 		data_sz = (int) cfg.cfghdr.hdr->PageLength * 4;
-		pg3_alloc = pci_alloc_consistent(ioc->pcidev, data_sz, &page_dma);
+		pg3_alloc = dma_alloc_coherent(&ioc->pcidev->dev, data_sz,
+					       &page_dma, GFP_KERNEL);
 		if (pg3_alloc) {
 			cfg.physAddr = page_dma;
 			cfg.pageAddr = (karg.hdr.channel << 8) | karg.hdr.id;
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
                   ` (15 preceding siblings ...)
  (?)
@ 2022-01-06 21:55 ` Christophe JAILLET
  2022-01-06 22:28   ` Bjorn Helgaas
                     ` (2 more replies)
  -1 siblings, 3 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-06 21:55 UTC (permalink / raw)
  To: arnd, hch, akpm, bhelgaas
  Cc: linux-pci, linux-kernel, kernel-janitors, Christophe JAILLET

Final step, remove pci-dma-compat.h

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 include/linux/pci-dma-compat.h | 129 ---------------------------------
 include/linux/pci.h            |   3 -
 2 files changed, 132 deletions(-)
 delete mode 100644 include/linux/pci-dma-compat.h

diff --git a/include/linux/pci-dma-compat.h b/include/linux/pci-dma-compat.h
deleted file mode 100644
index 249d4d7fbf18..000000000000
--- a/include/linux/pci-dma-compat.h
+++ /dev/null
@@ -1,129 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-/* include this file if the platform implements the dma_ DMA Mapping API
- * and wants to provide the pci_ DMA Mapping API in terms of it */
-
-#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H
-#define _ASM_GENERIC_PCI_DMA_COMPAT_H
-
-#include <linux/dma-mapping.h>
-
-/* This defines the direction arg to the DMA mapping routines. */
-#define PCI_DMA_BIDIRECTIONAL	DMA_BIDIRECTIONAL
-#define PCI_DMA_TODEVICE	DMA_TO_DEVICE
-#define PCI_DMA_FROMDEVICE	DMA_FROM_DEVICE
-#define PCI_DMA_NONE		DMA_NONE
-
-static inline void *
-pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
-		     dma_addr_t *dma_handle)
-{
-	return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC);
-}
-
-static inline void *
-pci_zalloc_consistent(struct pci_dev *hwdev, size_t size,
-		      dma_addr_t *dma_handle)
-{
-	return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC);
-}
-
-static inline void
-pci_free_consistent(struct pci_dev *hwdev, size_t size,
-		    void *vaddr, dma_addr_t dma_handle)
-{
-	dma_free_coherent(&hwdev->dev, size, vaddr, dma_handle);
-}
-
-static inline dma_addr_t
-pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction)
-{
-	return dma_map_single(&hwdev->dev, ptr, size, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
-		 size_t size, int direction)
-{
-	dma_unmap_single(&hwdev->dev, dma_addr, size, (enum dma_data_direction)direction);
-}
-
-static inline dma_addr_t
-pci_map_page(struct pci_dev *hwdev, struct page *page,
-	     unsigned long offset, size_t size, int direction)
-{
-	return dma_map_page(&hwdev->dev, page, offset, size, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
-	       size_t size, int direction)
-{
-	dma_unmap_page(&hwdev->dev, dma_address, size, (enum dma_data_direction)direction);
-}
-
-static inline int
-pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
-	   int nents, int direction)
-{
-	return dma_map_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg,
-	     int nents, int direction)
-{
-	dma_unmap_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle,
-		    size_t size, int direction)
-{
-	dma_sync_single_for_cpu(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle,
-		    size_t size, int direction)
-{
-	dma_sync_single_for_device(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg,
-		int nelems, int direction)
-{
-	dma_sync_sg_for_cpu(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
-}
-
-static inline void
-pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg,
-		int nelems, int direction)
-{
-	dma_sync_sg_for_device(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
-}
-
-static inline int
-pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr)
-{
-	return dma_mapping_error(&pdev->dev, dma_addr);
-}
-
-#ifdef CONFIG_PCI
-static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
-{
-	return dma_set_mask(&dev->dev, mask);
-}
-
-static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
-{
-	return dma_set_coherent_mask(&dev->dev, mask);
-}
-#else
-static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
-{ return -EIO; }
-static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
-{ return -EIO; }
-#endif
-
-#endif
diff --git a/include/linux/pci.h b/include/linux/pci.h
index d4308f847e58..ba8771eaf380 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -2455,9 +2455,6 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
 void pci_uevent_ers(struct pci_dev *pdev, enum  pci_ers_result err_type);
 #endif
 
-/* Provide the legacy pci_dma_* API */
-#include <linux/pci-dma-compat.h>
-
 #define pci_printk(level, pdev, fmt, arg...) \
 	dev_printk(level, &(pdev)->dev, fmt, ##arg)
 
-- 
2.32.0


^ permalink raw reply related	[flat|nested] 82+ messages in thread

* Re: [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:55 ` [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API Christophe JAILLET
@ 2022-01-06 22:28   ` Bjorn Helgaas
  2022-01-07  6:34     ` Christophe JAILLET
  2022-01-07  9:20   ` kernel test robot
  2022-01-07  9:41   ` kernel test robot
  2 siblings, 1 reply; 82+ messages in thread
From: Bjorn Helgaas @ 2022-01-06 22:28 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, bhelgaas, linux-pci, linux-kernel, kernel-janitors

On Thu, Jan 06, 2022 at 10:55:33PM +0100, Christophe JAILLET wrote:
> Final step, remove pci-dma-compat.h
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

Obviously this has to be applied after all the others, so I assume
somebody else will take this.

> ---
>  include/linux/pci-dma-compat.h | 129 ---------------------------------
>  include/linux/pci.h            |   3 -
>  2 files changed, 132 deletions(-)
>  delete mode 100644 include/linux/pci-dma-compat.h
> 
> diff --git a/include/linux/pci-dma-compat.h b/include/linux/pci-dma-compat.h
> deleted file mode 100644
> index 249d4d7fbf18..000000000000
> --- a/include/linux/pci-dma-compat.h
> +++ /dev/null
> @@ -1,129 +0,0 @@
> -/* SPDX-License-Identifier: GPL-2.0 */
> -/* include this file if the platform implements the dma_ DMA Mapping API
> - * and wants to provide the pci_ DMA Mapping API in terms of it */
> -
> -#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H
> -#define _ASM_GENERIC_PCI_DMA_COMPAT_H
> -
> -#include <linux/dma-mapping.h>
> -
> -/* This defines the direction arg to the DMA mapping routines. */
> -#define PCI_DMA_BIDIRECTIONAL	DMA_BIDIRECTIONAL
> -#define PCI_DMA_TODEVICE	DMA_TO_DEVICE
> -#define PCI_DMA_FROMDEVICE	DMA_FROM_DEVICE
> -#define PCI_DMA_NONE		DMA_NONE
> -
> -static inline void *
> -pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
> -		     dma_addr_t *dma_handle)
> -{
> -	return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC);
> -}
> -
> -static inline void *
> -pci_zalloc_consistent(struct pci_dev *hwdev, size_t size,
> -		      dma_addr_t *dma_handle)
> -{
> -	return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC);
> -}
> -
> -static inline void
> -pci_free_consistent(struct pci_dev *hwdev, size_t size,
> -		    void *vaddr, dma_addr_t dma_handle)
> -{
> -	dma_free_coherent(&hwdev->dev, size, vaddr, dma_handle);
> -}
> -
> -static inline dma_addr_t
> -pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction)
> -{
> -	return dma_map_single(&hwdev->dev, ptr, size, (enum dma_data_direction)direction);
> -}
> -
> -static inline void
> -pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
> -		 size_t size, int direction)
> -{
> -	dma_unmap_single(&hwdev->dev, dma_addr, size, (enum dma_data_direction)direction);
> -}
> -
> -static inline dma_addr_t
> -pci_map_page(struct pci_dev *hwdev, struct page *page,
> -	     unsigned long offset, size_t size, int direction)
> -{
> -	return dma_map_page(&hwdev->dev, page, offset, size, (enum dma_data_direction)direction);
> -}
> -
> -static inline void
> -pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
> -	       size_t size, int direction)
> -{
> -	dma_unmap_page(&hwdev->dev, dma_address, size, (enum dma_data_direction)direction);
> -}
> -
> -static inline int
> -pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
> -	   int nents, int direction)
> -{
> -	return dma_map_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction);
> -}
> -
> -static inline void
> -pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg,
> -	     int nents, int direction)
> -{
> -	dma_unmap_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction);
> -}
> -
> -static inline void
> -pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle,
> -		    size_t size, int direction)
> -{
> -	dma_sync_single_for_cpu(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
> -}
> -
> -static inline void
> -pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle,
> -		    size_t size, int direction)
> -{
> -	dma_sync_single_for_device(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
> -}
> -
> -static inline void
> -pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg,
> -		int nelems, int direction)
> -{
> -	dma_sync_sg_for_cpu(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
> -}
> -
> -static inline void
> -pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg,
> -		int nelems, int direction)
> -{
> -	dma_sync_sg_for_device(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
> -}
> -
> -static inline int
> -pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr)
> -{
> -	return dma_mapping_error(&pdev->dev, dma_addr);
> -}
> -
> -#ifdef CONFIG_PCI
> -static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
> -{
> -	return dma_set_mask(&dev->dev, mask);
> -}
> -
> -static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
> -{
> -	return dma_set_coherent_mask(&dev->dev, mask);
> -}
> -#else
> -static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
> -{ return -EIO; }
> -static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
> -{ return -EIO; }
> -#endif
> -
> -#endif
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index d4308f847e58..ba8771eaf380 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -2455,9 +2455,6 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
>  void pci_uevent_ers(struct pci_dev *pdev, enum  pci_ers_result err_type);
>  #endif
>  
> -/* Provide the legacy pci_dma_* API */
> -#include <linux/pci-dma-compat.h>
> -
>  #define pci_printk(level, pdev, fmt, arg...) \
>  	dev_printk(level, &(pdev)->dev, fmt, ##arg)
>  
> -- 
> 2.32.0
> 

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 03/16] fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:49 ` [PATCH 03/16] fpga: dfl: pci: " Christophe JAILLET
@ 2022-01-06 23:06   ` Arnd Bergmann
  2022-01-07  0:58     ` Arnd Bergmann
  2022-01-10  8:44   ` Christoph Hellwig
  1 sibling, 1 reply; 82+ messages in thread
From: Arnd Bergmann @ 2022-01-06 23:06 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Arnd Bergmann, Christoph Hellwig, Andrew Morton, hao.wu, Tom Rix,
	Moritz Fischer, Xu Yilun, linux-fpga, Linux Kernel Mailing List,
	kernel-janitors

On Thu, Jan 6, 2022 at 4:49 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> In [1], Christoph Hellwig has proposed to remove the wrappers in
> include/linux/pci-dma-compat.h.
>
> Some reasons why this API should be removed have been given by Julia
> Lawall in [2].
>
> A coccinelle script has been used to perform the needed transformation.
> It can be found in [3].
>
>
> It has been hand modified to use 'dma_set_mask_and_coherent()' instead of
> 'pci_set_dma_mask()/pci_set_consistent_dma_mask()' when applicable.
> This is less verbose.
>
> The explicit 'ret = -EIO;' has been removed because
> 'dma_set_mask_and_coherent()' returns 0 or -EIO, so its return code can be
> used directly.
>
>
> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> Reviewed-by: Xu Yilun <yilun.xu@intel.com>

This is a correct conversion of the driver, but I'd prefer to keep this separate
from the pci-dma-compat series.

> +       ret = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(64));
> +       if (ret)
> +               ret = dma_set_mask_and_coherent(&pcidev->dev, DMA_BIT_MASK(32));
> +       if (ret) {
>                 dev_err(&pcidev->dev, "No suitable DMA support available.\n");
>                 goto disable_error_report_exit;

The code looks a bit suspicous, both the old and the new version. If the device
ends up on a bus that can only do 32-bit DMA, shouldn't it remember this and
make sure it only does GFP_DMA32 allocations for buffers that are passed to
the device?

        Arnd

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 04/16] media: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:50 ` [PATCH 04/16] media: " Christophe JAILLET
@ 2022-01-07  0:51   ` Arnd Bergmann
  2022-01-07  7:10     ` Mauro Carvalho Chehab
  2022-01-10  8:44   ` Christoph Hellwig
  1 sibling, 1 reply; 82+ messages in thread
From: Arnd Bergmann @ 2022-01-07  0:51 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Arnd Bergmann, Christoph Hellwig, Andrew Morton, awalls,
	Mauro Carvalho Chehab, Linux Media Mailing List,
	Linux Kernel Mailing List, kernel-janitors

On Thu, Jan 6, 2022 at 4:50 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> In [1], Christoph Hellwig has proposed to remove the wrappers in
> include/linux/pci-dma-compat.h.
>
> Some reasons why this API should be removed have been given by Julia
> Lawall in [2].
>
> A coccinelle script has been used to perform the needed transformation.
> It can be found in [3].
>
> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

Mauro, could you pick this up directly? It has no dependencies on the rest of
the series.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 05/16] agp/intel: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:51 ` [PATCH 05/16] agp/intel: " Christophe JAILLET
@ 2022-01-07  0:53   ` Arnd Bergmann
  2022-01-10  8:45   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-01-07  0:53 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Arnd Bergmann, Christoph Hellwig, Andrew Morton, David Airlie,
	Linux Kernel Mailing List, kernel-janitors

On Thu, Jan 6, 2022 at 4:51 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> In [1], Christoph Hellwig has proposed to remove the wrappers in
> include/linux/pci-dma-compat.h.
>
> Some reasons why this API should be removed have been given by Julia
> Lawall in [2].
>
> A coccinelle script has been used to perform the needed transformation.
> It can be found in [3].
>
> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

I suppose this should just go through the drm-misc tree, the patch has no
dependencies on anything else.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 06/16] sparc: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:51 ` [PATCH 06/16] sparc: " Christophe JAILLET
@ 2022-01-07  0:54   ` Arnd Bergmann
  2022-01-07 11:04   ` David Miller
  2022-01-10  8:45   ` Christoph Hellwig
  2 siblings, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-01-07  0:54 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Arnd Bergmann, Christoph Hellwig, Andrew Morton, David Miller,
	sparclinux, Linux Kernel Mailing List, kernel-janitors

On Thu, Jan 6, 2022 at 4:51 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> In [1], Christoph Hellwig has proposed to remove the wrappers in
> include/linux/pci-dma-compat.h.
>
> Some reasons why this API should be removed have been given by Julia
> Lawall in [2].
>
> A coccinelle script has been used to perform the needed transformation.
> It can be found in [3].
>
> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 07/16] dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:52 ` [PATCH 07/16] dmaengine: pch_dma: " Christophe JAILLET
@ 2022-01-07  0:56   ` Arnd Bergmann
  2022-01-08 16:47     ` Vinod Koul
  2022-01-10  8:45   ` Christoph Hellwig
  1 sibling, 1 reply; 82+ messages in thread
From: Arnd Bergmann @ 2022-01-07  0:56 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Arnd Bergmann, Christoph Hellwig, Andrew Morton, Vinod Koul,
	dmaengine, Linux Kernel Mailing List, kernel-janitors

On Thu, Jan 6, 2022 at 4:52 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> In [1], Christoph Hellwig has proposed to remove the wrappers in
> include/linux/pci-dma-compat.h.
>
> Some reasons why this API should be removed have been given by Julia
> Lawall in [2].
>
> A coccinelle script has been used to perform the needed transformation.
> It can be found in [3].
>
> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

Vinod, can you apply this one to the dmaengine tree? It has no other
dependencies.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 03/16] fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 23:06   ` Arnd Bergmann
@ 2022-01-07  0:58     ` Arnd Bergmann
  2022-01-07  6:34       ` Christophe JAILLET
  0 siblings, 1 reply; 82+ messages in thread
From: Arnd Bergmann @ 2022-01-07  0:58 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Christophe JAILLET, Christoph Hellwig, Andrew Morton, hao.wu,
	Tom Rix, Moritz Fischer, Xu Yilun, linux-fpga,
	Linux Kernel Mailing List, kernel-janitors

On Thu, Jan 6, 2022 at 6:06 PM Arnd Bergmann <arnd@arndb.de> wrote:
>

> > [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> > [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> > [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
> >
> > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> > Reviewed-by: Xu Yilun <yilun.xu@intel.com>
>
> This is a correct conversion of the driver, but I'd prefer to keep this separate
> from the pci-dma-compat series.

Nevermind, I just misread the patch, and it is required after all to get
rid of pci_set_dma_mask()

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 08/16] rapidio/tsi721: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:52 ` [PATCH 08/16] rapidio/tsi721: " Christophe JAILLET
@ 2022-01-07  1:00   ` Arnd Bergmann
  2022-01-10  8:46   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-01-07  1:00 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Arnd Bergmann, Christoph Hellwig, Andrew Morton, Matt Porter,
	Alex Bounine, Linux Kernel Mailing List, kernel-janitors

On Thu, Jan 6, 2022 at 4:52 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> In [1], Christoph Hellwig has proposed to remove the wrappers in
> include/linux/pci-dma-compat.h.
>
> Some reasons why this API should be removed have been given by Julia
> Lawall in [2].
>
> A coccinelle script has been used to perform the needed transformation.
> It can be found in [3].
>
> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 09/16] media: v4l2-pci-skeleton: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:53 ` [PATCH 09/16] media: v4l2-pci-skeleton: " Christophe JAILLET
@ 2022-01-07  1:01   ` Arnd Bergmann
  2022-01-10  8:46   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-01-07  1:01 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Arnd Bergmann, Christoph Hellwig, Andrew Morton,
	Linux Kernel Mailing List, kernel-janitors

On Thu, Jan 6, 2022 at 4:53 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> In [1], Christoph Hellwig has proposed to remove the wrappers in
> include/linux/pci-dma-compat.h.
>
> Some reasons why this API should be removed have been given by Julia
> Lawall in [2].
>
> A coccinelle script has been used to perform the needed transformation.
> It can be found in [3].
>
> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Reviewed-by: Arnd Bergmann <arnd@arndb.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 22:28   ` Bjorn Helgaas
@ 2022-01-07  6:34     ` Christophe JAILLET
  2022-01-07 17:23       ` Marion & Christophe JAILLET
  0 siblings, 1 reply; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-07  6:34 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: arnd, hch, akpm, bhelgaas, linux-pci, linux-kernel, kernel-janitors

Le 06/01/2022 à 23:28, Bjorn Helgaas a écrit :
> On Thu, Jan 06, 2022 at 10:55:33PM +0100, Christophe JAILLET wrote:
>> Final step, remove pci-dma-compat.h
>>
>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> 
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
> 
> Obviously this has to be applied after all the others, so I assume
> somebody else will take this.
> 
>> ---
>>   include/linux/pci-dma-compat.h | 129 ---------------------------------
>>   include/linux/pci.h            |   3 -
>>   2 files changed, 132 deletions(-)
>>   delete mode 100644 include/linux/pci-dma-compat.h
>>
>> diff --git a/include/linux/pci-dma-compat.h b/include/linux/pci-dma-compat.h
>> deleted file mode 100644
>> index 249d4d7fbf18..000000000000
>> --- a/include/linux/pci-dma-compat.h
>> +++ /dev/null
>> @@ -1,129 +0,0 @@
>> -/* SPDX-License-Identifier: GPL-2.0 */
>> -/* include this file if the platform implements the dma_ DMA Mapping API
>> - * and wants to provide the pci_ DMA Mapping API in terms of it */
>> -
>> -#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H
>> -#define _ASM_GENERIC_PCI_DMA_COMPAT_H
>> -
>> -#include <linux/dma-mapping.h>
>> -
>> -/* This defines the direction arg to the DMA mapping routines. */
>> -#define PCI_DMA_BIDIRECTIONAL	DMA_BIDIRECTIONAL
>> -#define PCI_DMA_TODEVICE	DMA_TO_DEVICE
>> -#define PCI_DMA_FROMDEVICE	DMA_FROM_DEVICE
>> -#define PCI_DMA_NONE		DMA_NONE
>> -
>> -static inline void *
>> -pci_alloc_consistent(struct pci_dev *hwdev, size_t size,
>> -		     dma_addr_t *dma_handle)
>> -{
>> -	return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC);
>> -}
>> -
>> -static inline void *
>> -pci_zalloc_consistent(struct pci_dev *hwdev, size_t size,
>> -		      dma_addr_t *dma_handle)
>> -{
>> -	return dma_alloc_coherent(&hwdev->dev, size, dma_handle, GFP_ATOMIC);
>> -}
>> -
>> -static inline void
>> -pci_free_consistent(struct pci_dev *hwdev, size_t size,
>> -		    void *vaddr, dma_addr_t dma_handle)
>> -{
>> -	dma_free_coherent(&hwdev->dev, size, vaddr, dma_handle);
>> -}
>> -
>> -static inline dma_addr_t
>> -pci_map_single(struct pci_dev *hwdev, void *ptr, size_t size, int direction)
>> -{
>> -	return dma_map_single(&hwdev->dev, ptr, size, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline void
>> -pci_unmap_single(struct pci_dev *hwdev, dma_addr_t dma_addr,
>> -		 size_t size, int direction)
>> -{
>> -	dma_unmap_single(&hwdev->dev, dma_addr, size, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline dma_addr_t
>> -pci_map_page(struct pci_dev *hwdev, struct page *page,
>> -	     unsigned long offset, size_t size, int direction)
>> -{
>> -	return dma_map_page(&hwdev->dev, page, offset, size, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline void
>> -pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
>> -	       size_t size, int direction)
>> -{
>> -	dma_unmap_page(&hwdev->dev, dma_address, size, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline int
>> -pci_map_sg(struct pci_dev *hwdev, struct scatterlist *sg,
>> -	   int nents, int direction)
>> -{
>> -	return dma_map_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline void
>> -pci_unmap_sg(struct pci_dev *hwdev, struct scatterlist *sg,
>> -	     int nents, int direction)
>> -{
>> -	dma_unmap_sg(&hwdev->dev, sg, nents, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline void
>> -pci_dma_sync_single_for_cpu(struct pci_dev *hwdev, dma_addr_t dma_handle,
>> -		    size_t size, int direction)
>> -{
>> -	dma_sync_single_for_cpu(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline void
>> -pci_dma_sync_single_for_device(struct pci_dev *hwdev, dma_addr_t dma_handle,
>> -		    size_t size, int direction)
>> -{
>> -	dma_sync_single_for_device(&hwdev->dev, dma_handle, size, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline void
>> -pci_dma_sync_sg_for_cpu(struct pci_dev *hwdev, struct scatterlist *sg,
>> -		int nelems, int direction)
>> -{
>> -	dma_sync_sg_for_cpu(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline void
>> -pci_dma_sync_sg_for_device(struct pci_dev *hwdev, struct scatterlist *sg,
>> -		int nelems, int direction)
>> -{
>> -	dma_sync_sg_for_device(&hwdev->dev, sg, nelems, (enum dma_data_direction)direction);
>> -}
>> -
>> -static inline int
>> -pci_dma_mapping_error(struct pci_dev *pdev, dma_addr_t dma_addr)
>> -{
>> -	return dma_mapping_error(&pdev->dev, dma_addr);
>> -}
>> -
>> -#ifdef CONFIG_PCI
>> -static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
>> -{
>> -	return dma_set_mask(&dev->dev, mask);
>> -}
>> -
>> -static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
>> -{
>> -	return dma_set_coherent_mask(&dev->dev, mask);
>> -}
>> -#else
>> -static inline int pci_set_dma_mask(struct pci_dev *dev, u64 mask)
>> -{ return -EIO; }
>> -static inline int pci_set_consistent_dma_mask(struct pci_dev *dev, u64 mask)
>> -{ return -EIO; }
>> -#endif
>> -
>> -#endif
>> diff --git a/include/linux/pci.h b/include/linux/pci.h
>> index d4308f847e58..ba8771eaf380 100644
>> --- a/include/linux/pci.h
>> +++ b/include/linux/pci.h
>> @@ -2455,9 +2455,6 @@ static inline bool pci_is_thunderbolt_attached(struct pci_dev *pdev)
>>   void pci_uevent_ers(struct pci_dev *pdev, enum  pci_ers_result err_type);
>>   #endif
>>   
>> -/* Provide the legacy pci_dma_* API */
>> -#include <linux/pci-dma-compat.h>
>> -

After one more night, I should have mentionned that the way have removed 
"pci-dma-compat.h" may break OTHER drives because of indirect include.

The line above should maybe be replaced by:
   #include <linux/dma-mapping.h>
which is hidden in "pci-dma-compat.h".

Will see if built-bots complain.

CJ

>>   #define pci_printk(level, pdev, fmt, arg...) \
>>   	dev_printk(level, &(pdev)->dev, fmt, ##arg)
>>   
>> -- 
>> 2.32.0
>>
> 


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 03/16] fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-07  0:58     ` Arnd Bergmann
@ 2022-01-07  6:34       ` Christophe JAILLET
  0 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-01-07  6:34 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Christoph Hellwig, Andrew Morton, hao.wu, Tom Rix,
	Moritz Fischer, Xu Yilun, linux-fpga, Linux Kernel Mailing List,
	kernel-janitors

Le 07/01/2022 à 01:58, Arnd Bergmann a écrit :
> On Thu, Jan 6, 2022 at 6:06 PM Arnd Bergmann <arnd@arndb.de> wrote:
>>
> 
>>> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
>>> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
>>> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>>>
>>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>>> Reviewed-by: Xu Yilun <yilun.xu@intel.com>
>>
>> This is a correct conversion of the driver, but I'd prefer to keep this separate
>> from the pci-dma-compat series.
> 
> Nevermind, I just misread the patch, and it is required after all to get
> rid of pci_set_dma_mask()
> 
> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
> 

Hi,

I also have another WIP which removes these DMA(32) fallbacks.
It will be clean-up later-on.

CJ


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 04/16] media: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-07  0:51   ` Arnd Bergmann
@ 2022-01-07  7:10     ` Mauro Carvalho Chehab
  2022-02-18 13:11       ` Hans Verkuil
  0 siblings, 1 reply; 82+ messages in thread
From: Mauro Carvalho Chehab @ 2022-01-07  7:10 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Christophe JAILLET, Christoph Hellwig, Andrew Morton, awalls,
	Linux Media Mailing List, Linux Kernel Mailing List,
	kernel-janitors

Em Thu, 6 Jan 2022 19:51:47 -0500
Arnd Bergmann <arnd@arndb.de> escreveu:

> On Thu, Jan 6, 2022 at 4:50 PM Christophe JAILLET
> <christophe.jaillet@wanadoo.fr> wrote:
> >
> > In [1], Christoph Hellwig has proposed to remove the wrappers in
> > include/linux/pci-dma-compat.h.
> >
> > Some reasons why this API should be removed have been given by Julia
> > Lawall in [2].
> >
> > A coccinelle script has been used to perform the needed transformation.
> > It can be found in [3].
> >
> > [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> > [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> > [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
> >
> > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>  
> 
> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
> 
> Mauro, could you pick this up directly? It has no dependencies on the rest of
> the series.

Sure, but I already closed the media merge window. If you prefer to
apply it directly via your tree, that would be OK for me as well.
If so, just let me know. On such case:

Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>

Regards,
Mauro

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:55 ` [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API Christophe JAILLET
  2022-01-06 22:28   ` Bjorn Helgaas
@ 2022-01-07  9:20   ` kernel test robot
  2022-01-07  9:41   ` kernel test robot
  2 siblings, 0 replies; 82+ messages in thread
From: kernel test robot @ 2022-01-07  9:20 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 16704 bytes --]

Hi Christophe,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on media-tree/master]
[also build test WARNING on helgaas-pci/next soc/for-next linus/master v5.16-rc8 next-20220106]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Christophe-JAILLET/Remove-usage-of-the-deprecated-pci-dma-compat-h-API/20220107-055614
base:   git://linuxtv.org/media_tree.git master
config: s390-allyesconfig (https://download.01.org/0day-ci/archive/20220107/202201071756.7k3Nd6AQ-lkp(a)intel.com/config)
compiler: s390-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/24f5ae55a3ed7f1638a921db66d8e2f428f2e79d
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Christophe-JAILLET/Remove-usage-of-the-deprecated-pci-dma-compat-h-API/20220107-055614
        git checkout 24f5ae55a3ed7f1638a921db66d8e2f428f2e79d
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=s390 SHELL=/bin/bash drivers/s390/net/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/s390/net/ism_drv.c: In function 'register_sba':
   drivers/s390/net/ism_drv.c:93:15: error: implicit declaration of function 'dma_alloc_coherent' [-Werror=implicit-function-declaration]
      93 |         sba = dma_alloc_coherent(&ism->pdev->dev, PAGE_SIZE, &dma_handle,
         |               ^~~~~~~~~~~~~~~~~~
>> drivers/s390/net/ism_drv.c:93:13: warning: assignment to 'struct ism_sba *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
      93 |         sba = dma_alloc_coherent(&ism->pdev->dev, PAGE_SIZE, &dma_handle,
         |             ^
   drivers/s390/net/ism_drv.c:104:17: error: implicit declaration of function 'dma_free_coherent' [-Werror=implicit-function-declaration]
     104 |                 dma_free_coherent(&ism->pdev->dev, PAGE_SIZE, sba, dma_handle);
         |                 ^~~~~~~~~~~~~~~~~
   drivers/s390/net/ism_drv.c: In function 'register_ieq':
>> drivers/s390/net/ism_drv.c:120:13: warning: assignment to 'struct ism_eq *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     120 |         ieq = dma_alloc_coherent(&ism->pdev->dev, PAGE_SIZE, &dma_handle,
         |             ^
   drivers/s390/net/ism_drv.c: In function 'ism_alloc_dmb':
   drivers/s390/net/ism_drv.c:229:40: error: implicit declaration of function 'dma_get_max_seg_size' [-Werror=implicit-function-declaration]
     229 |         if (PAGE_ALIGN(dmb->dmb_len) > dma_get_max_seg_size(&ism->pdev->dev))
         |                                        ^~~~~~~~~~~~~~~~~~~~
>> drivers/s390/net/ism_drv.c:244:23: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     244 |         dmb->cpu_addr = dma_alloc_coherent(&ism->pdev->dev, dmb->dmb_len,
         |                       ^
   drivers/s390/net/ism_drv.c: In function 'ism_probe':
   drivers/s390/net/ism_drv.c:558:15: error: implicit declaration of function 'dma_set_mask'; did you mean 'xa_set_mark'? [-Werror=implicit-function-declaration]
     558 |         ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
         |               ^~~~~~~~~~~~
         |               xa_set_mark
   drivers/s390/net/ism_drv.c:558:40: error: implicit declaration of function 'DMA_BIT_MASK'; did you mean 'BIT_MASK'? [-Werror=implicit-function-declaration]
     558 |         ret = dma_set_mask(&pdev->dev, DMA_BIT_MASK(64));
         |                                        ^~~~~~~~~~~~
         |                                        BIT_MASK
   drivers/s390/net/ism_drv.c:562:9: error: implicit declaration of function 'dma_set_seg_boundary' [-Werror=implicit-function-declaration]
     562 |         dma_set_seg_boundary(&pdev->dev, SZ_1M - 1);
         |         ^~~~~~~~~~~~~~~~~~~~
   drivers/s390/net/ism_drv.c:563:9: error: implicit declaration of function 'dma_set_max_seg_size' [-Werror=implicit-function-declaration]
     563 |         dma_set_max_seg_size(&pdev->dev, SZ_1M);
         |         ^~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +93 drivers/s390/net/ism_drv.c

684b89bc39ce4f Sebastian Ott    2018-06-28   86  
684b89bc39ce4f Sebastian Ott    2018-06-28   87  static int register_sba(struct ism_dev *ism)
684b89bc39ce4f Sebastian Ott    2018-06-28   88  {
684b89bc39ce4f Sebastian Ott    2018-06-28   89  	union ism_reg_sba cmd;
684b89bc39ce4f Sebastian Ott    2018-06-28   90  	dma_addr_t dma_handle;
684b89bc39ce4f Sebastian Ott    2018-06-28   91  	struct ism_sba *sba;
684b89bc39ce4f Sebastian Ott    2018-06-28   92  
750afb08ca7131 Luis Chamberlain 2019-01-04  @93  	sba = dma_alloc_coherent(&ism->pdev->dev, PAGE_SIZE, &dma_handle,
750afb08ca7131 Luis Chamberlain 2019-01-04   94  				 GFP_KERNEL);
684b89bc39ce4f Sebastian Ott    2018-06-28   95  	if (!sba)
684b89bc39ce4f Sebastian Ott    2018-06-28   96  		return -ENOMEM;
684b89bc39ce4f Sebastian Ott    2018-06-28   97  
684b89bc39ce4f Sebastian Ott    2018-06-28   98  	memset(&cmd, 0, sizeof(cmd));
684b89bc39ce4f Sebastian Ott    2018-06-28   99  	cmd.request.hdr.cmd = ISM_REG_SBA;
684b89bc39ce4f Sebastian Ott    2018-06-28  100  	cmd.request.hdr.len = sizeof(cmd.request);
684b89bc39ce4f Sebastian Ott    2018-06-28  101  	cmd.request.sba = dma_handle;
684b89bc39ce4f Sebastian Ott    2018-06-28  102  
684b89bc39ce4f Sebastian Ott    2018-06-28  103  	if (ism_cmd(ism, &cmd)) {
684b89bc39ce4f Sebastian Ott    2018-06-28  104  		dma_free_coherent(&ism->pdev->dev, PAGE_SIZE, sba, dma_handle);
684b89bc39ce4f Sebastian Ott    2018-06-28  105  		return -EIO;
684b89bc39ce4f Sebastian Ott    2018-06-28  106  	}
684b89bc39ce4f Sebastian Ott    2018-06-28  107  
684b89bc39ce4f Sebastian Ott    2018-06-28  108  	ism->sba = sba;
684b89bc39ce4f Sebastian Ott    2018-06-28  109  	ism->sba_dma_addr = dma_handle;
684b89bc39ce4f Sebastian Ott    2018-06-28  110  
684b89bc39ce4f Sebastian Ott    2018-06-28  111  	return 0;
684b89bc39ce4f Sebastian Ott    2018-06-28  112  }
684b89bc39ce4f Sebastian Ott    2018-06-28  113  
684b89bc39ce4f Sebastian Ott    2018-06-28  114  static int register_ieq(struct ism_dev *ism)
684b89bc39ce4f Sebastian Ott    2018-06-28  115  {
684b89bc39ce4f Sebastian Ott    2018-06-28  116  	union ism_reg_ieq cmd;
684b89bc39ce4f Sebastian Ott    2018-06-28  117  	dma_addr_t dma_handle;
684b89bc39ce4f Sebastian Ott    2018-06-28  118  	struct ism_eq *ieq;
684b89bc39ce4f Sebastian Ott    2018-06-28  119  
750afb08ca7131 Luis Chamberlain 2019-01-04 @120  	ieq = dma_alloc_coherent(&ism->pdev->dev, PAGE_SIZE, &dma_handle,
750afb08ca7131 Luis Chamberlain 2019-01-04  121  				 GFP_KERNEL);
684b89bc39ce4f Sebastian Ott    2018-06-28  122  	if (!ieq)
684b89bc39ce4f Sebastian Ott    2018-06-28  123  		return -ENOMEM;
684b89bc39ce4f Sebastian Ott    2018-06-28  124  
684b89bc39ce4f Sebastian Ott    2018-06-28  125  	memset(&cmd, 0, sizeof(cmd));
684b89bc39ce4f Sebastian Ott    2018-06-28  126  	cmd.request.hdr.cmd = ISM_REG_IEQ;
684b89bc39ce4f Sebastian Ott    2018-06-28  127  	cmd.request.hdr.len = sizeof(cmd.request);
684b89bc39ce4f Sebastian Ott    2018-06-28  128  	cmd.request.ieq = dma_handle;
684b89bc39ce4f Sebastian Ott    2018-06-28  129  	cmd.request.len = sizeof(*ieq);
684b89bc39ce4f Sebastian Ott    2018-06-28  130  
684b89bc39ce4f Sebastian Ott    2018-06-28  131  	if (ism_cmd(ism, &cmd)) {
684b89bc39ce4f Sebastian Ott    2018-06-28  132  		dma_free_coherent(&ism->pdev->dev, PAGE_SIZE, ieq, dma_handle);
684b89bc39ce4f Sebastian Ott    2018-06-28  133  		return -EIO;
684b89bc39ce4f Sebastian Ott    2018-06-28  134  	}
684b89bc39ce4f Sebastian Ott    2018-06-28  135  
684b89bc39ce4f Sebastian Ott    2018-06-28  136  	ism->ieq = ieq;
684b89bc39ce4f Sebastian Ott    2018-06-28  137  	ism->ieq_idx = -1;
684b89bc39ce4f Sebastian Ott    2018-06-28  138  	ism->ieq_dma_addr = dma_handle;
684b89bc39ce4f Sebastian Ott    2018-06-28  139  
684b89bc39ce4f Sebastian Ott    2018-06-28  140  	return 0;
684b89bc39ce4f Sebastian Ott    2018-06-28  141  }
684b89bc39ce4f Sebastian Ott    2018-06-28  142  
684b89bc39ce4f Sebastian Ott    2018-06-28  143  static int unregister_sba(struct ism_dev *ism)
684b89bc39ce4f Sebastian Ott    2018-06-28  144  {
0ff06c44efeede Sebastian Ott    2019-02-14  145  	int ret;
0ff06c44efeede Sebastian Ott    2019-02-14  146  
684b89bc39ce4f Sebastian Ott    2018-06-28  147  	if (!ism->sba)
684b89bc39ce4f Sebastian Ott    2018-06-28  148  		return 0;
684b89bc39ce4f Sebastian Ott    2018-06-28  149  
0ff06c44efeede Sebastian Ott    2019-02-14  150  	ret = ism_cmd_simple(ism, ISM_UNREG_SBA);
0ff06c44efeede Sebastian Ott    2019-02-14  151  	if (ret && ret != ISM_ERROR)
684b89bc39ce4f Sebastian Ott    2018-06-28  152  		return -EIO;
684b89bc39ce4f Sebastian Ott    2018-06-28  153  
684b89bc39ce4f Sebastian Ott    2018-06-28  154  	dma_free_coherent(&ism->pdev->dev, PAGE_SIZE,
684b89bc39ce4f Sebastian Ott    2018-06-28  155  			  ism->sba, ism->sba_dma_addr);
684b89bc39ce4f Sebastian Ott    2018-06-28  156  
684b89bc39ce4f Sebastian Ott    2018-06-28  157  	ism->sba = NULL;
684b89bc39ce4f Sebastian Ott    2018-06-28  158  	ism->sba_dma_addr = 0;
684b89bc39ce4f Sebastian Ott    2018-06-28  159  
684b89bc39ce4f Sebastian Ott    2018-06-28  160  	return 0;
684b89bc39ce4f Sebastian Ott    2018-06-28  161  }
684b89bc39ce4f Sebastian Ott    2018-06-28  162  
684b89bc39ce4f Sebastian Ott    2018-06-28  163  static int unregister_ieq(struct ism_dev *ism)
684b89bc39ce4f Sebastian Ott    2018-06-28  164  {
0ff06c44efeede Sebastian Ott    2019-02-14  165  	int ret;
0ff06c44efeede Sebastian Ott    2019-02-14  166  
684b89bc39ce4f Sebastian Ott    2018-06-28  167  	if (!ism->ieq)
684b89bc39ce4f Sebastian Ott    2018-06-28  168  		return 0;
684b89bc39ce4f Sebastian Ott    2018-06-28  169  
0ff06c44efeede Sebastian Ott    2019-02-14  170  	ret = ism_cmd_simple(ism, ISM_UNREG_IEQ);
0ff06c44efeede Sebastian Ott    2019-02-14  171  	if (ret && ret != ISM_ERROR)
684b89bc39ce4f Sebastian Ott    2018-06-28  172  		return -EIO;
684b89bc39ce4f Sebastian Ott    2018-06-28  173  
684b89bc39ce4f Sebastian Ott    2018-06-28  174  	dma_free_coherent(&ism->pdev->dev, PAGE_SIZE,
684b89bc39ce4f Sebastian Ott    2018-06-28  175  			  ism->ieq, ism->ieq_dma_addr);
684b89bc39ce4f Sebastian Ott    2018-06-28  176  
684b89bc39ce4f Sebastian Ott    2018-06-28  177  	ism->ieq = NULL;
684b89bc39ce4f Sebastian Ott    2018-06-28  178  	ism->ieq_dma_addr = 0;
684b89bc39ce4f Sebastian Ott    2018-06-28  179  
684b89bc39ce4f Sebastian Ott    2018-06-28  180  	return 0;
684b89bc39ce4f Sebastian Ott    2018-06-28  181  }
684b89bc39ce4f Sebastian Ott    2018-06-28  182  
684b89bc39ce4f Sebastian Ott    2018-06-28  183  static int ism_read_local_gid(struct ism_dev *ism)
684b89bc39ce4f Sebastian Ott    2018-06-28  184  {
684b89bc39ce4f Sebastian Ott    2018-06-28  185  	union ism_read_gid cmd;
684b89bc39ce4f Sebastian Ott    2018-06-28  186  	int ret;
684b89bc39ce4f Sebastian Ott    2018-06-28  187  
684b89bc39ce4f Sebastian Ott    2018-06-28  188  	memset(&cmd, 0, sizeof(cmd));
684b89bc39ce4f Sebastian Ott    2018-06-28  189  	cmd.request.hdr.cmd = ISM_READ_GID;
684b89bc39ce4f Sebastian Ott    2018-06-28  190  	cmd.request.hdr.len = sizeof(cmd.request);
684b89bc39ce4f Sebastian Ott    2018-06-28  191  
684b89bc39ce4f Sebastian Ott    2018-06-28  192  	ret = ism_cmd(ism, &cmd);
684b89bc39ce4f Sebastian Ott    2018-06-28  193  	if (ret)
684b89bc39ce4f Sebastian Ott    2018-06-28  194  		goto out;
684b89bc39ce4f Sebastian Ott    2018-06-28  195  
684b89bc39ce4f Sebastian Ott    2018-06-28  196  	ism->smcd->local_gid = cmd.response.gid;
684b89bc39ce4f Sebastian Ott    2018-06-28  197  out:
684b89bc39ce4f Sebastian Ott    2018-06-28  198  	return ret;
684b89bc39ce4f Sebastian Ott    2018-06-28  199  }
684b89bc39ce4f Sebastian Ott    2018-06-28  200  
684b89bc39ce4f Sebastian Ott    2018-06-28  201  static int ism_query_rgid(struct smcd_dev *smcd, u64 rgid, u32 vid_valid,
684b89bc39ce4f Sebastian Ott    2018-06-28  202  			  u32 vid)
684b89bc39ce4f Sebastian Ott    2018-06-28  203  {
684b89bc39ce4f Sebastian Ott    2018-06-28  204  	struct ism_dev *ism = smcd->priv;
684b89bc39ce4f Sebastian Ott    2018-06-28  205  	union ism_query_rgid cmd;
684b89bc39ce4f Sebastian Ott    2018-06-28  206  
684b89bc39ce4f Sebastian Ott    2018-06-28  207  	memset(&cmd, 0, sizeof(cmd));
684b89bc39ce4f Sebastian Ott    2018-06-28  208  	cmd.request.hdr.cmd = ISM_QUERY_RGID;
684b89bc39ce4f Sebastian Ott    2018-06-28  209  	cmd.request.hdr.len = sizeof(cmd.request);
684b89bc39ce4f Sebastian Ott    2018-06-28  210  
684b89bc39ce4f Sebastian Ott    2018-06-28  211  	cmd.request.rgid = rgid;
684b89bc39ce4f Sebastian Ott    2018-06-28  212  	cmd.request.vlan_valid = vid_valid;
684b89bc39ce4f Sebastian Ott    2018-06-28  213  	cmd.request.vlan_id = vid;
684b89bc39ce4f Sebastian Ott    2018-06-28  214  
684b89bc39ce4f Sebastian Ott    2018-06-28  215  	return ism_cmd(ism, &cmd);
684b89bc39ce4f Sebastian Ott    2018-06-28  216  }
684b89bc39ce4f Sebastian Ott    2018-06-28  217  
684b89bc39ce4f Sebastian Ott    2018-06-28  218  static void ism_free_dmb(struct ism_dev *ism, struct smcd_dmb *dmb)
684b89bc39ce4f Sebastian Ott    2018-06-28  219  {
684b89bc39ce4f Sebastian Ott    2018-06-28  220  	clear_bit(dmb->sba_idx, ism->sba_bitmap);
684b89bc39ce4f Sebastian Ott    2018-06-28  221  	dma_free_coherent(&ism->pdev->dev, dmb->dmb_len,
684b89bc39ce4f Sebastian Ott    2018-06-28  222  			  dmb->cpu_addr, dmb->dma_addr);
684b89bc39ce4f Sebastian Ott    2018-06-28  223  }
684b89bc39ce4f Sebastian Ott    2018-06-28  224  
684b89bc39ce4f Sebastian Ott    2018-06-28  225  static int ism_alloc_dmb(struct ism_dev *ism, struct smcd_dmb *dmb)
684b89bc39ce4f Sebastian Ott    2018-06-28  226  {
684b89bc39ce4f Sebastian Ott    2018-06-28  227  	unsigned long bit;
684b89bc39ce4f Sebastian Ott    2018-06-28  228  
684b89bc39ce4f Sebastian Ott    2018-06-28  229  	if (PAGE_ALIGN(dmb->dmb_len) > dma_get_max_seg_size(&ism->pdev->dev))
684b89bc39ce4f Sebastian Ott    2018-06-28  230  		return -EINVAL;
684b89bc39ce4f Sebastian Ott    2018-06-28  231  
684b89bc39ce4f Sebastian Ott    2018-06-28  232  	if (!dmb->sba_idx) {
684b89bc39ce4f Sebastian Ott    2018-06-28  233  		bit = find_next_zero_bit(ism->sba_bitmap, ISM_NR_DMBS,
684b89bc39ce4f Sebastian Ott    2018-06-28  234  					 ISM_DMB_BIT_OFFSET);
684b89bc39ce4f Sebastian Ott    2018-06-28  235  		if (bit == ISM_NR_DMBS)
211e5b7a0007e6 Karsten Graul    2020-07-26  236  			return -ENOSPC;
684b89bc39ce4f Sebastian Ott    2018-06-28  237  
684b89bc39ce4f Sebastian Ott    2018-06-28  238  		dmb->sba_idx = bit;
684b89bc39ce4f Sebastian Ott    2018-06-28  239  	}
684b89bc39ce4f Sebastian Ott    2018-06-28  240  	if (dmb->sba_idx < ISM_DMB_BIT_OFFSET ||
684b89bc39ce4f Sebastian Ott    2018-06-28  241  	    test_and_set_bit(dmb->sba_idx, ism->sba_bitmap))
684b89bc39ce4f Sebastian Ott    2018-06-28  242  		return -EINVAL;
684b89bc39ce4f Sebastian Ott    2018-06-28  243  
750afb08ca7131 Luis Chamberlain 2019-01-04 @244  	dmb->cpu_addr = dma_alloc_coherent(&ism->pdev->dev, dmb->dmb_len,
750afb08ca7131 Luis Chamberlain 2019-01-04  245  					   &dmb->dma_addr,
750afb08ca7131 Luis Chamberlain 2019-01-04  246  					   GFP_KERNEL | __GFP_NOWARN | __GFP_NOMEMALLOC | __GFP_COMP | __GFP_NORETRY);
684b89bc39ce4f Sebastian Ott    2018-06-28  247  	if (!dmb->cpu_addr)
684b89bc39ce4f Sebastian Ott    2018-06-28  248  		clear_bit(dmb->sba_idx, ism->sba_bitmap);
684b89bc39ce4f Sebastian Ott    2018-06-28  249  
684b89bc39ce4f Sebastian Ott    2018-06-28  250  	return dmb->cpu_addr ? 0 : -ENOMEM;
684b89bc39ce4f Sebastian Ott    2018-06-28  251  }
684b89bc39ce4f Sebastian Ott    2018-06-28  252  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:55 ` [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API Christophe JAILLET
  2022-01-06 22:28   ` Bjorn Helgaas
  2022-01-07  9:20   ` kernel test robot
@ 2022-01-07  9:41   ` kernel test robot
  2 siblings, 0 replies; 82+ messages in thread
From: kernel test robot @ 2022-01-07  9:41 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 5665 bytes --]

Hi Christophe,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on media-tree/master]
[also build test ERROR on helgaas-pci/next soc/for-next linus/master v5.16-rc8 next-20220106]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Christophe-JAILLET/Remove-usage-of-the-deprecated-pci-dma-compat-h-API/20220107-055614
base:   git://linuxtv.org/media_tree.git master
config: arc-randconfig-r025-20220107 (https://download.01.org/0day-ci/archive/20220107/202201071737.L7WbVLeU-lkp(a)intel.com/config)
compiler: arceb-elf-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/24f5ae55a3ed7f1638a921db66d8e2f428f2e79d
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Christophe-JAILLET/Remove-usage-of-the-deprecated-pci-dma-compat-h-API/20220107-055614
        git checkout 24f5ae55a3ed7f1638a921db66d8e2f428f2e79d
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arc SHELL=/bin/bash drivers/scsi/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All error/warnings (new ones prefixed by >>):

   In file included from drivers/scsi/fdomain.c:87:
>> include/scsi/scsicam.h:16:31: warning: 'struct block_device' declared inside parameter list will not be visible outside of this definition or declaration
      16 | int scsicam_bios_param(struct block_device *bdev, sector_t capacity, int *ip);
         |                               ^~~~~~~~~~~~
   include/scsi/scsicam.h:17:27: warning: 'struct block_device' declared inside parameter list will not be visible outside of this definition or declaration
      17 | bool scsi_partsize(struct block_device *bdev, sector_t capacity, int geom[3]);
         |                           ^~~~~~~~~~~~
   include/scsi/scsicam.h:18:40: warning: 'struct block_device' declared inside parameter list will not be visible outside of this definition or declaration
      18 | unsigned char *scsi_bios_ptable(struct block_device *bdev);
         |                                        ^~~~~~~~~~~~
   drivers/scsi/fdomain.c: In function 'fdomain_biosparam':
>> drivers/scsi/fdomain.c:468:45: error: passing argument 1 of 'scsi_bios_ptable' from incompatible pointer type [-Werror=incompatible-pointer-types]
     468 |         unsigned char *p = scsi_bios_ptable(bdev);
         |                                             ^~~~
         |                                             |
         |                                             struct block_device *
   In file included from drivers/scsi/fdomain.c:87:
   include/scsi/scsicam.h:18:54: note: expected 'struct block_device *' but argument is of type 'struct block_device *'
      18 | unsigned char *scsi_bios_ptable(struct block_device *bdev);
         |                                 ~~~~~~~~~~~~~~~~~~~~~^~~~
   cc1: some warnings being treated as errors


vim +/scsi_bios_ptable +468 drivers/scsi/fdomain.c

ebeb466531154d6 Ondrej Zary 2019-05-14  463  
ebeb466531154d6 Ondrej Zary 2019-05-14  464  static int fdomain_biosparam(struct scsi_device *sdev,
ebeb466531154d6 Ondrej Zary 2019-05-14  465  			     struct block_device *bdev,	sector_t capacity,
ebeb466531154d6 Ondrej Zary 2019-05-14  466  			     int geom[])
ebeb466531154d6 Ondrej Zary 2019-05-14  467  {
ebeb466531154d6 Ondrej Zary 2019-05-14 @468  	unsigned char *p = scsi_bios_ptable(bdev);
ebeb466531154d6 Ondrej Zary 2019-05-14  469  
ebeb466531154d6 Ondrej Zary 2019-05-14  470  	if (p && p[65] == 0xaa && p[64] == 0x55 /* Partition table valid */
ebeb466531154d6 Ondrej Zary 2019-05-14  471  	    && p[4]) {	 /* Partition type */
ebeb466531154d6 Ondrej Zary 2019-05-14  472  		geom[0] = p[5] + 1;	/* heads */
ebeb466531154d6 Ondrej Zary 2019-05-14  473  		geom[1] = p[6] & 0x3f;	/* sectors */
ebeb466531154d6 Ondrej Zary 2019-05-14  474  	} else {
ebeb466531154d6 Ondrej Zary 2019-05-14  475  		if (capacity >= 0x7e0000) {
ebeb466531154d6 Ondrej Zary 2019-05-14  476  			geom[0] = 255;	/* heads */
ebeb466531154d6 Ondrej Zary 2019-05-14  477  			geom[1] = 63;	/* sectors */
ebeb466531154d6 Ondrej Zary 2019-05-14  478  		} else if (capacity >= 0x200000) {
ebeb466531154d6 Ondrej Zary 2019-05-14  479  			geom[0] = 128;	/* heads */
ebeb466531154d6 Ondrej Zary 2019-05-14  480  			geom[1] = 63;	/* sectors */
ebeb466531154d6 Ondrej Zary 2019-05-14  481  		} else {
ebeb466531154d6 Ondrej Zary 2019-05-14  482  			geom[0] = 64;	/* heads */
ebeb466531154d6 Ondrej Zary 2019-05-14  483  			geom[1] = 32;	/* sectors */
ebeb466531154d6 Ondrej Zary 2019-05-14  484  		}
ebeb466531154d6 Ondrej Zary 2019-05-14  485  	}
ebeb466531154d6 Ondrej Zary 2019-05-14  486  	geom[2] = sector_div(capacity, geom[0] * geom[1]);
ebeb466531154d6 Ondrej Zary 2019-05-14  487  	kfree(p);
ebeb466531154d6 Ondrej Zary 2019-05-14  488  
ebeb466531154d6 Ondrej Zary 2019-05-14  489  	return 0;
ebeb466531154d6 Ondrej Zary 2019-05-14  490  }
ebeb466531154d6 Ondrej Zary 2019-05-14  491  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 06/16] sparc: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:51 ` [PATCH 06/16] sparc: " Christophe JAILLET
  2022-01-07  0:54   ` Arnd Bergmann
@ 2022-01-07 11:04   ` David Miller
  2022-01-10  8:45   ` Christoph Hellwig
  2 siblings, 0 replies; 82+ messages in thread
From: David Miller @ 2022-01-07 11:04 UTC (permalink / raw)
  To: christophe.jaillet
  Cc: arnd, hch, akpm, sparclinux, linux-kernel, kernel-janitors

From: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date: Thu,  6 Jan 2022 22:51:38 +0100

> In [1], Christoph Hellwig has proposed to remove the wrappers in
> include/linux/pci-dma-compat.h.
> 
> Some reasons why this API should be removed have been given by Julia
> Lawall in [2].
> 
> A coccinelle script has been used to perform the needed transformation.
> It can be found in [3].
> 
> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-07  6:34     ` Christophe JAILLET
@ 2022-01-07 17:23       ` Marion & Christophe JAILLET
  2022-01-10  8:49         ` Christoph Hellwig
  0 siblings, 1 reply; 82+ messages in thread
From: Marion & Christophe JAILLET @ 2022-01-07 17:23 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: arnd, hch, akpm, bhelgaas, linux-pci, linux-kernel, kernel-janitors



Le 07/01/2022 à 07:34, Christophe JAILLET a écrit :
> Le 06/01/2022 à 23:28, Bjorn Helgaas a écrit :
>> On Thu, Jan 06, 2022 at 10:55:33PM +0100, Christophe JAILLET wrote:
>>> Final step, remove pci-dma-compat.h
>>>
>>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
>>
>> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
>>
>> Obviously this has to be applied after all the others, so I assume
>> somebody else will take this.
>>
>>> ---
>>>   include/linux/pci-dma-compat.h | 129 ---------------------------------
>>>   include/linux/pci.h            |   3 -
>>>   2 files changed, 132 deletions(-)
>>>   delete mode 100644 include/linux/pci-dma-compat.h
>>>
>>> diff --git a/include/linux/pci-dma-compat.h 
>>> b/include/linux/pci-dma-compat.h
>>> deleted file mode 100644
>>> index 249d4d7fbf18..000000000000
>>> --- a/include/linux/pci-dma-compat.h
>>> +++ /dev/null
>>> @@ -1,129 +0,0 @@
>>> -/* SPDX-License-Identifier: GPL-2.0 */
>>> -/* include this file if the platform implements the dma_ DMA Mapping 
>>> API
>>> - * and wants to provide the pci_ DMA Mapping API in terms of it */
>>> -
>>> -#ifndef _ASM_GENERIC_PCI_DMA_COMPAT_H
>>> -#define _ASM_GENERIC_PCI_DMA_COMPAT_H
>>> -
>>> -#include <linux/dma-mapping.h>
>>> -
>>> [...]
>>>  >>> diff --git a/include/linux/pci.h b/include/linux/pci.h
>>> index d4308f847e58..ba8771eaf380 100644
>>> --- a/include/linux/pci.h
>>> +++ b/include/linux/pci.h
>>> @@ -2455,9 +2455,6 @@ static inline bool 
>>> pci_is_thunderbolt_attached(struct pci_dev *pdev)
>>>   void pci_uevent_ers(struct pci_dev *pdev, enum  pci_ers_result 
>>> err_type);
>>>   #endif
>>> -/* Provide the legacy pci_dma_* API */
>>> -#include <linux/pci-dma-compat.h>
>>> -
> 
> After one more night, I should have mentionned that the way have removed 
> "pci-dma-compat.h" may break OTHER drives because of indirect include.
> 
> The line above should maybe be replaced by:
>    #include <linux/dma-mapping.h>
> which is hidden in "pci-dma-compat.h".
> 
> Will see if built-bots complain.

And so they did.

What is the best option?
1. Add    #include <linux/dma-mapping.h>?		or
2. Add this "missing" include in needed place?

I would say 2, but I would need help, because I don't have a built farm 
at home! :)



This breaks:

    drivers/s390/net/ism_drv.c: In function 'register_sba':
    drivers/s390/net/ism_drv.c:93:15: error: implicit declaration of 
function 'dma_alloc_coherent' [-Werror=implicit-function-declaration]
       93 |         sba = dma_alloc_coherent(&ism->pdev->dev, PAGE_SIZE, 
&dma_handle,
          |               ^~~~~~~~~~~~~~~~~~
[...]



I got another built failure that I don't understand:

    In file included from drivers/scsi/fdomain.c:87:
 >> include/scsi/scsicam.h:16:31: warning: 'struct block_device' 
declared inside parameter list will not be visible outside of this 
definition or declaration
       16 | int scsicam_bios_param(struct block_device *bdev, sector_t 
capacity, int *ip);
          |                               ^~~~~~~~~~~~
    include/scsi/scsicam.h:17:27: warning: 'struct block_device' 
declared inside parameter list will not be visible outside of this 
definition or declaration
       17 | bool scsi_partsize(struct block_device *bdev, sector_t 
capacity, int geom[3]);
          |                           ^~~~~~~~~~~~
    include/scsi/scsicam.h:18:40: warning: 'struct block_device' 
declared inside parameter list will not be visible outside of this 
definition or declaration
       18 | unsigned char *scsi_bios_ptable(struct block_device *bdev);
          |                                        ^~~~~~~~~~~~
    drivers/scsi/fdomain.c: In function 'fdomain_biosparam':
 >> drivers/scsi/fdomain.c:468:45: error: passing argument 1 of 
'scsi_bios_ptable' from incompatible pointer type 
[-Werror=incompatible-pointer-types]
      468 |         unsigned char *p = scsi_bios_ptable(bdev);
          |                                             ^~~~
          |                                             |
          |                                             struct 
block_device *
    In file included from drivers/scsi/fdomain.c:87:
    include/scsi/scsicam.h:18:54: note: expected 'struct block_device *' 
but argument is of type 'struct block_device *'
       18 | unsigned char *scsi_bios_ptable(struct block_device *bdev);
          |                                 ~~~~~~~~~~~~~~~~~~~~~^~~~


CJ

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 07/16] dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-07  0:56   ` Arnd Bergmann
@ 2022-01-08 16:47     ` Vinod Koul
  0 siblings, 0 replies; 82+ messages in thread
From: Vinod Koul @ 2022-01-08 16:47 UTC (permalink / raw)
  To: Arnd Bergmann
  Cc: Christophe JAILLET, Christoph Hellwig, Andrew Morton, dmaengine,
	Linux Kernel Mailing List, kernel-janitors

On 06-01-22, 19:56, Arnd Bergmann wrote:
> On Thu, Jan 6, 2022 at 4:52 PM Christophe JAILLET
> <christophe.jaillet@wanadoo.fr> wrote:
> >
> > In [1], Christoph Hellwig has proposed to remove the wrappers in
> > include/linux/pci-dma-compat.h.
> >
> > Some reasons why this API should be removed have been given by Julia
> > Lawall in [2].
> >
> > A coccinelle script has been used to perform the needed transformation.
> > It can be found in [3].
> >
> > [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
> > [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
> > [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
> >
> > Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> 
> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
> 
> Vinod, can you apply this one to the dmaengine tree? It has no other
> dependencies.

Sure, applied now.

Thanks
-- 
~Vinod

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 01/16] alpha: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:46 ` [PATCH 01/16] alpha: " Christophe JAILLET
@ 2022-01-10  8:43   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:43 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, linux-alpha, linux-kernel,
	kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 02/16] floppy: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:47   ` Christophe JAILLET
@ 2022-01-10  8:43     ` Christoph Hellwig
  -1 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:43 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, kernel-janitors, linux-kernel, hch, paulus, akpm,
	linuxppc-dev, Christoph Hellwig


Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 02/16] floppy: Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-10  8:43     ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:43 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, mpe, benh, paulus, linuxppc-dev, linux-kernel,
	kernel-janitors, Christoph Hellwig


Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 03/16] fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:49 ` [PATCH 03/16] fpga: dfl: pci: " Christophe JAILLET
  2022-01-06 23:06   ` Arnd Bergmann
@ 2022-01-10  8:44   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:44 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, hao.wu, trix, mdf, yilun.xu, linux-fpga,
	linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 04/16] media: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:50 ` [PATCH 04/16] media: " Christophe JAILLET
  2022-01-07  0:51   ` Arnd Bergmann
@ 2022-01-10  8:44   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:44 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, awalls, mchehab, linux-media, linux-kernel,
	kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 05/16] agp/intel: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:51 ` [PATCH 05/16] agp/intel: " Christophe JAILLET
  2022-01-07  0:53   ` Arnd Bergmann
@ 2022-01-10  8:45   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:45 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, airlied, linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 06/16] sparc: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:51 ` [PATCH 06/16] sparc: " Christophe JAILLET
  2022-01-07  0:54   ` Arnd Bergmann
  2022-01-07 11:04   ` David Miller
@ 2022-01-10  8:45   ` Christoph Hellwig
  2 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:45 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, davem, sparclinux, linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 07/16] dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:52 ` [PATCH 07/16] dmaengine: pch_dma: " Christophe JAILLET
  2022-01-07  0:56   ` Arnd Bergmann
@ 2022-01-10  8:45   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:45 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, vkoul, dmaengine, linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 08/16] rapidio/tsi721: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:52 ` [PATCH 08/16] rapidio/tsi721: " Christophe JAILLET
  2022-01-07  1:00   ` Arnd Bergmann
@ 2022-01-10  8:46   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:46 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, mporter, alex.bou9, linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 09/16] media: v4l2-pci-skeleton: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:53 ` [PATCH 09/16] media: v4l2-pci-skeleton: " Christophe JAILLET
  2022-01-07  1:01   ` Arnd Bergmann
@ 2022-01-10  8:46   ` Christoph Hellwig
  1 sibling, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:46 UTC (permalink / raw)
  To: Christophe JAILLET; +Cc: arnd, hch, akpm, linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 10/16] scsi: message: fusion: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:54 ` [PATCH 10/16] scsi: message: fusion: " Christophe JAILLET
@ 2022-01-10  8:47   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:47 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani, MPT-FusionLinux.pdl, linux-scsi,
	linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 11/16] scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
  2022-01-06 21:54 ` [PATCH 11/16] scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()' Christophe JAILLET
@ 2022-01-10  8:47   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:47 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani, MPT-FusionLinux.pdl, linux-scsi,
	linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 12/16] scsi: mptbase: Use dma_alloc_coherent()
  2022-01-06 21:54 ` [PATCH 12/16] scsi: mptbase: Use dma_alloc_coherent() Christophe JAILLET
@ 2022-01-10  8:47   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:47 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani, MPT-FusionLinux.pdl, linux-scsi,
	linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 13/16] scsi: mptsas: Use dma_alloc_coherent() in mptsas_exp_repmanufacture_info()
  2022-01-06 21:54 ` [PATCH 13/16] scsi: mptsas: Use dma_alloc_coherent() in mptsas_exp_repmanufacture_info() Christophe JAILLET
@ 2022-01-10  8:48   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:48 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani, MPT-FusionLinux.pdl, linux-scsi,
	linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 14/16] scsi: mptsas: Use dma_alloc_coherent()
  2022-01-06 21:54 ` [PATCH 14/16] scsi: mptsas: Use dma_alloc_coherent() Christophe JAILLET
@ 2022-01-10  8:48   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:48 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani, MPT-FusionLinux.pdl, linux-scsi,
	linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 15/16] scsi: mptctl: Use dma_alloc_coherent()
  2022-01-06 21:54 ` [PATCH 15/16] scsi: mptctl: " Christophe JAILLET
@ 2022-01-10  8:48   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:48 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani, MPT-FusionLinux.pdl, linux-scsi,
	linux-kernel, kernel-janitors

Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-07 17:23       ` Marion & Christophe JAILLET
@ 2022-01-10  8:49         ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-01-10  8:49 UTC (permalink / raw)
  To: Marion & Christophe JAILLET
  Cc: Bjorn Helgaas, arnd, hch, akpm, bhelgaas, linux-pci,
	linux-kernel, kernel-janitors

On Fri, Jan 07, 2022 at 06:23:25PM +0100, Marion & Christophe JAILLET wrote:
> What is the best option?
> 1. Add    #include <linux/dma-mapping.h>?		or
> 2. Add this "missing" include in needed place?
> 
> I would say 2, but I would need help, because I don't have a built farm at
> home! :)

In the long run 2 is where we want to end up.  But I'd do 1 first to get
the legacy API removal finished, and then do 2 later after a lot of test
coverage from the build bot.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
  (?)
@ 2022-01-10 15:35   ` Martin K. Petersen
  -1 siblings, 0 replies; 82+ messages in thread
From: Martin K. Petersen @ 2022-01-10 15:35 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, linux-kernel,
	kernel-janitors


Christophe,

> This serie axes all the remaining usages of the deprecated
> "pci-dma-compat.h" API.

Applied patches 10-15 to 5.17/scsi-staging, thanks!

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-10 15:35   ` Martin K. Petersen
  0 siblings, 0 replies; 82+ messages in thread
From: Martin K. Petersen @ 2022-01-10 15:35 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: airlied, trix, linux-fpga, linux-pci, paulus, sparclinux,
	kernel-janitors, linux-scsi, sathya.prakash, hch,
	MPT-FusionLinux.pdl, hao.wu, arnd, suganath-prabu.subramani,
	sreekanth.reddy, ink, bhelgaas, mchehab, mattst88, rth, awalls,
	linux-kernel, davem, alex.bou9, vkoul, linux-alpha, dmaengine,
	mdf, akpm, linux-media, linuxppc-dev, yilun.xu


Christophe,

> This serie axes all the remaining usages of the deprecated
> "pci-dma-compat.h" API.

Applied patches 10-15 to 5.17/scsi-staging, thanks!

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-10 15:35   ` Martin K. Petersen
  0 siblings, 0 replies; 82+ messages in thread
From: Martin K. Petersen @ 2022-01-10 15:35 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, l


Christophe,

> This serie axes all the remaining usages of the deprecated
> "pci-dma-compat.h" API.

Applied patches 10-15 to 5.17/scsi-staging, thanks!

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
@ 2022-01-19  4:06   ` Martin K. Petersen
  -1 siblings, 0 replies; 82+ messages in thread
From: Martin K. Petersen @ 2022-01-19  4:06 UTC (permalink / raw)
  To: sreekanth.reddy, mchehab, mdf, mpe, mporter, hch, bhelgaas,
	airlied, Christophe JAILLET, benh, ink, davem, akpm, hao.wu,
	vkoul, sathya.prakash, paulus, trix, arnd, yilun.xu,
	suganath-prabu.subramani, alex.bou9, awalls, rth, mattst88
  Cc: Martin K . Petersen, linux-kernel, linuxppc-dev, linux-alpha,
	linux-fpga, MPT-FusionLinux.pdl, linux-media, sparclinux,
	linux-pci, linux-scsi, dmaengine, kernel-janitors

On Thu, 6 Jan 2022 22:45:13 +0100, Christophe JAILLET wrote:

> This serie axes all the remaining usages of the deprecated "pci-dma-compat.h"
> API.
> 
> All these patches have already been posted.
> 
> They have been generated with a coccinelle script.
> The tricky parts are patches that use dma_alloc_coherent() because the correct
> GFP flag has to be used in place of the previous embedded GFP_ATOMIC.
> 
> [...]

Applied to 5.17/scsi-queue, thanks!

[10/16] scsi: message: fusion: Remove usage of the deprecated "pci-dma-compat.h" API
        https://git.kernel.org/mkp/scsi/c/b114dda6f2f1
[11/16] scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
        https://git.kernel.org/mkp/scsi/c/2d50607260a6
[12/16] scsi: mptbase: Use dma_alloc_coherent()
        https://git.kernel.org/mkp/scsi/c/5c5e6b6f61e0
[13/16] scsi: mptsas: Use dma_alloc_coherent() in mptsas_exp_repmanufacture_info()
        https://git.kernel.org/mkp/scsi/c/7a960b3a5e37
[14/16] scsi: mptsas: Use dma_alloc_coherent()
        https://git.kernel.org/mkp/scsi/c/76a334d756c5
[15/16] scsi: mptctl: Use dma_alloc_coherent()
        https://git.kernel.org/mkp/scsi/c/706dc3b91989

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-19  4:06   ` Martin K. Petersen
  0 siblings, 0 replies; 82+ messages in thread
From: Martin K. Petersen @ 2022-01-19  4:06 UTC (permalink / raw)
  To: sreekanth.reddy, mchehab, mdf, mpe, mporter, hch, bhelgaas,
	airlied, Christophe JAILLET, benh, ink, davem, akpm, hao.wu,
	vkoul, sathya.prakash, paulus, trix, arnd, yilun.xu,
	suganath-prabu.subramani, alex.bou9, awalls, rth, mattst88
  Cc: kernel-janitors, linux-scsi, Martin K . Petersen, linuxppc-dev,
	linux-fpga, linux-pci, linux-kernel, dmaengine, linux-alpha,
	sparclinux, MPT-FusionLinux.pdl, linux-media

On Thu, 6 Jan 2022 22:45:13 +0100, Christophe JAILLET wrote:

> This serie axes all the remaining usages of the deprecated "pci-dma-compat.h"
> API.
> 
> All these patches have already been posted.
> 
> They have been generated with a coccinelle script.
> The tricky parts are patches that use dma_alloc_coherent() because the correct
> GFP flag has to be used in place of the previous embedded GFP_ATOMIC.
> 
> [...]

Applied to 5.17/scsi-queue, thanks!

[10/16] scsi: message: fusion: Remove usage of the deprecated "pci-dma-compat.h" API
        https://git.kernel.org/mkp/scsi/c/b114dda6f2f1
[11/16] scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
        https://git.kernel.org/mkp/scsi/c/2d50607260a6
[12/16] scsi: mptbase: Use dma_alloc_coherent()
        https://git.kernel.org/mkp/scsi/c/5c5e6b6f61e0
[13/16] scsi: mptsas: Use dma_alloc_coherent() in mptsas_exp_repmanufacture_info()
        https://git.kernel.org/mkp/scsi/c/7a960b3a5e37
[14/16] scsi: mptsas: Use dma_alloc_coherent()
        https://git.kernel.org/mkp/scsi/c/76a334d756c5
[15/16] scsi: mptctl: Use dma_alloc_coherent()
        https://git.kernel.org/mkp/scsi/c/706dc3b91989

-- 
Martin K. Petersen	Oracle Linux Engineering

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
  (?)
@ 2022-01-25 19:28   ` Moritz Fischer
  -1 siblings, 0 replies; 82+ messages in thread
From: Moritz Fischer @ 2022-01-25 19:28 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, linux-kernel,
	kernel-janitors

On Thu, Jan 06, 2022 at 10:45:13PM +0100, Christophe JAILLET wrote:
> This serie axes all the remaining usages of the deprecated "pci-dma-compat.h"
> API.
> 
> All these patches have already been posted.
> 
> They have been generated with a coccinelle script.
> The tricky parts are patches that use dma_alloc_coherent() because the correct
> GFP flag has to be used in place of the previous embedded GFP_ATOMIC.
> 
> Patches 1-3 are already Reviewed. References to the corresponding mail is
> given below the ---
> 
> Patch 1-2,4-10 are just generated from the coccinelle script. Only too long
> lines have been hand modified. dma_alloc_coherent() modification are NOT part
> of these patches.
> 
> Patch 3 also includes some 'dma_set_mask_and_coherent()' instead of
> 'pci_set_dma_mask()/pci_set_consistent_dma_mask()'.
> I've left this additional modification because it was reviewed with it.
> 
> Patch 10-15 are the tricky parts. Explanation of which GFP flag is the right one
> is given in each patch. It has been divided in several patches to ease review.
> 
> Patch 15 is the only one I'm slighly unsure with. The old code was using a
> GFP_USER flag in the function. I'm not familiar with it.
> I *guess*  that GFP_KERNEL is fine, but maybe it should also be GFP_USER or left
> as GFP_ATOMIC so that nothing is changed.
> 
> Patch 16 is the last step that remove "pci-dma-compat.h" and its only usage.
> 
> 
> All patches, exept 1-2,6 that are architecture specific, have been compile tested.
> 
> 
> After all that, a few rst files, 1 or 2 strings in error messages and some
> error branching labels should still need some attention. 
> This is some minor issues.
> 
> 
> Only the cover letter is sent to every one. Each patch is sent to the
> corresponding maintainer(s) + Andrew Morton, Christoph Hellwig and Arnd Bergmann.
> 
> 
> Best regards.
> 
> 
> Christophe JAILLET (16):
>   alpha: Remove usage of the deprecated "pci-dma-compat.h" API
>   floppy: Remove usage of the deprecated "pci-dma-compat.h" API
>   fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
>   media: Remove usage of the deprecated "pci-dma-compat.h" API
>   agp/intel: Remove usage of the deprecated "pci-dma-compat.h" API
>   sparc: Remove usage of the deprecated "pci-dma-compat.h" API
>   dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h"
>     API
>   rapidio/tsi721: Remove usage of the deprecated "pci-dma-compat.h" API
>   media: v4l2-pci-skeleton: Remove usage of the deprecated
>     "pci-dma-compat.h" API
>   scsi: message: fusion: Remove usage of the deprecated
>     "pci-dma-compat.h" API
>   scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
>   scsi: mptbase: Use dma_alloc_coherent()
>   scsi: mptsas: Use dma_alloc_coherent() in
>     mptsas_exp_repmanufacture_info()
>   scsi: mptsas: Use dma_alloc_coherent()
>   scsi: mptctl: Use dma_alloc_coherent()
>   PCI: Remove usage of the deprecated "pci-dma-compat.h" API
> 
>  arch/alpha/include/asm/floppy.h     |   7 +-
>  arch/alpha/kernel/pci_iommu.c       |  12 +--
>  arch/powerpc/include/asm/floppy.h   |   8 +-
>  arch/sparc/kernel/ioport.c          |   2 +-
>  drivers/char/agp/intel-gtt.c        |  26 ++---
>  drivers/dma/pch_dma.c               |   2 +-
>  drivers/fpga/dfl-pci.c              |  14 +--
>  drivers/media/pci/cx18/cx18-queue.h |   6 +-
>  drivers/media/pci/ivtv/ivtv-queue.h |  25 +++--
>  drivers/media/pci/ivtv/ivtv-udma.h  |   8 +-
>  drivers/message/fusion/mptbase.c    | 149 ++++++++++++++++------------
>  drivers/message/fusion/mptctl.c     |  82 +++++++++------
>  drivers/message/fusion/mptlan.c     |  90 +++++++++--------
>  drivers/message/fusion/mptsas.c     |  94 +++++++++---------
>  drivers/rapidio/devices/tsi721.c    |   8 +-
>  include/linux/pci-dma-compat.h      | 129 ------------------------
>  include/linux/pci.h                 |   3 -
>  samples/v4l/v4l2-pci-skeleton.c     |   2 +-
>  18 files changed, 289 insertions(+), 378 deletions(-)
>  delete mode 100644 include/linux/pci-dma-compat.h
> 
> -- 
> 2.32.0
> 
Applied [03/16] to linux-fpga for-next.

Thanks,
Moritz

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-25 19:28   ` Moritz Fischer
  0 siblings, 0 replies; 82+ messages in thread
From: Moritz Fischer @ 2022-01-25 19:28 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: airlied, trix, linux-fpga, linux-pci, paulus, sparclinux,
	kernel-janitors, linux-scsi, sathya.prakash, hch,
	MPT-FusionLinux.pdl, hao.wu, arnd, suganath-prabu.subramani,
	sreekanth.reddy, ink, bhelgaas, mchehab, mattst88, rth, awalls,
	linux-kernel, davem, alex.bou9, vkoul, linux-alpha, dmaengine,
	mdf, akpm, linux-media, linuxppc-dev, yilun.xu

On Thu, Jan 06, 2022 at 10:45:13PM +0100, Christophe JAILLET wrote:
> This serie axes all the remaining usages of the deprecated "pci-dma-compat.h"
> API.
> 
> All these patches have already been posted.
> 
> They have been generated with a coccinelle script.
> The tricky parts are patches that use dma_alloc_coherent() because the correct
> GFP flag has to be used in place of the previous embedded GFP_ATOMIC.
> 
> Patches 1-3 are already Reviewed. References to the corresponding mail is
> given below the ---
> 
> Patch 1-2,4-10 are just generated from the coccinelle script. Only too long
> lines have been hand modified. dma_alloc_coherent() modification are NOT part
> of these patches.
> 
> Patch 3 also includes some 'dma_set_mask_and_coherent()' instead of
> 'pci_set_dma_mask()/pci_set_consistent_dma_mask()'.
> I've left this additional modification because it was reviewed with it.
> 
> Patch 10-15 are the tricky parts. Explanation of which GFP flag is the right one
> is given in each patch. It has been divided in several patches to ease review.
> 
> Patch 15 is the only one I'm slighly unsure with. The old code was using a
> GFP_USER flag in the function. I'm not familiar with it.
> I *guess*  that GFP_KERNEL is fine, but maybe it should also be GFP_USER or left
> as GFP_ATOMIC so that nothing is changed.
> 
> Patch 16 is the last step that remove "pci-dma-compat.h" and its only usage.
> 
> 
> All patches, exept 1-2,6 that are architecture specific, have been compile tested.
> 
> 
> After all that, a few rst files, 1 or 2 strings in error messages and some
> error branching labels should still need some attention. 
> This is some minor issues.
> 
> 
> Only the cover letter is sent to every one. Each patch is sent to the
> corresponding maintainer(s) + Andrew Morton, Christoph Hellwig and Arnd Bergmann.
> 
> 
> Best regards.
> 
> 
> Christophe JAILLET (16):
>   alpha: Remove usage of the deprecated "pci-dma-compat.h" API
>   floppy: Remove usage of the deprecated "pci-dma-compat.h" API
>   fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
>   media: Remove usage of the deprecated "pci-dma-compat.h" API
>   agp/intel: Remove usage of the deprecated "pci-dma-compat.h" API
>   sparc: Remove usage of the deprecated "pci-dma-compat.h" API
>   dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h"
>     API
>   rapidio/tsi721: Remove usage of the deprecated "pci-dma-compat.h" API
>   media: v4l2-pci-skeleton: Remove usage of the deprecated
>     "pci-dma-compat.h" API
>   scsi: message: fusion: Remove usage of the deprecated
>     "pci-dma-compat.h" API
>   scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
>   scsi: mptbase: Use dma_alloc_coherent()
>   scsi: mptsas: Use dma_alloc_coherent() in
>     mptsas_exp_repmanufacture_info()
>   scsi: mptsas: Use dma_alloc_coherent()
>   scsi: mptctl: Use dma_alloc_coherent()
>   PCI: Remove usage of the deprecated "pci-dma-compat.h" API
> 
>  arch/alpha/include/asm/floppy.h     |   7 +-
>  arch/alpha/kernel/pci_iommu.c       |  12 +--
>  arch/powerpc/include/asm/floppy.h   |   8 +-
>  arch/sparc/kernel/ioport.c          |   2 +-
>  drivers/char/agp/intel-gtt.c        |  26 ++---
>  drivers/dma/pch_dma.c               |   2 +-
>  drivers/fpga/dfl-pci.c              |  14 +--
>  drivers/media/pci/cx18/cx18-queue.h |   6 +-
>  drivers/media/pci/ivtv/ivtv-queue.h |  25 +++--
>  drivers/media/pci/ivtv/ivtv-udma.h  |   8 +-
>  drivers/message/fusion/mptbase.c    | 149 ++++++++++++++++------------
>  drivers/message/fusion/mptctl.c     |  82 +++++++++------
>  drivers/message/fusion/mptlan.c     |  90 +++++++++--------
>  drivers/message/fusion/mptsas.c     |  94 +++++++++---------
>  drivers/rapidio/devices/tsi721.c    |   8 +-
>  include/linux/pci-dma-compat.h      | 129 ------------------------
>  include/linux/pci.h                 |   3 -
>  samples/v4l/v4l2-pci-skeleton.c     |   2 +-
>  18 files changed, 289 insertions(+), 378 deletions(-)
>  delete mode 100644 include/linux/pci-dma-compat.h
> 
> -- 
> 2.32.0
> 
Applied [03/16] to linux-fpga for-next.

Thanks,
Moritz

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-01-25 19:28   ` Moritz Fischer
  0 siblings, 0 replies; 82+ messages in thread
From: Moritz Fischer @ 2022-01-25 19:28 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, l

On Thu, Jan 06, 2022 at 10:45:13PM +0100, Christophe JAILLET wrote:
> This serie axes all the remaining usages of the deprecated "pci-dma-compat.h"
> API.
> 
> All these patches have already been posted.
> 
> They have been generated with a coccinelle script.
> The tricky parts are patches that use dma_alloc_coherent() because the correct
> GFP flag has to be used in place of the previous embedded GFP_ATOMIC.
> 
> Patches 1-3 are already Reviewed. References to the corresponding mail is
> given below the ---
> 
> Patch 1-2,4-10 are just generated from the coccinelle script. Only too long
> lines have been hand modified. dma_alloc_coherent() modification are NOT part
> of these patches.
> 
> Patch 3 also includes some 'dma_set_mask_and_coherent()' instead of
> 'pci_set_dma_mask()/pci_set_consistent_dma_mask()'.
> I've left this additional modification because it was reviewed with it.
> 
> Patch 10-15 are the tricky parts. Explanation of which GFP flag is the right one
> is given in each patch. It has been divided in several patches to ease review.
> 
> Patch 15 is the only one I'm slighly unsure with. The old code was using a
> GFP_USER flag in the function. I'm not familiar with it.
> I *guess*  that GFP_KERNEL is fine, but maybe it should also be GFP_USER or left
> as GFP_ATOMIC so that nothing is changed.
> 
> Patch 16 is the last step that remove "pci-dma-compat.h" and its only usage.
> 
> 
> All patches, exept 1-2,6 that are architecture specific, have been compile tested.
> 
> 
> After all that, a few rst files, 1 or 2 strings in error messages and some
> error branching labels should still need some attention. 
> This is some minor issues.
> 
> 
> Only the cover letter is sent to every one. Each patch is sent to the
> corresponding maintainer(s) + Andrew Morton, Christoph Hellwig and Arnd Bergmann.
> 
> 
> Best regards.
> 
> 
> Christophe JAILLET (16):
>   alpha: Remove usage of the deprecated "pci-dma-compat.h" API
>   floppy: Remove usage of the deprecated "pci-dma-compat.h" API
>   fpga: dfl: pci: Remove usage of the deprecated "pci-dma-compat.h" API
>   media: Remove usage of the deprecated "pci-dma-compat.h" API
>   agp/intel: Remove usage of the deprecated "pci-dma-compat.h" API
>   sparc: Remove usage of the deprecated "pci-dma-compat.h" API
>   dmaengine: pch_dma: Remove usage of the deprecated "pci-dma-compat.h"
>     API
>   rapidio/tsi721: Remove usage of the deprecated "pci-dma-compat.h" API
>   media: v4l2-pci-skeleton: Remove usage of the deprecated
>     "pci-dma-compat.h" API
>   scsi: message: fusion: Remove usage of the deprecated
>     "pci-dma-compat.h" API
>   scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()'
>   scsi: mptbase: Use dma_alloc_coherent()
>   scsi: mptsas: Use dma_alloc_coherent() in
>     mptsas_exp_repmanufacture_info()
>   scsi: mptsas: Use dma_alloc_coherent()
>   scsi: mptctl: Use dma_alloc_coherent()
>   PCI: Remove usage of the deprecated "pci-dma-compat.h" API
> 
>  arch/alpha/include/asm/floppy.h     |   7 +-
>  arch/alpha/kernel/pci_iommu.c       |  12 +--
>  arch/powerpc/include/asm/floppy.h   |   8 +-
>  arch/sparc/kernel/ioport.c          |   2 +-
>  drivers/char/agp/intel-gtt.c        |  26 ++---
>  drivers/dma/pch_dma.c               |   2 +-
>  drivers/fpga/dfl-pci.c              |  14 +--
>  drivers/media/pci/cx18/cx18-queue.h |   6 +-
>  drivers/media/pci/ivtv/ivtv-queue.h |  25 +++--
>  drivers/media/pci/ivtv/ivtv-udma.h  |   8 +-
>  drivers/message/fusion/mptbase.c    | 149 ++++++++++++++++------------
>  drivers/message/fusion/mptctl.c     |  82 +++++++++------
>  drivers/message/fusion/mptlan.c     |  90 +++++++++--------
>  drivers/message/fusion/mptsas.c     |  94 +++++++++---------
>  drivers/rapidio/devices/tsi721.c    |   8 +-
>  include/linux/pci-dma-compat.h      | 129 ------------------------
>  include/linux/pci.h                 |   3 -
>  samples/v4l/v4l2-pci-skeleton.c     |   2 +-
>  18 files changed, 289 insertions(+), 378 deletions(-)
>  delete mode 100644 include/linux/pci-dma-compat.h
> 
> -- 
> 2.32.0
> 
Applied [03/16] to linux-fpga for-next.

Thanks,
Moritz

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 04/16] media: Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-07  7:10     ` Mauro Carvalho Chehab
@ 2022-02-18 13:11       ` Hans Verkuil
  0 siblings, 0 replies; 82+ messages in thread
From: Hans Verkuil @ 2022-02-18 13:11 UTC (permalink / raw)
  To: Mauro Carvalho Chehab, Arnd Bergmann
  Cc: Christophe JAILLET, Christoph Hellwig, Andrew Morton, awalls,
	Linux Media Mailing List, Linux Kernel Mailing List,
	kernel-janitors

On 07/01/2022 08:10, Mauro Carvalho Chehab wrote:
> Em Thu, 6 Jan 2022 19:51:47 -0500
> Arnd Bergmann <arnd@arndb.de> escreveu:
> 
>> On Thu, Jan 6, 2022 at 4:50 PM Christophe JAILLET
>> <christophe.jaillet@wanadoo.fr> wrote:
>>>
>>> In [1], Christoph Hellwig has proposed to remove the wrappers in
>>> include/linux/pci-dma-compat.h.
>>>
>>> Some reasons why this API should be removed have been given by Julia
>>> Lawall in [2].
>>>
>>> A coccinelle script has been used to perform the needed transformation.
>>> It can be found in [3].
>>>
>>> [1]: https://lore.kernel.org/kernel-janitors/20200421081257.GA131897@infradead.org/
>>> [2]: https://lore.kernel.org/kernel-janitors/alpine.DEB.2.22.394.2007120902170.2424@hadrien/
>>> [3]: https://lore.kernel.org/kernel-janitors/20200716192821.321233-1-christophe.jaillet@wanadoo.fr/
>>>
>>> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>  
>>
>> Reviewed-by: Arnd Bergmann <arnd@arndb.de>
>>
>> Mauro, could you pick this up directly? It has no dependencies on the rest of
>> the series.
> 
> Sure, but I already closed the media merge window. If you prefer to
> apply it directly via your tree, that would be OK for me as well.
> If so, just let me know. On such case:
> 
> Acked-by: Mauro Carvalho Chehab <mchehab@kernel.org>

I picked it up for inclusion in the media subsystem for 5.18.

Regards,

	Hans

> 
> Regards,
> Mauro


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
  (?)
@ 2022-02-23  7:46   ` Christoph Hellwig
  -1 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-23  7:46 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, linux-kernel,
	kernel-janitors

Hi Christophe,

do you know what the state is in current linux-next?

I think we'll just want to queue up anything left at this point in the
dma-mapping or PCI tree and get it done.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-23  7:46   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-23  7:46 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: airlied, trix, linux-fpga, linux-pci, paulus, sparclinux,
	kernel-janitors, linux-scsi, sathya.prakash, hch,
	MPT-FusionLinux.pdl, hao.wu, arnd, suganath-prabu.subramani,
	sreekanth.reddy, ink, bhelgaas, mchehab, mattst88, rth, awalls,
	linux-kernel, davem, alex.bou9, vkoul, linux-alpha, dmaengine,
	mdf, akpm, linux-media, linuxppc-dev, yilun.xu

Hi Christophe,

do you know what the state is in current linux-next?

I think we'll just want to queue up anything left at this point in the
dma-mapping or PCI tree and get it done.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-23  7:46   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-23  7:46 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, l

Hi Christophe,

do you know what the state is in current linux-next?

I think we'll just want to queue up anything left at this point in the
dma-mapping or PCI tree and get it done.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-02-23  7:46   ` Christoph Hellwig
@ 2022-02-23 20:26     ` Christophe JAILLET
  -1 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-02-23 20:26 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: arnd, akpm, ink, mattst88, mpe, benh, paulus, davem, airlied,
	vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci

Le 23/02/2022 à 08:46, Christoph Hellwig a écrit :
> Hi Christophe,
> 
> do you know what the state is in current linux-next?
> 
> I think we'll just want to queue up anything left at this point in the
> dma-mapping or PCI tree and get it done.
> 

Hi,

Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
They all still apply cleanly.

04 has been picked it up for inclusion in the media subsystem for 5.18.
The other ones all have 1 or more Reviewed-by:/Acked-by: tags.

Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in 
order not to break builds.


All the other patches have landed in -next.

CJ

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-23 20:26     ` Christophe JAILLET
  0 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-02-23 20:26 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: airlied, trix, linux-fpga, linux-pci, paulus, sparclinux,
	linux-scsi, sathya.prakash, MPT-FusionLinux.pdl, hao.wu, arnd,
	suganath-prabu.subramani, sreekanth.reddy, ink, bhelgaas,
	mchehab, mattst88, awalls, davem, alex.bou9, vkoul, linux-alpha,
	dmaengine, mdf, akpm, linux-media, linuxppc-dev, yilun.xu

Le 23/02/2022 à 08:46, Christoph Hellwig a écrit :
> Hi Christophe,
> 
> do you know what the state is in current linux-next?
> 
> I think we'll just want to queue up anything left at this point in the
> dma-mapping or PCI tree and get it done.
> 

Hi,

Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
They all still apply cleanly.

04 has been picked it up for inclusion in the media subsystem for 5.18.
The other ones all have 1 or more Reviewed-by:/Acked-by: tags.

Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in 
order not to break builds.


All the other patches have landed in -next.

CJ

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-02-23 20:26     ` Christophe JAILLET
  (?)
@ 2022-02-23 20:42       ` Arnd Bergmann
  -1 siblings, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-02-23 20:42 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Christoph Hellwig, Arnd Bergmann, Andrew Morton, Ivan Kokshaysky,
	Matt Turner, Michael Ellerman, Benjamin Herrenschmidt,
	Paul Mackerras, David Miller, David Airlie, Vinod Koul, hao.wu,
	Tom Rix, Moritz Fischer, Xu Yilun, awalls, Mauro Carvalho Chehab,
	Sathya Prakash, sreekanth.reddy, Suganath Prabu Subramani,
	Matt Porter, Alex Bounine, Bjorn Helgaas, alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, Linux Media Mailing List,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci

On Wed, Feb 23, 2022 at 9:26 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> Le 23/02/2022 à 08:46, Christoph Hellwig a écrit :
> > Hi Christophe,
> >
> > do you know what the state is in current linux-next?
> >
> > I think we'll just want to queue up anything left at this point in the
> > dma-mapping or PCI tree and get it done.
> >
>
> Hi,
>
> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> They all still apply cleanly.
>
> 04 has been picked it up for inclusion in the media subsystem for 5.18.
> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
>
> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> order not to break builds.
>
>
> All the other patches have landed in -next.

Ok, these all look trivial. I'd suggest you send the rebase version to
Andrew Morton then, so he can pick them all up into linux-mm, on top
of the linux-next contents.

         Arnd

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-23 20:42       ` Arnd Bergmann
  0 siblings, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-02-23 20:42 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: David Airlie, Tom Rix, linux-fpga, linux-pci, Paul Mackerras,
	sparclinux, linux-scsi, Sathya Prakash, Christoph Hellwig,
	MPT-FusionLinux.pdl, hao.wu, Arnd Bergmann,
	Suganath Prabu Subramani, sreekanth.reddy, Ivan Kokshaysky,
	Bjorn Helgaas, Mauro Carvalho Chehab, Matt Turner, awalls,
	David Miller, Alex Bounine, Vinod Koul, alpha, dmaengine,
	Moritz Fischer, Andrew Morton, Linux Media Mailing List,
	linuxppc-dev, Xu Yilun

On Wed, Feb 23, 2022 at 9:26 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> Le 23/02/2022 à 08:46, Christoph Hellwig a écrit :
> > Hi Christophe,
> >
> > do you know what the state is in current linux-next?
> >
> > I think we'll just want to queue up anything left at this point in the
> > dma-mapping or PCI tree and get it done.
> >
>
> Hi,
>
> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> They all still apply cleanly.
>
> 04 has been picked it up for inclusion in the media subsystem for 5.18.
> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
>
> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> order not to break builds.
>
>
> All the other patches have landed in -next.

Ok, these all look trivial. I'd suggest you send the rebase version to
Andrew Morton then, so he can pick them all up into linux-mm, on top
of the linux-next contents.

         Arnd

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-23 20:42       ` Arnd Bergmann
  0 siblings, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-02-23 20:42 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Christoph Hellwig, Arnd Bergmann, Andrew Morton, Ivan Kokshaysky,
	Matt Turner, Michael Ellerman, Benjamin Herrenschmidt,
	Paul Mackerras, David Miller, David Airlie, Vinod Koul, hao.wu,
	Tom Rix, Moritz Fischer, Xu Yilun, awalls, Mauro Carvalho Chehab,
	Sathya Prakash, sreekanth.reddy, Suganath Prabu Subramani,
	Matt Porter

On Wed, Feb 23, 2022 at 9:26 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> Le 23/02/2022 à 08:46, Christoph Hellwig a écrit :
> > Hi Christophe,
> >
> > do you know what the state is in current linux-next?
> >
> > I think we'll just want to queue up anything left at this point in the
> > dma-mapping or PCI tree and get it done.
> >
>
> Hi,
>
> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> They all still apply cleanly.
>
> 04 has been picked it up for inclusion in the media subsystem for 5.18.
> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
>
> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> order not to break builds.
>
>
> All the other patches have landed in -next.

Ok, these all look trivial. I'd suggest you send the rebase version to
Andrew Morton then, so he can pick them all up into linux-mm, on top
of the linux-next contents.

         Arnd

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-02-23 20:26     ` Christophe JAILLET
  (?)
@ 2022-02-24  6:25       ` Christoph Hellwig
  -1 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-24  6:25 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Christoph Hellwig, arnd, akpm, ink, mattst88, mpe, benh, paulus,
	davem, airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls,
	mchehab, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani, mporter, alex.bou9, bhelgaas,
	linux-alpha, linuxppc-dev, sparclinux, dmaengine, linux-fpga,
	linux-media, MPT-FusionLinux.pdl, linux-scsi, linux-pci

On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> They all still apply cleanly.
> 
> 04 has been picked it up for inclusion in the media subsystem for 5.18.
> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
> 
> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> order not to break builds.

So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
tree.  After -rc1 when presumably all other patches have reached
mainline your resubmit one with the added include and we finish this
off?

Thanks a lot for all your work already!

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-24  6:25       ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-24  6:25 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: airlied, trix, linux-fpga, linux-pci, paulus, sparclinux,
	linux-scsi, sathya.prakash, Christoph Hellwig,
	MPT-FusionLinux.pdl, hao.wu, arnd, suganath-prabu.subramani,
	sreekanth.reddy, ink, bhelgaas, mchehab, mattst88, awalls, davem,
	alex.bou9, vkoul, linux-alpha, dmaengine, mdf, akpm, linux-media,
	linuxppc-dev, yilun.xu

On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> They all still apply cleanly.
> 
> 04 has been picked it up for inclusion in the media subsystem for 5.18.
> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
> 
> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> order not to break builds.

So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
tree.  After -rc1 when presumably all other patches have reached
mainline your resubmit one with the added include and we finish this
off?

Thanks a lot for all your work already!

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-24  6:25       ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-24  6:25 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: Christoph Hellwig, arnd, akpm, ink, mattst88, mpe, benh, paulus,
	davem, airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls,
	mchehab, sathya.prakash, sreekanth.reddy,
	suganath-prabu.subramani, mporter, alex.bou9, bhelgaas,
	linux-alpha, linuxppc-dev, sparclinux, dmaengine, linux-fpga,
	linux-media, MPT-FusionLinux.pdl, linux-scsi, linux-pci

On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> They all still apply cleanly.
> 
> 04 has been picked it up for inclusion in the media subsystem for 5.18.
> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
> 
> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> order not to break builds.

So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
tree.  After -rc1 when presumably all other patches have reached
mainline your resubmit one with the added include and we finish this
off?

Thanks a lot for all your work already!

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-02-24  6:25       ` Christoph Hellwig
  (?)
@ 2022-02-24  7:07         ` Arnd Bergmann
  -1 siblings, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-02-24  7:07 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Christophe JAILLET, Arnd Bergmann, Andrew Morton,
	Ivan Kokshaysky, Matt Turner, Michael Ellerman,
	Benjamin Herrenschmidt, Paul Mackerras, David Miller,
	David Airlie, Vinod Koul, hao.wu, Tom Rix, Moritz Fischer,
	Xu Yilun, awalls, Mauro Carvalho Chehab, Sathya Prakash,
	sreekanth.reddy, Suganath Prabu Subramani, Matt Porter,
	Alex Bounine, Bjorn Helgaas, alpha, linuxppc-dev, sparclinux,
	dmaengine, linux-fpga, Linux Media Mailing List,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci

On Thu, Feb 24, 2022 at 7:25 AM Christoph Hellwig <hch@infradead.org> wrote:
>
> On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
> > Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> > They all still apply cleanly.
> >
> > 04 has been picked it up for inclusion in the media subsystem for 5.18.
> > The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
> >
> > Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> > order not to break builds.
>
> So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
> tree.  After -rc1 when presumably all other patches have reached
> mainline your resubmit one with the added include and we finish this
> off?

Sounds good to me as well.

       Arnd

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-24  7:07         ` Arnd Bergmann
  0 siblings, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-02-24  7:07 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: David Airlie, Tom Rix, linux-fpga, linux-pci, Paul Mackerras,
	sparclinux, linux-scsi, Sathya Prakash, Christophe JAILLET,
	MPT-FusionLinux.pdl, hao.wu, Arnd Bergmann,
	Suganath Prabu Subramani, sreekanth.reddy, Ivan Kokshaysky,
	Bjorn Helgaas, Mauro Carvalho Chehab, Matt Turner, awalls,
	David Miller, Alex Bounine, Vinod Koul, alpha, dmaengine,
	Moritz Fischer, Andrew Morton, Linux Media Mailing List,
	linuxppc-dev, Xu Yilun

On Thu, Feb 24, 2022 at 7:25 AM Christoph Hellwig <hch@infradead.org> wrote:
>
> On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
> > Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> > They all still apply cleanly.
> >
> > 04 has been picked it up for inclusion in the media subsystem for 5.18.
> > The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
> >
> > Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> > order not to break builds.
>
> So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
> tree.  After -rc1 when presumably all other patches have reached
> mainline your resubmit one with the added include and we finish this
> off?

Sounds good to me as well.

       Arnd

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-24  7:07         ` Arnd Bergmann
  0 siblings, 0 replies; 82+ messages in thread
From: Arnd Bergmann @ 2022-02-24  7:07 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: Christophe JAILLET, Arnd Bergmann, Andrew Morton,
	Ivan Kokshaysky, Matt Turner, Michael Ellerman,
	Benjamin Herrenschmidt, Paul Mackerras, David Miller,
	David Airlie, Vinod Koul, hao.wu, Tom Rix, Moritz Fischer,
	Xu Yilun, awalls, Mauro Carvalho Chehab, Sathya Prakash,
	sreekanth.reddy, Suganath Prabu Subramani, Ma

On Thu, Feb 24, 2022 at 7:25 AM Christoph Hellwig <hch@infradead.org> wrote:
>
> On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
> > Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
> > They all still apply cleanly.
> >
> > 04 has been picked it up for inclusion in the media subsystem for 5.18.
> > The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
> >
> > Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
> > order not to break builds.
>
> So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
> tree.  After -rc1 when presumably all other patches have reached
> mainline your resubmit one with the added include and we finish this
> off?

Sounds good to me as well.

       Arnd

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-02-24  7:07         ` Arnd Bergmann
  (?)
@ 2022-02-24 18:15           ` Christophe JAILLET
  -1 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-02-24 18:15 UTC (permalink / raw)
  To: Arnd Bergmann, Christoph Hellwig
  Cc: Andrew Morton, Ivan Kokshaysky, Matt Turner, Michael Ellerman,
	Benjamin Herrenschmidt, Paul Mackerras, David Miller,
	David Airlie, Vinod Koul, hao.wu, Tom Rix, Moritz Fischer,
	Xu Yilun, awalls, Mauro Carvalho Chehab, Sathya Prakash,
	sreekanth.reddy, Suganath Prabu Subramani, Matt Porter,
	Alex Bounine, Bjorn Helgaas, alpha, linuxppc-dev, sparclinux,
	dmaengine, linux-fpga, Linux Media Mailing List,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, linux-kernel,
	Kernel Janitors


Le 24/02/2022 à 08:07, Arnd Bergmann a écrit :
> On Thu, Feb 24, 2022 at 7:25 AM Christoph Hellwig <hch@infradead.org> wrote:
>> On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
>>> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
>>> They all still apply cleanly.
>>>
>>> 04 has been picked it up for inclusion in the media subsystem for 5.18.
>>> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
>>>
>>> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
>>> order not to break builds.
>> So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
>> tree.  After -rc1 when presumably all other patches have reached
>> mainline your resubmit one with the added include and we finish this
>> off?
> Sounds good to me as well.
>
>         Arnd

This is fine for me.
When all patches have reached -next, I'll re-submit the fixed 16th patch.


Thanks for your assistance for ending this long story :)

CJ


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-24 18:15           ` Christophe JAILLET
  0 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-02-24 18:15 UTC (permalink / raw)
  To: Arnd Bergmann, Christoph Hellwig
  Cc: David Airlie, Tom Rix, linux-fpga, linux-pci, Paul Mackerras,
	sparclinux, Kernel Janitors, linux-scsi, Sathya Prakash,
	MPT-FusionLinux.pdl, hao.wu, Suganath Prabu Subramani,
	sreekanth.reddy, Ivan Kokshaysky, Bjorn Helgaas,
	Mauro Carvalho Chehab, Matt Turner, awalls, linux-kernel,
	David Miller, Alex Bounine, Vinod Koul, alpha, dmaengine,
	Moritz Fischer, Andrew Morton, Linux Media Mailing List,
	linuxppc-dev, Xu Yilun


Le 24/02/2022 à 08:07, Arnd Bergmann a écrit :
> On Thu, Feb 24, 2022 at 7:25 AM Christoph Hellwig <hch@infradead.org> wrote:
>> On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
>>> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
>>> They all still apply cleanly.
>>>
>>> 04 has been picked it up for inclusion in the media subsystem for 5.18.
>>> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
>>>
>>> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
>>> order not to break builds.
>> So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
>> tree.  After -rc1 when presumably all other patches have reached
>> mainline your resubmit one with the added include and we finish this
>> off?
> Sounds good to me as well.
>
>         Arnd

This is fine for me.
When all patches have reached -next, I'll re-submit the fixed 16th patch.


Thanks for your assistance for ending this long story :)

CJ


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-24 18:15           ` Christophe JAILLET
  0 siblings, 0 replies; 82+ messages in thread
From: Christophe JAILLET @ 2022-02-24 18:15 UTC (permalink / raw)
  To: Arnd Bergmann, Christoph Hellwig
  Cc: Andrew Morton, Ivan Kokshaysky, Matt Turner, Michael Ellerman,
	Benjamin Herrenschmidt, Paul Mackerras, David Miller,
	David Airlie, Vinod Koul, hao.wu, Tom Rix, Moritz Fischer,
	Xu Yilun, awalls, Mauro Carvalho Chehab, Sathya Prakash,
	sreekanth.reddy, Suganath Prabu Subramani, Matt Porter,
	Alex Bounine, Bjorn


Le 24/02/2022 à 08:07, Arnd Bergmann a écrit :
> On Thu, Feb 24, 2022 at 7:25 AM Christoph Hellwig <hch@infradead.org> wrote:
>> On Wed, Feb 23, 2022 at 09:26:56PM +0100, Christophe JAILLET wrote:
>>> Patch 01, 04, 05, 06, 08, 09 have not reached -next yet.
>>> They all still apply cleanly.
>>>
>>> 04 has been picked it up for inclusion in the media subsystem for 5.18.
>>> The other ones all have 1 or more Reviewed-by:/Acked-by: tags.
>>>
>>> Patch 16 must be resubmitted to add "#include <linux/dma-mapping.h>" in
>>> order not to break builds.
>> So how about this:  I'll pick up 1, 5,6,8 and 9 for the dma-mapping
>> tree.  After -rc1 when presumably all other patches have reached
>> mainline your resubmit one with the added include and we finish this
>> off?
> Sounds good to me as well.
>
>         Arnd

This is fine for me.
When all patches have reached -next, I'll re-submit the fixed 16th patch.


Thanks for your assistance for ending this long story :)

CJ


^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
  2022-01-06 21:45 ` Christophe JAILLET
  (?)
@ 2022-02-25 16:20   ` Christoph Hellwig
  -1 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-25 16:20 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, linux-kernel,
	kernel-janitors

I've applied patches 1,5,6,8 and 9 to the dma-mapping tree.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-25 16:20   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-25 16:20 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: airlied, trix, linux-fpga, linux-pci, paulus, sparclinux,
	kernel-janitors, linux-scsi, sathya.prakash, hch,
	MPT-FusionLinux.pdl, hao.wu, arnd, suganath-prabu.subramani,
	sreekanth.reddy, ink, bhelgaas, mchehab, mattst88, rth, awalls,
	linux-kernel, davem, alex.bou9, vkoul, linux-alpha, dmaengine,
	mdf, akpm, linux-media, linuxppc-dev, yilun.xu

I've applied patches 1,5,6,8 and 9 to the dma-mapping tree.

^ permalink raw reply	[flat|nested] 82+ messages in thread

* Re: [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API
@ 2022-02-25 16:20   ` Christoph Hellwig
  0 siblings, 0 replies; 82+ messages in thread
From: Christoph Hellwig @ 2022-02-25 16:20 UTC (permalink / raw)
  To: Christophe JAILLET
  Cc: arnd, hch, akpm, rth, ink, mattst88, mpe, benh, paulus, davem,
	airlied, vkoul, hao.wu, trix, mdf, yilun.xu, awalls, mchehab,
	sathya.prakash, sreekanth.reddy, suganath-prabu.subramani,
	mporter, alex.bou9, bhelgaas, linux-alpha, linuxppc-dev,
	sparclinux, dmaengine, linux-fpga, linux-media,
	MPT-FusionLinux.pdl, linux-scsi, linux-pci, l

I've applied patches 1,5,6,8 and 9 to the dma-mapping tree.

^ permalink raw reply	[flat|nested] 82+ messages in thread

end of thread, other threads:[~2022-02-25 16:21 UTC | newest]

Thread overview: 82+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-06 21:45 [PATCH 00/16] Remove usage of the deprecated "pci-dma-compat.h" API Christophe JAILLET
2022-01-06 21:45 ` Christophe JAILLET
2022-01-06 21:46 ` [PATCH 01/16] alpha: " Christophe JAILLET
2022-01-10  8:43   ` Christoph Hellwig
2022-01-06 21:47 ` [PATCH 02/16] floppy: " Christophe JAILLET
2022-01-06 21:47   ` Christophe JAILLET
2022-01-10  8:43   ` Christoph Hellwig
2022-01-10  8:43     ` Christoph Hellwig
2022-01-06 21:49 ` [PATCH 03/16] fpga: dfl: pci: " Christophe JAILLET
2022-01-06 23:06   ` Arnd Bergmann
2022-01-07  0:58     ` Arnd Bergmann
2022-01-07  6:34       ` Christophe JAILLET
2022-01-10  8:44   ` Christoph Hellwig
2022-01-06 21:50 ` [PATCH 04/16] media: " Christophe JAILLET
2022-01-07  0:51   ` Arnd Bergmann
2022-01-07  7:10     ` Mauro Carvalho Chehab
2022-02-18 13:11       ` Hans Verkuil
2022-01-10  8:44   ` Christoph Hellwig
2022-01-06 21:51 ` [PATCH 05/16] agp/intel: " Christophe JAILLET
2022-01-07  0:53   ` Arnd Bergmann
2022-01-10  8:45   ` Christoph Hellwig
2022-01-06 21:51 ` [PATCH 06/16] sparc: " Christophe JAILLET
2022-01-07  0:54   ` Arnd Bergmann
2022-01-07 11:04   ` David Miller
2022-01-10  8:45   ` Christoph Hellwig
2022-01-06 21:52 ` [PATCH 07/16] dmaengine: pch_dma: " Christophe JAILLET
2022-01-07  0:56   ` Arnd Bergmann
2022-01-08 16:47     ` Vinod Koul
2022-01-10  8:45   ` Christoph Hellwig
2022-01-06 21:52 ` [PATCH 08/16] rapidio/tsi721: " Christophe JAILLET
2022-01-07  1:00   ` Arnd Bergmann
2022-01-10  8:46   ` Christoph Hellwig
2022-01-06 21:53 ` [PATCH 09/16] media: v4l2-pci-skeleton: " Christophe JAILLET
2022-01-07  1:01   ` Arnd Bergmann
2022-01-10  8:46   ` Christoph Hellwig
2022-01-06 21:54 ` [PATCH 10/16] scsi: message: fusion: " Christophe JAILLET
2022-01-10  8:47   ` Christoph Hellwig
2022-01-06 21:54 ` [PATCH 11/16] scsi: mptbase: Use dma_alloc_coherent() in 'mpt_alloc_fw_memory()' Christophe JAILLET
2022-01-10  8:47   ` Christoph Hellwig
2022-01-06 21:54 ` [PATCH 12/16] scsi: mptbase: Use dma_alloc_coherent() Christophe JAILLET
2022-01-10  8:47   ` Christoph Hellwig
2022-01-06 21:54 ` [PATCH 13/16] scsi: mptsas: Use dma_alloc_coherent() in mptsas_exp_repmanufacture_info() Christophe JAILLET
2022-01-10  8:48   ` Christoph Hellwig
2022-01-06 21:54 ` [PATCH 14/16] scsi: mptsas: Use dma_alloc_coherent() Christophe JAILLET
2022-01-10  8:48   ` Christoph Hellwig
2022-01-06 21:54 ` [PATCH 15/16] scsi: mptctl: " Christophe JAILLET
2022-01-10  8:48   ` Christoph Hellwig
2022-01-06 21:55 ` [PATCH 16/16] PCI: Remove usage of the deprecated "pci-dma-compat.h" API Christophe JAILLET
2022-01-06 22:28   ` Bjorn Helgaas
2022-01-07  6:34     ` Christophe JAILLET
2022-01-07 17:23       ` Marion & Christophe JAILLET
2022-01-10  8:49         ` Christoph Hellwig
2022-01-07  9:20   ` kernel test robot
2022-01-07  9:41   ` kernel test robot
2022-01-10 15:35 ` [PATCH 00/16] " Martin K. Petersen
2022-01-10 15:35   ` Martin K. Petersen
2022-01-10 15:35   ` Martin K. Petersen
2022-01-19  4:06 ` Martin K. Petersen
2022-01-19  4:06   ` Martin K. Petersen
2022-01-25 19:28 ` Moritz Fischer
2022-01-25 19:28   ` Moritz Fischer
2022-01-25 19:28   ` Moritz Fischer
2022-02-23  7:46 ` Christoph Hellwig
2022-02-23  7:46   ` Christoph Hellwig
2022-02-23  7:46   ` Christoph Hellwig
2022-02-23 20:26   ` Christophe JAILLET
2022-02-23 20:26     ` Christophe JAILLET
2022-02-23 20:42     ` Arnd Bergmann
2022-02-23 20:42       ` Arnd Bergmann
2022-02-23 20:42       ` Arnd Bergmann
2022-02-24  6:25     ` Christoph Hellwig
2022-02-24  6:25       ` Christoph Hellwig
2022-02-24  6:25       ` Christoph Hellwig
2022-02-24  7:07       ` Arnd Bergmann
2022-02-24  7:07         ` Arnd Bergmann
2022-02-24  7:07         ` Arnd Bergmann
2022-02-24 18:15         ` Christophe JAILLET
2022-02-24 18:15           ` Christophe JAILLET
2022-02-24 18:15           ` Christophe JAILLET
2022-02-25 16:20 ` Christoph Hellwig
2022-02-25 16:20   ` Christoph Hellwig
2022-02-25 16:20   ` Christoph Hellwig

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.