* Re: [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API
2022-03-09 19:50 [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API Christophe JAILLET
@ 2022-03-09 22:10 ` Arnd Bergmann
2022-03-10 6:28 ` Christoph Hellwig
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: Arnd Bergmann @ 2022-03-09 22:10 UTC (permalink / raw)
To: Christophe JAILLET
Cc: Bjorn Helgaas, Arnd Bergmann, Christoph Hellwig, Andrew Morton,
linux-pci, Linux Kernel Mailing List, kernel-janitors
On Wed, Mar 9, 2022 at 8:50 PM Christophe JAILLET
<christophe.jaillet@wanadoo.fr> wrote:
>
> Now that all usages of the functions defined in "pci-dma-compat.h" have
> been removed, it is time to remove this file as well.
>
> In order not to break builds, move the "#include <linux/dma-mapping.h>"
> that was in "pci-dma-compat.h" into "include/linux/pci.h"
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Thanks a lot for following through with this!
Acked-by: Arnd Bergmann <arnd@arndb.de>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API
2022-03-09 19:50 [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API Christophe JAILLET
2022-03-09 22:10 ` Arnd Bergmann
@ 2022-03-10 6:28 ` Christoph Hellwig
2022-03-10 17:04 ` Bjorn Helgaas
2022-03-29 19:01 ` Bjorn Helgaas
3 siblings, 0 replies; 8+ messages in thread
From: Christoph Hellwig @ 2022-03-10 6:28 UTC (permalink / raw)
To: Christophe JAILLET
Cc: bhelgaas, arnd, hch, akpm, linux-pci, linux-kernel, kernel-janitors
Thanks. Given that it depends on a few different trees I plan to send
this to Linus after -rc1.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API
2022-03-09 19:50 [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API Christophe JAILLET
2022-03-09 22:10 ` Arnd Bergmann
2022-03-10 6:28 ` Christoph Hellwig
@ 2022-03-10 17:04 ` Bjorn Helgaas
2022-03-10 17:30 ` Bjorn Helgaas
2022-03-29 19:01 ` Bjorn Helgaas
3 siblings, 1 reply; 8+ messages in thread
From: Bjorn Helgaas @ 2022-03-10 17:04 UTC (permalink / raw)
To: Christophe JAILLET
Cc: bhelgaas, arnd, hch, akpm, linux-pci, linux-kernel, kernel-janitors
On Wed, Mar 09, 2022 at 08:50:39PM +0100, Christophe JAILLET wrote:
> Now that all usages of the functions defined in "pci-dma-compat.h" have
> been removed, it is time to remove this file as well.
As of 1db333d9a51f ("Merge tag 'spi-fix-v5.17-rc7' of
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi"), all the
following still appear to be used:
git grep -E "\<PCI_DMA_(BIDIRECTIONAL|TODEVICE|FROMDEVICE|NONE)"
git grep -E "pci_(alloc|zalloc|free)_consistent"
git grep -E "pci_(map|unmap)_single"
git grep -E "\<pci_(map|unmap)_page"
git grep -E "pci_(map|unmap)_sg"
git grep -E "pci_dma_sync_"
git grep pci_dma_mapping_error
git grep -E "pci_set_.*dma_mask"
> In order not to break builds, move the "#include <linux/dma-mapping.h>"
> that was in "pci-dma-compat.h" into "include/linux/pci.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, 1 insertion(+), 131 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 60d423d8f0c4..7f924b5edd1d 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -2472,8 +2472,7 @@ 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>
> +#include <linux/dma-mapping.h>
>
> #define pci_printk(level, pdev, fmt, arg...) \
> dev_printk(level, &(pdev)->dev, fmt, ##arg)
> --
> 2.32.0
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API
2022-03-10 17:04 ` Bjorn Helgaas
@ 2022-03-10 17:30 ` Bjorn Helgaas
2022-03-29 18:18 ` Christoph Hellwig
0 siblings, 1 reply; 8+ messages in thread
From: Bjorn Helgaas @ 2022-03-10 17:30 UTC (permalink / raw)
To: Christophe JAILLET
Cc: bhelgaas, arnd, hch, akpm, linux-pci, linux-kernel, kernel-janitors
On Thu, Mar 10, 2022 at 11:04:45AM -0600, Bjorn Helgaas wrote:
> On Wed, Mar 09, 2022 at 08:50:39PM +0100, Christophe JAILLET wrote:
> > Now that all usages of the functions defined in "pci-dma-compat.h" have
> > been removed, it is time to remove this file as well.
>
> As of 1db333d9a51f ("Merge tag 'spi-fix-v5.17-rc7' of
> git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi"), all the
> following still appear to be used:
>
> git grep -E "\<PCI_DMA_(BIDIRECTIONAL|TODEVICE|FROMDEVICE|NONE)"
> git grep -E "pci_(alloc|zalloc|free)_consistent"
> git grep -E "pci_(map|unmap)_single"
> git grep -E "\<pci_(map|unmap)_page"
> git grep -E "pci_(map|unmap)_sg"
> git grep -E "pci_dma_sync_"
> git grep pci_dma_mapping_error
> git grep -E "pci_set_.*dma_mask"
Christoph mentioned several other trees that this depends on, and
those would likely be in linux-next, but not yet in Linus' tree. The
above poking around is from the tip of Linus' tree, which was the
wrong place for me to look.
But I did the same in current linux-next, 71941773e143 ("Add
linux-next specific files for 20220310"), and still found quite a few
uses. Some are in comments, printks, coccinelle scripts, etc. I
would assume we'd want to remove them all?
Bjorn
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API
2022-03-10 17:30 ` Bjorn Helgaas
@ 2022-03-29 18:18 ` Christoph Hellwig
2022-03-29 19:00 ` Bjorn Helgaas
0 siblings, 1 reply; 8+ messages in thread
From: Christoph Hellwig @ 2022-03-29 18:18 UTC (permalink / raw)
To: Bjorn Helgaas
Cc: Christophe JAILLET, bhelgaas, arnd, hch, akpm, linux-pci,
linux-kernel, kernel-janitors
On Thu, Mar 10, 2022 at 11:30:22AM -0600, Bjorn Helgaas wrote:
> Christoph mentioned several other trees that this depends on, and
> those would likely be in linux-next, but not yet in Linus' tree. The
> above poking around is from the tip of Linus' tree, which was the
> wrong place for me to look.
>
> But I did the same in current linux-next, 71941773e143 ("Add
> linux-next specific files for 20220310"), and still found quite a few
> uses. Some are in comments, printks, coccinelle scripts, etc. I
> would assume we'd want to remove them all?
I'm not sure there is much of a point to clean up the historic
comments, but it would be a nice cleanup. I'd very much like to
queue up this patch now that all the actual symbol references
are gone now. Are you ok with that?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API
2022-03-29 18:18 ` Christoph Hellwig
@ 2022-03-29 19:00 ` Bjorn Helgaas
0 siblings, 0 replies; 8+ messages in thread
From: Bjorn Helgaas @ 2022-03-29 19:00 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Christophe JAILLET, bhelgaas, arnd, akpm, linux-pci,
linux-kernel, kernel-janitors
On Tue, Mar 29, 2022 at 11:18:03AM -0700, Christoph Hellwig wrote:
> On Thu, Mar 10, 2022 at 11:30:22AM -0600, Bjorn Helgaas wrote:
> > Christoph mentioned several other trees that this depends on, and
> > those would likely be in linux-next, but not yet in Linus' tree. The
> > above poking around is from the tip of Linus' tree, which was the
> > wrong place for me to look.
> >
> > But I did the same in current linux-next, 71941773e143 ("Add
> > linux-next specific files for 20220310"), and still found quite a few
> > uses. Some are in comments, printks, coccinelle scripts, etc. I
> > would assume we'd want to remove them all?
>
> I'm not sure there is much of a point to clean up the historic
> comments, but it would be a nice cleanup. I'd very much like to
> queue up this patch now that all the actual symbol references
> are gone now. Are you ok with that?
Yep, I'm OK with that. I *would* like to see at least
Documentation/PCI/pci.rst updated soonish (it still refers to
pci_set_dma_mask() and friends).
Bjorn
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API
2022-03-09 19:50 [PATCH] PCI: Remove the deprecated "pci-dma-compat.h" API Christophe JAILLET
` (2 preceding siblings ...)
2022-03-10 17:04 ` Bjorn Helgaas
@ 2022-03-29 19:01 ` Bjorn Helgaas
3 siblings, 0 replies; 8+ messages in thread
From: Bjorn Helgaas @ 2022-03-29 19:01 UTC (permalink / raw)
To: Christophe JAILLET
Cc: bhelgaas, arnd, hch, akpm, linux-pci, linux-kernel, kernel-janitors
On Wed, Mar 09, 2022 at 08:50:39PM +0100, Christophe JAILLET wrote:
> Now that all usages of the functions defined in "pci-dma-compat.h" have
> been removed, it is time to remove this file as well.
>
> In order not to break builds, move the "#include <linux/dma-mapping.h>"
> that was in "pci-dma-compat.h" into "include/linux/pci.h"
>
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Bjorn Helgaas <bhelgaas@google.com>
Please also update the Documentation/PCI/pci.rst references to
pci_set_dma_mask() and friends.
> ---
> include/linux/pci-dma-compat.h | 129 ---------------------------------
> include/linux/pci.h | 3 +-
> 2 files changed, 1 insertion(+), 131 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 60d423d8f0c4..7f924b5edd1d 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -2472,8 +2472,7 @@ 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>
> +#include <linux/dma-mapping.h>
>
> #define pci_printk(level, pdev, fmt, arg...) \
> dev_printk(level, &(pdev)->dev, fmt, ##arg)
> --
> 2.32.0
>
^ permalink raw reply [flat|nested] 8+ messages in thread