]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.5-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 Apr 2020 19:30:42 +0000 (21:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 6 Apr 2020 19:30:42 +0000 (21:30 +0200)
added patches:
alsa-hda-ca0132-add-recon3di-quirk-to-handle-integrated-sound-on-evga-x99-classified-motherboard.patch
revert-dm-always-call-blk_queue_split-in-dm_process_bio.patch

queue-5.5/alsa-hda-ca0132-add-recon3di-quirk-to-handle-integrated-sound-on-evga-x99-classified-motherboard.patch [new file with mode: 0644]
queue-5.5/revert-dm-always-call-blk_queue_split-in-dm_process_bio.patch [new file with mode: 0644]
queue-5.5/series

diff --git a/queue-5.5/alsa-hda-ca0132-add-recon3di-quirk-to-handle-integrated-sound-on-evga-x99-classified-motherboard.patch b/queue-5.5/alsa-hda-ca0132-add-recon3di-quirk-to-handle-integrated-sound-on-evga-x99-classified-motherboard.patch
new file mode 100644 (file)
index 0000000..308fd81
--- /dev/null
@@ -0,0 +1,40 @@
+From e9097e47e349b747dee50f935216de0ffb662962 Mon Sep 17 00:00:00 2001
+From: Geoffrey Allott <geoffrey@allott.email>
+Date: Thu, 19 Mar 2020 14:00:48 +0000
+Subject: ALSA: hda/ca0132 - Add Recon3Di quirk to handle integrated sound on EVGA X99 Classified motherboard
+
+From: Geoffrey Allott <geoffrey@allott.email>
+
+commit e9097e47e349b747dee50f935216de0ffb662962 upstream.
+
+I have a system which has an EVGA X99 Classified motherboard. The pin
+assignments for the HD Audio controller are not correct under Linux.
+Windows 10 works fine and informs me that it's using the Recon3Di
+driver, and on Linux, `cat
+/sys/class/sound/card0/device/subsystem_{vendor,device}` yields
+
+0x3842
+0x1038
+
+This patch adds a corresponding entry to the quirk list.
+
+Signed-off-by: Geoffrey Allott <geoffrey@allott.email>
+Cc: <stable@vger.kernel.org>
+Link: https://lore.kernel.org/r/a6cd56b678c00ce2db3685e4278919f2584f8244.camel@allott.email
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ sound/pci/hda/patch_ca0132.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/pci/hda/patch_ca0132.c
++++ b/sound/pci/hda/patch_ca0132.c
+@@ -1180,6 +1180,7 @@ static const struct snd_pci_quirk ca0132
+       SND_PCI_QUIRK(0x1458, 0xA016, "Recon3Di", QUIRK_R3DI),
+       SND_PCI_QUIRK(0x1458, 0xA026, "Gigabyte G1.Sniper Z97", QUIRK_R3DI),
+       SND_PCI_QUIRK(0x1458, 0xA036, "Gigabyte GA-Z170X-Gaming 7", QUIRK_R3DI),
++      SND_PCI_QUIRK(0x3842, 0x1038, "EVGA X99 Classified", QUIRK_R3DI),
+       SND_PCI_QUIRK(0x1102, 0x0013, "Recon3D", QUIRK_R3D),
+       SND_PCI_QUIRK(0x1102, 0x0051, "Sound Blaster AE-5", QUIRK_AE5),
+       {}
diff --git a/queue-5.5/revert-dm-always-call-blk_queue_split-in-dm_process_bio.patch b/queue-5.5/revert-dm-always-call-blk_queue_split-in-dm_process_bio.patch
new file mode 100644 (file)
index 0000000..6e8ce2b
--- /dev/null
@@ -0,0 +1,110 @@
+From 120c9257f5f19e5d1e87efcbb5531b7cd81b7d74 Mon Sep 17 00:00:00 2001
+From: Mike Snitzer <snitzer@redhat.com>
+Date: Thu, 2 Apr 2020 19:36:26 -0400
+Subject: Revert "dm: always call blk_queue_split() in dm_process_bio()"
+
+From: Mike Snitzer <snitzer@redhat.com>
+
+commit 120c9257f5f19e5d1e87efcbb5531b7cd81b7d74 upstream.
+
+This reverts commit effd58c95f277744f75d6e08819ac859dbcbd351.
+
+blk_queue_split() is causing excessive IO splitting -- because
+blk_max_size_offset() depends on 'chunk_sectors' limit being set and
+if it isn't (as is the case for DM targets!) it falls back to
+splitting on a 'max_sectors' boundary regardless of offset.
+
+"Fix" this by reverting back to _not_ using blk_queue_split() in
+dm_process_bio() for normal IO (reads and writes).  Long-term fix is
+still TBD but it should focus on training blk_max_size_offset() to
+call into a DM provided hook (to call DM's max_io_len()).
+
+Test results from simple misaligned IO test on 4-way dm-striped device
+with chunksize of 128K and stripesize of 512K:
+
+xfs_io -d -c 'pread -b 2m 224s 4072s' /dev/mapper/stripe_dev
+
+before this revert:
+
+253,0   21        1     0.000000000  2206  Q   R 224 + 4072 [xfs_io]
+253,0   21        2     0.000008267  2206  X   R 224 / 480 [xfs_io]
+253,0   21        3     0.000010530  2206  X   R 224 / 256 [xfs_io]
+253,0   21        4     0.000027022  2206  X   R 480 / 736 [xfs_io]
+253,0   21        5     0.000028751  2206  X   R 480 / 512 [xfs_io]
+253,0   21        6     0.000033323  2206  X   R 736 / 992 [xfs_io]
+253,0   21        7     0.000035130  2206  X   R 736 / 768 [xfs_io]
+253,0   21        8     0.000039146  2206  X   R 992 / 1248 [xfs_io]
+253,0   21        9     0.000040734  2206  X   R 992 / 1024 [xfs_io]
+253,0   21       10     0.000044694  2206  X   R 1248 / 1504 [xfs_io]
+253,0   21       11     0.000046422  2206  X   R 1248 / 1280 [xfs_io]
+253,0   21       12     0.000050376  2206  X   R 1504 / 1760 [xfs_io]
+253,0   21       13     0.000051974  2206  X   R 1504 / 1536 [xfs_io]
+253,0   21       14     0.000055881  2206  X   R 1760 / 2016 [xfs_io]
+253,0   21       15     0.000057462  2206  X   R 1760 / 1792 [xfs_io]
+253,0   21       16     0.000060999  2206  X   R 2016 / 2272 [xfs_io]
+253,0   21       17     0.000062489  2206  X   R 2016 / 2048 [xfs_io]
+253,0   21       18     0.000066133  2206  X   R 2272 / 2528 [xfs_io]
+253,0   21       19     0.000067507  2206  X   R 2272 / 2304 [xfs_io]
+253,0   21       20     0.000071136  2206  X   R 2528 / 2784 [xfs_io]
+253,0   21       21     0.000072764  2206  X   R 2528 / 2560 [xfs_io]
+253,0   21       22     0.000076185  2206  X   R 2784 / 3040 [xfs_io]
+253,0   21       23     0.000077486  2206  X   R 2784 / 2816 [xfs_io]
+253,0   21       24     0.000080885  2206  X   R 3040 / 3296 [xfs_io]
+253,0   21       25     0.000082316  2206  X   R 3040 / 3072 [xfs_io]
+253,0   21       26     0.000085788  2206  X   R 3296 / 3552 [xfs_io]
+253,0   21       27     0.000087096  2206  X   R 3296 / 3328 [xfs_io]
+253,0   21       28     0.000093469  2206  X   R 3552 / 3808 [xfs_io]
+253,0   21       29     0.000095186  2206  X   R 3552 / 3584 [xfs_io]
+253,0   21       30     0.000099228  2206  X   R 3808 / 4064 [xfs_io]
+253,0   21       31     0.000101062  2206  X   R 3808 / 3840 [xfs_io]
+253,0   21       32     0.000104956  2206  X   R 4064 / 4096 [xfs_io]
+253,0   21       33     0.001138823     0  C   R 4096 + 200 [0]
+
+after this revert:
+
+253,0   18        1     0.000000000  4430  Q   R 224 + 3896 [xfs_io]
+253,0   18        2     0.000018359  4430  X   R 224 / 256 [xfs_io]
+253,0   18        3     0.000028898  4430  X   R 256 / 512 [xfs_io]
+253,0   18        4     0.000033535  4430  X   R 512 / 768 [xfs_io]
+253,0   18        5     0.000065684  4430  X   R 768 / 1024 [xfs_io]
+253,0   18        6     0.000091695  4430  X   R 1024 / 1280 [xfs_io]
+253,0   18        7     0.000098494  4430  X   R 1280 / 1536 [xfs_io]
+253,0   18        8     0.000114069  4430  X   R 1536 / 1792 [xfs_io]
+253,0   18        9     0.000129483  4430  X   R 1792 / 2048 [xfs_io]
+253,0   18       10     0.000136759  4430  X   R 2048 / 2304 [xfs_io]
+253,0   18       11     0.000152412  4430  X   R 2304 / 2560 [xfs_io]
+253,0   18       12     0.000160758  4430  X   R 2560 / 2816 [xfs_io]
+253,0   18       13     0.000183385  4430  X   R 2816 / 3072 [xfs_io]
+253,0   18       14     0.000190797  4430  X   R 3072 / 3328 [xfs_io]
+253,0   18       15     0.000197667  4430  X   R 3328 / 3584 [xfs_io]
+253,0   18       16     0.000218751  4430  X   R 3584 / 3840 [xfs_io]
+253,0   18       17     0.000226005  4430  X   R 3840 / 4096 [xfs_io]
+253,0   18       18     0.000250404  4430  Q   R 4120 + 176 [xfs_io]
+253,0   18       19     0.000847708     0  C   R 4096 + 24 [0]
+253,0   18       20     0.000855783     0  C   R 4120 + 176 [0]
+
+Fixes: effd58c95f27774 ("dm: always call blk_queue_split() in dm_process_bio()")
+Cc: stable@vger.kernel.org
+Reported-by: Andreas Gruenbacher <agruenba@redhat.com>
+Tested-by: Barry Marson <bmarson@redhat.com>
+Signed-off-by: Mike Snitzer <snitzer@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/md/dm.c |    5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+--- a/drivers/md/dm.c
++++ b/drivers/md/dm.c
+@@ -1739,8 +1739,9 @@ static blk_qc_t dm_process_bio(struct ma
+        * won't be imposed.
+        */
+       if (current->bio_list) {
+-              blk_queue_split(md->queue, &bio);
+-              if (!is_abnormal_io(bio))
++              if (is_abnormal_io(bio))
++                      blk_queue_split(md->queue, &bio);
++              else
+                       dm_queue_split(md, ti, &bio);
+       }
index 14301978ea9c26879eb80a38871607c25a3bc016..7bd765228ea9385d34a8bba7d21aae41cbb0a0cf 100644 (file)
@@ -28,3 +28,5 @@ nvmem-check-for-null-reg_read-and-reg_write-before-dereferencing.patch
 nvmem-sprd-fix-the-block-lock-operation.patch
 extcon-axp288-add-wakeup-support.patch
 power-supply-axp288_charger-add-special-handling-for-hp-pavilion-x2-10.patch
+revert-dm-always-call-blk_queue_split-in-dm_process_bio.patch
+alsa-hda-ca0132-add-recon3di-quirk-to-handle-integrated-sound-on-evga-x99-classified-motherboard.patch