From: Greg Kroah-Hartman Date: Mon, 6 Apr 2020 19:30:42 +0000 (+0200) Subject: 5.5-stable patches X-Git-Tag: v5.4.31~26 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b28861157666390959c7cb7a975a611487beeb5;p=thirdparty%2Fkernel%2Fstable-queue.git 5.5-stable patches 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 --- 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 index 00000000000..308fd81c9fe --- /dev/null +++ b/queue-5.5/alsa-hda-ca0132-add-recon3di-quirk-to-handle-integrated-sound-on-evga-x99-classified-motherboard.patch @@ -0,0 +1,40 @@ +From e9097e47e349b747dee50f935216de0ffb662962 Mon Sep 17 00:00:00 2001 +From: Geoffrey Allott +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 + +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 +Cc: +Link: https://lore.kernel.org/r/a6cd56b678c00ce2db3685e4278919f2584f8244.camel@allott.email +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..6e8ce2b37de --- /dev/null +++ b/queue-5.5/revert-dm-always-call-blk_queue_split-in-dm_process_bio.patch @@ -0,0 +1,110 @@ +From 120c9257f5f19e5d1e87efcbb5531b7cd81b7d74 Mon Sep 17 00:00:00 2001 +From: Mike Snitzer +Date: Thu, 2 Apr 2020 19:36:26 -0400 +Subject: Revert "dm: always call blk_queue_split() in dm_process_bio()" + +From: Mike Snitzer + +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 +Tested-by: Barry Marson +Signed-off-by: Mike Snitzer +Signed-off-by: Greg Kroah-Hartman + +--- + 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); + } + diff --git a/queue-5.5/series b/queue-5.5/series index 14301978ea9..7bd765228ea 100644 --- a/queue-5.5/series +++ b/queue-5.5/series @@ -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