]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.16-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Apr 2018 14:12:55 +0000 (16:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 20 Apr 2018 14:12:55 +0000 (16:12 +0200)
added patches:
swiotlb-fix-unexpected-swiotlb_alloc_coherent-failures.patch

queue-4.16/series
queue-4.16/swiotlb-fix-unexpected-swiotlb_alloc_coherent-failures.patch [new file with mode: 0644]

index 88306e9dddba54c5d4ca4934563432e1ae9ecee6..388bf2f4ea971d0b46021eb5660fcb28928168fe 100644 (file)
@@ -55,3 +55,4 @@ cifs-refactor-crypto-shash-sdesc-allocation-free.patch
 cifs-add-sha512-secmech.patch
 cifs-implement-v3.11-preauth-integrity.patch
 cifs-fix-sha512-check-in-cifs_crypto_secmech_release.patch
+swiotlb-fix-unexpected-swiotlb_alloc_coherent-failures.patch
diff --git a/queue-4.16/swiotlb-fix-unexpected-swiotlb_alloc_coherent-failures.patch b/queue-4.16/swiotlb-fix-unexpected-swiotlb_alloc_coherent-failures.patch
new file mode 100644 (file)
index 0000000..3fe438a
--- /dev/null
@@ -0,0 +1,41 @@
+From 9e7f06c8beee304ee21b791653fefcd713f48b9a Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 10 Apr 2018 19:05:13 +0200
+Subject: swiotlb: fix unexpected swiotlb_alloc_coherent failures
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 9e7f06c8beee304ee21b791653fefcd713f48b9a upstream.
+
+The code refactoring by commit 0176adb00406 ("swiotlb: refactor coherent
+buffer allocation") made swiotlb_alloc_buffer almost always failing due
+to a thinko: namely, the function evaluates the dma_coherent_ok call
+incorrectly and dealing as if it's invalid. This ends up with weird
+errors like iwlwifi probe failure or amdgpu screen flickering.
+
+This patch corrects the logic error.
+
+Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1088658
+Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1088902
+Fixes: 0176adb00406 ("swiotlb: refactor coherent buffer allocation")
+Cc: <stable@vger.kernel.org> # v4.16+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Cc: Jean Delvare <jdelvare@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ lib/swiotlb.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/lib/swiotlb.c
++++ b/lib/swiotlb.c
+@@ -732,7 +732,7 @@ swiotlb_alloc_buffer(struct device *dev,
+               goto out_warn;
+       *dma_handle = swiotlb_phys_to_dma(dev, phys_addr);
+-      if (dma_coherent_ok(dev, *dma_handle, size))
++      if (!dma_coherent_ok(dev, *dma_handle, size))
+               goto out_unmap;
+       memset(phys_to_virt(phys_addr), 0, size);