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 | ||||
| 	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 a new issue
	
	 Robin Murphy
						Robin Murphy