]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.12-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Sep 2025 05:52:05 +0000 (07:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Sep 2025 05:52:05 +0000 (07:52 +0200)
added patches:
rtc-pcf2127-fix-spi-command-byte-for-pcf2131-backport.patch
x86-sev-guard-sev_evict_cache-with-config_amd_mem_encrypt.patch

queue-6.12/rtc-pcf2127-fix-spi-command-byte-for-pcf2131-backport.patch [new file with mode: 0644]
queue-6.12/series
queue-6.12/x86-sev-guard-sev_evict_cache-with-config_amd_mem_encrypt.patch [new file with mode: 0644]

diff --git a/queue-6.12/rtc-pcf2127-fix-spi-command-byte-for-pcf2131-backport.patch b/queue-6.12/rtc-pcf2127-fix-spi-command-byte-for-pcf2131-backport.patch
new file mode 100644 (file)
index 0000000..1c3e4c1
--- /dev/null
@@ -0,0 +1,58 @@
+From bruno.thomsen@gmail.com  Sun Sep 21 19:35:33 2025
+From: Bruno Thomsen <bruno.thomsen@gmail.com>
+Date: Wed, 20 Aug 2025 21:30:16 +0200
+Subject: rtc: pcf2127: fix SPI command byte for PCF2131 backport
+To: linux-rtc@vger.kernel.org
+Cc: bruno.thomsen@gmail.com, stable@vger.kernel.org, Alexandre Belloni <alexandre.belloni@bootlin.com>, Elena Popa <elena.popa@nxp.com>, Hugo Villeneuve <hvilleneuve@dimonoff.com>
+Message-ID: <20250820193016.7987-1-bruno.thomsen@gmail.com>
+
+From: Bruno Thomsen <bruno.thomsen@gmail.com>
+
+When commit fa78e9b606a472495ef5b6b3d8b45c37f7727f9d upstream was
+backported to LTS branches linux-6.12.y and linux-6.6.y, the SPI regmap
+config fix got applied to the I2C regmap config. Most likely due to a new
+RTC get/set parm feature introduced in 6.14 causing regmap config sections
+in the buttom of the driver to move. LTS branch linux-6.1.y and earlier
+does not have PCF2131 device support.
+
+Issue can be seen in buttom of this diff in stable/linux.git tree:
+git diff master..linux-6.12.y -- drivers/rtc/rtc-pcf2127.c
+
+Fixes: ee61aec8529e ("rtc: pcf2127: fix SPI command byte for PCF2131")
+Fixes: 5cdd1f73401d ("rtc: pcf2127: fix SPI command byte for PCF2131")
+Cc: stable@vger.kernel.org
+Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Cc: Elena Popa <elena.popa@nxp.com>
+Cc: Hugo Villeneuve <hvilleneuve@dimonoff.com>
+Signed-off-by: Bruno Thomsen <bruno.thomsen@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/rtc/rtc-pcf2127.c |   10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+--- a/drivers/rtc/rtc-pcf2127.c
++++ b/drivers/rtc/rtc-pcf2127.c
+@@ -1383,11 +1383,6 @@ static int pcf2127_i2c_probe(struct i2c_
+               variant = &pcf21xx_cfg[type];
+       }
+-      if (variant->type == PCF2131) {
+-              config.read_flag_mask = 0x0;
+-              config.write_flag_mask = 0x0;
+-      }
+-
+       config.max_register = variant->max_register,
+       regmap = devm_regmap_init(&client->dev, &pcf2127_i2c_regmap,
+@@ -1461,6 +1456,11 @@ static int pcf2127_spi_probe(struct spi_
+               variant = &pcf21xx_cfg[type];
+       }
++      if (variant->type == PCF2131) {
++              config.read_flag_mask = 0x0;
++              config.write_flag_mask = 0x0;
++      }
++
+       config.max_register = variant->max_register;
+       regmap = devm_regmap_init_spi(spi, &config);
index 1614d3d23f5f718c7d856b824bc281cd401290c0..d3e54130d6fb9fe4f67e08fd41b94c812da400e2 100644 (file)
@@ -95,3 +95,5 @@ usb-xhci-introduce-macro-for-ring-segment-list-iteration.patch
 usb-xhci-remove-option-to-change-a-default-ring-s-trb-cycle-bit.patch
 xhci-dbc-decouple-endpoint-allocation-from-initialization.patch
 xhci-dbc-fix-full-dbc-transfer-ring-after-several-reconnects.patch
+rtc-pcf2127-fix-spi-command-byte-for-pcf2131-backport.patch
+x86-sev-guard-sev_evict_cache-with-config_amd_mem_encrypt.patch
diff --git a/queue-6.12/x86-sev-guard-sev_evict_cache-with-config_amd_mem_encrypt.patch b/queue-6.12/x86-sev-guard-sev_evict_cache-with-config_amd_mem_encrypt.patch
new file mode 100644 (file)
index 0000000..c56724e
--- /dev/null
@@ -0,0 +1,95 @@
+From stable+bounces-180849-greg=kroah.com@vger.kernel.org Mon Sep 22 01:18:07 2025
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 21 Sep 2025 19:17:59 -0400
+Subject: x86/sev: Guard sev_evict_cache() with CONFIG_AMD_MEM_ENCRYPT
+To: stable@vger.kernel.org
+Cc: Tom Lendacky <thomas.lendacky@amd.com>, "Borislav Petkov (AMD)" <bp@alien8.de>, stable@kernel.org, Sasha Levin <sashal@kernel.org>
+Message-ID: <20250921231759.3033314-1-sashal@kernel.org>
+
+From: Tom Lendacky <thomas.lendacky@amd.com>
+
+[ Upstream commit 7f830e126dc357fc086905ce9730140fd4528d66 ]
+
+The sev_evict_cache() is guest-related code and should be guarded by
+CONFIG_AMD_MEM_ENCRYPT, not CONFIG_KVM_AMD_SEV.
+
+CONFIG_AMD_MEM_ENCRYPT=y is required for a guest to run properly as an SEV-SNP
+guest, but a guest kernel built with CONFIG_KVM_AMD_SEV=n would get the stub
+function of sev_evict_cache() instead of the version that performs the actual
+eviction. Move the function declarations under the appropriate #ifdef.
+
+Fixes: 7b306dfa326f ("x86/sev: Evict cache lines during SNP memory validation")
+Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
+Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
+Cc: stable@kernel.org # 6.16.x
+Link: https://lore.kernel.org/r/70e38f2c4a549063de54052c9f64929705313526.1757708959.git.thomas.lendacky@amd.com
+[ Move sev_evict_cache() out of shared.c ]
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ arch/x86/coco/sev/shared.c |   18 ------------------
+ arch/x86/include/asm/sev.h |   19 +++++++++++++++++++
+ 2 files changed, 19 insertions(+), 18 deletions(-)
+
+--- a/arch/x86/coco/sev/shared.c
++++ b/arch/x86/coco/sev/shared.c
+@@ -1243,24 +1243,6 @@ static void svsm_pval_terminate(struct s
+       __pval_terminate(pfn, action, page_size, ret, svsm_ret);
+ }
+-static inline void sev_evict_cache(void *va, int npages)
+-{
+-      volatile u8 val __always_unused;
+-      u8 *bytes = va;
+-      int page_idx;
+-
+-      /*
+-       * For SEV guests, a read from the first/last cache-lines of a 4K page
+-       * using the guest key is sufficient to cause a flush of all cache-lines
+-       * associated with that 4K page without incurring all the overhead of a
+-       * full CLFLUSH sequence.
+-       */
+-      for (page_idx = 0; page_idx < npages; page_idx++) {
+-              val = bytes[page_idx * PAGE_SIZE];
+-              val = bytes[page_idx * PAGE_SIZE + PAGE_SIZE - 1];
+-      }
+-}
+-
+ static void svsm_pval_4k_page(unsigned long paddr, bool validate)
+ {
+       struct svsm_pvalidate_call *pc;
+--- a/arch/x86/include/asm/sev.h
++++ b/arch/x86/include/asm/sev.h
+@@ -400,6 +400,24 @@ u64 sev_get_status(void);
+ void sev_show_status(void);
+ void snp_update_svsm_ca(void);
++static inline void sev_evict_cache(void *va, int npages)
++{
++      volatile u8 val __always_unused;
++      u8 *bytes = va;
++      int page_idx;
++
++      /*
++       * For SEV guests, a read from the first/last cache-lines of a 4K page
++       * using the guest key is sufficient to cause a flush of all cache-lines
++       * associated with that 4K page without incurring all the overhead of a
++       * full CLFLUSH sequence.
++       */
++      for (page_idx = 0; page_idx < npages; page_idx++) {
++              val = bytes[page_idx * PAGE_SIZE];
++              val = bytes[page_idx * PAGE_SIZE + PAGE_SIZE - 1];
++      }
++}
++
+ #else /* !CONFIG_AMD_MEM_ENCRYPT */
+ #define snp_vmpl 0
+@@ -435,6 +453,7 @@ static inline u64 snp_get_unsupported_fe
+ static inline u64 sev_get_status(void) { return 0; }
+ static inline void sev_show_status(void) { }
+ static inline void snp_update_svsm_ca(void) { }
++static inline void sev_evict_cache(void *va, int npages) {}
+ #endif        /* CONFIG_AMD_MEM_ENCRYPT */