mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 17:25:38 +00:00
scatterlist: add dedicated config for DMA flags
The DMA flags field will be useful for users beyond PCI P2P, so upgrade to its own dedicated config option. [catalin.marinas@arm.com: use #ifdef CONFIG_NEED_SG_DMA_FLAGS in scatterlist.h] [catalin.marinas@arm.com: update PCI_P2PDMA dma_flags comment in scatterlist.h] Link: https://lkml.kernel.org/r/20230612153201.554742-13-catalin.marinas@arm.com Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Tested-by: Isaac J. Manjarres <isaacmanjarres@google.com> Cc: Alasdair Kergon <agk@redhat.com> Cc: Ard Biesheuvel <ardb@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Daniel Vetter <daniel@ffwll.ch> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Herbert Xu <herbert@gondor.apana.org.au> Cc: Jerry Snitselaar <jsnitsel@redhat.com> Cc: Joerg Roedel <joro@8bytes.org> Cc: Jonathan Cameron <jic23@kernel.org> Cc: Jonathan Cameron <Jonathan.Cameron@huawei.com> Cc: Lars-Peter Clausen <lars@metafoo.de> Cc: Logan Gunthorpe <logang@deltatee.com> Cc: Marc Zyngier <maz@kernel.org> Cc: Mark Brown <broonie@kernel.org> Cc: Mike Snitzer <snitzer@kernel.org> Cc: "Rafael J. Wysocki" <rafael@kernel.org> Cc: Saravana Kannan <saravanak@google.com> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Will Deacon <will@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
9382bc44b5
commit
af2880ec44
@ -168,6 +168,7 @@ config PCI_P2PDMA
|
||||
#
|
||||
depends on 64BIT
|
||||
select GENERIC_ALLOCATOR
|
||||
select NEED_SG_DMA_FLAGS
|
||||
help
|
||||
Enableѕ drivers to do PCI peer-to-peer transactions to and from
|
||||
BARs that are exposed in other devices that are the part of
|
||||
|
@ -16,7 +16,7 @@ struct scatterlist {
|
||||
#ifdef CONFIG_NEED_SG_DMA_LENGTH
|
||||
unsigned int dma_length;
|
||||
#endif
|
||||
#ifdef CONFIG_PCI_P2PDMA
|
||||
#ifdef CONFIG_NEED_SG_DMA_FLAGS
|
||||
unsigned int dma_flags;
|
||||
#endif
|
||||
};
|
||||
@ -249,12 +249,11 @@ static inline void sg_unmark_end(struct scatterlist *sg)
|
||||
}
|
||||
|
||||
/*
|
||||
* CONFGI_PCI_P2PDMA depends on CONFIG_64BIT which means there is 4 bytes
|
||||
* in struct scatterlist (assuming also CONFIG_NEED_SG_DMA_LENGTH is set).
|
||||
* Use this padding for DMA flags bits to indicate when a specific
|
||||
* dma address is a bus address.
|
||||
* One 64-bit architectures there is a 4-byte padding in struct scatterlist
|
||||
* (assuming also CONFIG_NEED_SG_DMA_LENGTH is set). Use this padding for DMA
|
||||
* flags bits to indicate when a specific dma address is a bus address.
|
||||
*/
|
||||
#ifdef CONFIG_PCI_P2PDMA
|
||||
#ifdef CONFIG_NEED_SG_DMA_FLAGS
|
||||
|
||||
#define SG_DMA_BUS_ADDRESS (1 << 0)
|
||||
|
||||
@ -312,7 +311,7 @@ static inline void sg_dma_unmark_bus_address(struct scatterlist *sg)
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* CONFIG_NEED_SG_DMA_FLAGS */
|
||||
|
||||
/**
|
||||
* sg_phys - Return physical address of an sg entry
|
||||
|
@ -24,6 +24,9 @@ config DMA_OPS_BYPASS
|
||||
config ARCH_HAS_DMA_MAP_DIRECT
|
||||
bool
|
||||
|
||||
config NEED_SG_DMA_FLAGS
|
||||
bool
|
||||
|
||||
config NEED_SG_DMA_LENGTH
|
||||
bool
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user