forked from mirrors/linux
		
	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
					
				
					 3 changed files with 10 additions and 7 deletions
				
			
		|  | @ -168,6 +168,7 @@ config PCI_P2PDMA | ||||||
| 	# | 	# | ||||||
| 	depends on 64BIT | 	depends on 64BIT | ||||||
| 	select GENERIC_ALLOCATOR | 	select GENERIC_ALLOCATOR | ||||||
|  | 	select NEED_SG_DMA_FLAGS | ||||||
| 	help | 	help | ||||||
| 	  Enableѕ drivers to do PCI peer-to-peer transactions to and from | 	  Enableѕ drivers to do PCI peer-to-peer transactions to and from | ||||||
| 	  BARs that are exposed in other devices that are the part of | 	  BARs that are exposed in other devices that are the part of | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ struct scatterlist { | ||||||
| #ifdef CONFIG_NEED_SG_DMA_LENGTH | #ifdef CONFIG_NEED_SG_DMA_LENGTH | ||||||
| 	unsigned int	dma_length; | 	unsigned int	dma_length; | ||||||
| #endif | #endif | ||||||
| #ifdef CONFIG_PCI_P2PDMA | #ifdef CONFIG_NEED_SG_DMA_FLAGS | ||||||
| 	unsigned int    dma_flags; | 	unsigned int    dma_flags; | ||||||
| #endif | #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 |  * One 64-bit architectures there is a 4-byte padding in struct scatterlist | ||||||
|  * in struct scatterlist (assuming also CONFIG_NEED_SG_DMA_LENGTH is set). |  * (assuming also CONFIG_NEED_SG_DMA_LENGTH is set). Use this padding for DMA | ||||||
|  * Use this padding for DMA flags bits to indicate when a specific |  * flags bits to indicate when a specific dma address is a bus address. | ||||||
|  * dma address is a bus address. |  | ||||||
|  */ |  */ | ||||||
| #ifdef CONFIG_PCI_P2PDMA | #ifdef CONFIG_NEED_SG_DMA_FLAGS | ||||||
| 
 | 
 | ||||||
| #define SG_DMA_BUS_ADDRESS (1 << 0) | #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 |  * sg_phys - Return physical address of an sg entry | ||||||
|  |  | ||||||
|  | @ -24,6 +24,9 @@ config DMA_OPS_BYPASS | ||||||
| config ARCH_HAS_DMA_MAP_DIRECT | config ARCH_HAS_DMA_MAP_DIRECT | ||||||
| 	bool | 	bool | ||||||
| 
 | 
 | ||||||
|  | config NEED_SG_DMA_FLAGS | ||||||
|  | 	bool | ||||||
|  | 
 | ||||||
| config NEED_SG_DMA_LENGTH | config NEED_SG_DMA_LENGTH | ||||||
| 	bool | 	bool | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Robin Murphy
						Robin Murphy