diff --git a/debian/changelog b/debian/changelog index 001efc787..5ad4fa07c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -267,6 +267,10 @@ linux (4.18.12-1) UNRELEASED; urgency=medium * [arm64] Update pinebook/teres-i device-tree patches to 4.19.x: - Enables the lid to wakeup from suspend. + [ Salvatore Bonaccorso ] + * [x86] swiotlb: Enable swiotlb for > 4GiG RAM on 32-bit kernels + (Closes: #908924) + -- Ben Hutchings Mon, 08 Oct 2018 19:02:53 +0100 linux (4.18.10-2) unstable; urgency=medium diff --git a/debian/patches/bugfix/x86/x86-swiotlb-Enable-swiotlb-for-4GiG-RAM-on-32-bit-ke.patch b/debian/patches/bugfix/x86/x86-swiotlb-Enable-swiotlb-for-4GiG-RAM-on-32-bit-ke.patch new file mode 100644 index 000000000..570c0cf96 --- /dev/null +++ b/debian/patches/bugfix/x86/x86-swiotlb-Enable-swiotlb-for-4GiG-RAM-on-32-bit-ke.patch @@ -0,0 +1,50 @@ +From: Christoph Hellwig +Date: Sun, 14 Oct 2018 09:52:08 +0200 +Subject: x86/swiotlb: Enable swiotlb for > 4GiG RAM on 32-bit kernels +Origin: https://git.kernel.org/linus/485734f3fc77c1eb77ffe138c027b9a4bf0178f3 +Bug-Debian: https://bugs.debian.org/908924 +Bug: https://bugzilla.kernel.org/show_bug.cgi?id=200709 + +We already build the swiotlb code for 32-bit kernels with PAE support, +but the code to actually use swiotlb has only been enabled for 64-bit +kernels for an unknown reason. + +Before Linux v4.18 we paper over this fact because the networking code, +the SCSI layer and some random block drivers implemented their own +bounce buffering scheme. + +[ mingo: Changelog fixes. ] + +Fixes: 21e07dba9fb1 ("scsi: reduce use of block bounce buffers") +Fixes: ab74cfebafa3 ("net: remove the PCI_DMA_BUS_IS_PHYS check in illegal_highdma") +Reported-by: Matthew Whitehead +Signed-off-by: Christoph Hellwig +Signed-off-by: Thomas Gleixner +Tested-by: Matthew Whitehead +Cc: konrad.wilk@oracle.com +Cc: iommu@lists.linux-foundation.org +Cc: stable@vger.kernel.org +Link: https://lkml.kernel.org/r/20181014075208.2715-1-hch@lst.de +Signed-off-by: Ingo Molnar +--- + arch/x86/kernel/pci-swiotlb.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c +index 661583662430..71c0b01d93b1 100644 +--- a/arch/x86/kernel/pci-swiotlb.c ++++ b/arch/x86/kernel/pci-swiotlb.c +@@ -42,10 +42,8 @@ IOMMU_INIT_FINISH(pci_swiotlb_detect_override, + int __init pci_swiotlb_detect_4gb(void) + { + /* don't initialize swiotlb if iommu=off (no_iommu=1) */ +-#ifdef CONFIG_X86_64 + if (!no_iommu && max_possible_pfn > MAX_DMA32_PFN) + swiotlb = 1; +-#endif + + /* + * If SME is active then swiotlb will be set to 1 so that bounce +-- +2.19.1 + diff --git a/debian/patches/series b/debian/patches/series index 014f32639..817ef4f3f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -100,6 +100,7 @@ bugfix/all/partially-revert-usb-kconfig-using-select-for-usb_co.patch bugfix/all/kbuild-include-addtree-remove-quotes-before-matching-path.patch debian/revert-objtool-fix-config_stack_validation-y-warning.patch bugfix/all/netfilter-ipvs-Fix-invalid-bytes-in-IP_VS_MH_TAB_IND.patch +bugfix/x86/x86-swiotlb-Enable-swiotlb-for-4GiG-RAM-on-32-bit-ke.patch # Miscellaneous features features/all/kbuild-add-build-salt-to-the-kernel-and-modules.patch