]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 4.9
authorSasha Levin <sashal@kernel.org>
Mon, 6 Sep 2021 01:10:40 +0000 (21:10 -0400)
committerSasha Levin <sashal@kernel.org>
Mon, 6 Sep 2021 01:10:40 +0000 (21:10 -0400)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-4.9/cryptoloop-add-a-deprecation-warning.patch [new file with mode: 0644]
queue-4.9/perf-x86-amd-ibs-work-around-erratum-1197.patch [new file with mode: 0644]
queue-4.9/qed-fix-the-vf-msix-vectors-flow.patch [new file with mode: 0644]
queue-4.9/qede-fix-memset-corruption.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/cryptoloop-add-a-deprecation-warning.patch b/queue-4.9/cryptoloop-add-a-deprecation-warning.patch
new file mode 100644 (file)
index 0000000..14e16f1
--- /dev/null
@@ -0,0 +1,62 @@
+From 2193578ff5d7ed86edd28666b7de94c6ef5b6004 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Fri, 27 Aug 2021 18:32:50 +0200
+Subject: cryptoloop: add a deprecation warning
+
+From: Christoph Hellwig <hch@lst.de>
+
+[ Upstream commit 222013f9ac30b9cec44301daa8dbd0aae38abffb ]
+
+Support for cryptoloop has been officially marked broken and deprecated
+in favor of dm-crypt (which supports the same broken algorithms if
+needed) in Linux 2.6.4 (released in March 2004), and support for it has
+been entirely removed from losetup in util-linux 2.23 (released in April
+2013).  Add a warning and a deprecation schedule.
+
+Signed-off-by: Christoph Hellwig <hch@lst.de>
+Link: https://lore.kernel.org/r/20210827163250.255325-1-hch@lst.de
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/block/Kconfig      | 4 ++--
+ drivers/block/cryptoloop.c | 2 ++
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
+index 894102fd5a06..b701c79f07e5 100644
+--- a/drivers/block/Kconfig
++++ b/drivers/block/Kconfig
+@@ -257,7 +257,7 @@ config BLK_DEV_LOOP_MIN_COUNT
+         dynamically allocated with the /dev/loop-control interface.
+ config BLK_DEV_CRYPTOLOOP
+-      tristate "Cryptoloop Support"
++      tristate "Cryptoloop Support (DEPRECATED)"
+       select CRYPTO
+       select CRYPTO_CBC
+       depends on BLK_DEV_LOOP
+@@ -269,7 +269,7 @@ config BLK_DEV_CRYPTOLOOP
+         WARNING: This device is not safe for journaled file systems like
+         ext3 or Reiserfs. Please use the Device Mapper crypto module
+         instead, which can be configured to be on-disk compatible with the
+-        cryptoloop device.
++        cryptoloop device.  cryptoloop support will be removed in Linux 5.16.
+ source "drivers/block/drbd/Kconfig"
+diff --git a/drivers/block/cryptoloop.c b/drivers/block/cryptoloop.c
+index 3d31761c0ed0..adbfd3e2a60f 100644
+--- a/drivers/block/cryptoloop.c
++++ b/drivers/block/cryptoloop.c
+@@ -203,6 +203,8 @@ init_cryptoloop(void)
+       if (rc)
+               printk(KERN_ERR "cryptoloop: loop_register_transfer failed\n");
++      else
++              pr_warn("the cryptoloop driver has been deprecated and will be removed in in Linux 5.16\n");
+       return rc;
+ }
+-- 
+2.30.2
+
diff --git a/queue-4.9/perf-x86-amd-ibs-work-around-erratum-1197.patch b/queue-4.9/perf-x86-amd-ibs-work-around-erratum-1197.patch
new file mode 100644 (file)
index 0000000..a438119
--- /dev/null
@@ -0,0 +1,64 @@
+From 64638be762ba91001311f610fc63eb8c556bfd7c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 17 Aug 2021 17:10:42 -0500
+Subject: perf/x86/amd/ibs: Work around erratum #1197
+
+From: Kim Phillips <kim.phillips@amd.com>
+
+[ Upstream commit 26db2e0c51fe83e1dd852c1321407835b481806e ]
+
+Erratum #1197 "IBS (Instruction Based Sampling) Register State May be
+Incorrect After Restore From CC6" is published in a document:
+
+  "Revision Guide for AMD Family 19h Models 00h-0Fh Processors" 56683 Rev. 1.04 July 2021
+
+  https://bugzilla.kernel.org/show_bug.cgi?id=206537
+
+Implement the erratum's suggested workaround and ignore IBS samples if
+MSRC001_1031 == 0.
+
+Signed-off-by: Kim Phillips <kim.phillips@amd.com>
+Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Link: https://lore.kernel.org/r/20210817221048.88063-3-kim.phillips@amd.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ arch/x86/events/amd/ibs.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/arch/x86/events/amd/ibs.c b/arch/x86/events/amd/ibs.c
+index f6e57bebbc6b..5c6aad14cdd9 100644
+--- a/arch/x86/events/amd/ibs.c
++++ b/arch/x86/events/amd/ibs.c
+@@ -89,6 +89,7 @@ struct perf_ibs {
+       unsigned long                   offset_mask[1];
+       int                             offset_max;
+       unsigned int                    fetch_count_reset_broken : 1;
++      unsigned int                    fetch_ignore_if_zero_rip : 1;
+       struct cpu_perf_ibs __percpu    *pcpu;
+       struct attribute                **format_attrs;
+@@ -673,6 +674,10 @@ fail:
+       if (check_rip && (ibs_data.regs[2] & IBS_RIP_INVALID)) {
+               regs.flags &= ~PERF_EFLAGS_EXACT;
+       } else {
++              /* Workaround for erratum #1197 */
++              if (perf_ibs->fetch_ignore_if_zero_rip && !(ibs_data.regs[1]))
++                      goto out;
++
+               set_linear_ip(&regs, ibs_data.regs[1]);
+               regs.flags |= PERF_EFLAGS_EXACT;
+       }
+@@ -766,6 +771,9 @@ static __init void perf_event_ibs_init(void)
+       if (boot_cpu_data.x86 >= 0x16 && boot_cpu_data.x86 <= 0x18)
+               perf_ibs_fetch.fetch_count_reset_broken = 1;
++      if (boot_cpu_data.x86 == 0x19 && boot_cpu_data.x86_model < 0x10)
++              perf_ibs_fetch.fetch_ignore_if_zero_rip = 1;
++
+       perf_ibs_pmu_init(&perf_ibs_fetch, "ibs_fetch");
+       if (ibs_caps & IBS_CAPS_OPCNT) {
+-- 
+2.30.2
+
diff --git a/queue-4.9/qed-fix-the-vf-msix-vectors-flow.patch b/queue-4.9/qed-fix-the-vf-msix-vectors-flow.patch
new file mode 100644 (file)
index 0000000..0abeb16
--- /dev/null
@@ -0,0 +1,43 @@
+From 45ded75b0d895b4bd8392cfc21ab50f7d4663baf Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 22 Aug 2021 22:21:14 +0300
+Subject: qed: Fix the VF msix vectors flow
+
+From: Shai Malin <smalin@marvell.com>
+
+[ Upstream commit b0cd08537db8d2fbb227cdb2e5835209db295a24 ]
+
+For VFs we should return with an error in case we didn't get the exact
+number of msix vectors as we requested.
+Not doing that will lead to a crash when starting queues for this VF.
+
+Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
+Signed-off-by: Ariel Elior <aelior@marvell.com>
+Signed-off-by: Shai Malin <smalin@marvell.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/qlogic/qed/qed_main.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c
+index 708117fc6f73..7669d36151c6 100644
+--- a/drivers/net/ethernet/qlogic/qed/qed_main.c
++++ b/drivers/net/ethernet/qlogic/qed/qed_main.c
+@@ -374,7 +374,12 @@ static int qed_enable_msix(struct qed_dev *cdev,
+                       rc = cnt;
+       }
+-      if (rc > 0) {
++      /* For VFs, we should return with an error in case we didn't get the
++       * exact number of msix vectors as we requested.
++       * Not doing that will lead to a crash when starting queues for
++       * this VF.
++       */
++      if ((IS_PF(cdev) && rc > 0) || (IS_VF(cdev) && rc == cnt)) {
+               /* MSI-x configuration was achieved */
+               int_params->out.int_mode = QED_INT_MODE_MSIX;
+               int_params->out.num_vectors = rc;
+-- 
+2.30.2
+
diff --git a/queue-4.9/qede-fix-memset-corruption.patch b/queue-4.9/qede-fix-memset-corruption.patch
new file mode 100644 (file)
index 0000000..7cd049e
--- /dev/null
@@ -0,0 +1,48 @@
+From 8fa877c9d4d3aa6fb4c96ae3dd39aa50999da292 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 24 Aug 2021 19:52:49 +0300
+Subject: qede: Fix memset corruption
+
+From: Shai Malin <smalin@marvell.com>
+
+[ Upstream commit e543468869e2532f5d7926e8f417782b48eca3dc ]
+
+Thanks to Kees Cook who detected the problem of memset that starting
+from not the first member, but sized for the whole struct.
+The better change will be to remove the redundant memset and to clear
+only the msix_cnt member.
+
+Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com>
+Signed-off-by: Ariel Elior <aelior@marvell.com>
+Signed-off-by: Shai Malin <smalin@marvell.com>
+Reported-by: Kees Cook <keescook@chromium.org>
+Reviewed-by: Kees Cook <keescook@chromium.org>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/net/ethernet/qlogic/qede/qede_main.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
+index 9b1920b58594..d21a73bc4cde 100644
+--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
++++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
+@@ -3145,6 +3145,7 @@ static void qede_sync_free_irqs(struct qede_dev *edev)
+       }
+       edev->int_info.used_cnt = 0;
++      edev->int_info.msix_cnt = 0;
+ }
+ static int qede_req_msix_irqs(struct qede_dev *edev)
+@@ -3644,7 +3645,6 @@ static int qede_load(struct qede_dev *edev, enum qede_load_mode mode)
+ err4:
+       qede_sync_free_irqs(edev);
+-      memset(&edev->int_info.msix_cnt, 0, sizeof(struct qed_int_info));
+ err3:
+       qede_napi_disable_remove(edev);
+ err2:
+-- 
+2.30.2
+
index b1aeeea0af7944cbe86710cc160b68df0b5e6f5b..65c75ec58951b3c70039fcbfae46e936bb5a07a5 100644 (file)
@@ -1,2 +1,6 @@
 ext4-fix-race-writing-to-an-inline_data-file-while-its-xattrs-are-changing.patch
 mtd-nand-atmel_nand-remove-build-warning-in.patch
+qed-fix-the-vf-msix-vectors-flow.patch
+qede-fix-memset-corruption.patch
+perf-x86-amd-ibs-work-around-erratum-1197.patch
+cryptoloop-add-a-deprecation-warning.patch