Commit 794d5b8a authored by Jan Beulich's avatar Jan Beulich Committed by Juergen Gross
Browse files

swiotlb-xen: this is PV-only on x86



The code is unreachable for HVM or PVH, and it also makes little sense
in auto-translated environments. On Arm, with
xen_{create,destroy}_contiguous_region() both being stubs, I have a hard
time seeing what good the Xen specific variant does - the generic one
ought to be fine for all purposes there. Still Arm code explicitly
references symbols here, so the code will continue to be included there.

Instead of making PCI_XEN's "select" conditional, simply drop it -
SWIOTLB_XEN will be available unconditionally in the PV case anyway, and
is - as explained above - dead code in non-PV environments.

This in turn allows dropping the stubs for
xen_{create,destroy}_contiguous_region(), the former of which was broken
anyway - it failed to set the DMA handle output.

Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarStefano Stabellini <sstabellini@kernel.org>

Link: https://lore.kernel.org/r/5947b8ae-fdc7-225c-4838-84712265fc1e@suse.com


Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
parent 8e1034a5
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -2605,7 +2605,6 @@ config PCI_OLPC
config PCI_XEN
	def_bool y
	depends on PCI && XEN
	select SWIOTLB_XEN

config MMCONF_FAM10H
	def_bool y
+1 −0
Original line number Diff line number Diff line
@@ -177,6 +177,7 @@ config XEN_GRANT_DMA_ALLOC

config SWIOTLB_XEN
	def_bool y
	depends on XEN_PV || ARM || ARM64
	select DMA_OPS
	select SWIOTLB

+0 −12
Original line number Diff line number Diff line
@@ -46,19 +46,7 @@ extern unsigned long *xen_contiguous_bitmap;
int xen_create_contiguous_region(phys_addr_t pstart, unsigned int order,
				unsigned int address_bits,
				dma_addr_t *dma_handle);

void xen_destroy_contiguous_region(phys_addr_t pstart, unsigned int order);
#else
static inline int xen_create_contiguous_region(phys_addr_t pstart,
					       unsigned int order,
					       unsigned int address_bits,
					       dma_addr_t *dma_handle)
{
	return 0;
}

static inline void xen_destroy_contiguous_region(phys_addr_t pstart,
						 unsigned int order) { }
#endif

#if defined(CONFIG_XEN_PV)