aboutsummaryrefslogtreecommitdiff
path: root/scripts/cleanpatch
diff options
context:
space:
mode:
authorMarek Szyprowski <m.szyprowski@samsung.com>2026-09-30 10:50:55 +0200
committerMarek Szyprowski <m.szyprowski@samsung.com>2026-10-08 12:13:28 +0200
commit911655ab1dfb9d526978a75df3b210132620d30a (patch)
tree66f368bf4213088f4aab003ab3a71540a7e093a7 /scripts/cleanpatch
parent057e5e07420c753f248f9ce148040ab6dcf8359f (diff)
swiotlb: fix default_swiotlb_limit() for non-growable default pool
Commit ad96ce3252db ("swiotlb: determine potential physical address limit") changed default_swiotlb_limit() to return the maximum physical address that could ever be used by dynamically allocated pools, so that the value stays constant when CONFIG_SWIOTLB_DYNAMIC=y. However, io_tlb_default_mem.phys_limit is returned even when the default pool cannot grow, e.g. when swiotlb_init_remap() is called with a remap callback. This breaks Xen dom0 on x86: pci_xen_swiotlb_init() passes SWIOTLB_ANY and xen_swiotlb_fixup(), so phys_limit is set to the top of dom0 memory, although xen_swiotlb_fixup() makes the default pool below the 32-bit boundary. xen_swiotlb_dma_supported() then rejects 32-bit DMA masks, even though the bounce buffer is perfectly usable by such devices. Return phys_limit only if the default pool can actually grow, otherwise report the real end of the default pool, like in the !CONFIG_SWIOTLB_DYNAMIC case. Reported-by: Andreas Greve <andreas.greve@a-greve.de> Reported-by: James Dingwall <james@dingwall.me.uk> Fixes: ad96ce3252db ("swiotlb: determine potential physical address limit") Closes: https://lore.kernel.org/xen-devel/f74668db-52fd-4575-8372-7bfdf10d62ac@a-greve.de/ Cc: stable@vger.kernel.org Assisted-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Tested-by: James Dingwall <james@dingwall.me.uk> Link: https://lore.kernel.org/all/20261005070518.1590097-1-m.szyprowski@samsung.com/ Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Diffstat (limited to 'scripts/cleanpatch')
0 files changed, 0 insertions, 0 deletions