From: Sasha Levin Date: Mon, 1 May 2023 11:25:59 +0000 (-0400) Subject: Fixes for 5.15 X-Git-Tag: v5.15.111~151 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=12f5c99f01f677fb0aa776fcdb4f0a161c16ed61;p=thirdparty%2Fkernel%2Fstable-queue.git Fixes for 5.15 Signed-off-by: Sasha Levin --- diff --git a/queue-5.15/asm-generic-io.h-suppress-endianness-warnings-for-re.patch b/queue-5.15/asm-generic-io.h-suppress-endianness-warnings-for-re.patch new file mode 100644 index 00000000000..ed95554be66 --- /dev/null +++ b/queue-5.15/asm-generic-io.h-suppress-endianness-warnings-for-re.patch @@ -0,0 +1,51 @@ +From 9f9a1dd036b41d72834131f7eca724aae90a205e Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 9 Jan 2023 15:11:52 +0200 +Subject: asm-generic/io.h: suppress endianness warnings for readq() and + writeq() + +From: Vladimir Oltean + +[ Upstream commit d564fa1ff19e893e2971d66e5c8f49dc1cdc8ffc ] + +Commit c1d55d50139b ("asm-generic/io.h: Fix sparse warnings on +big-endian architectures") missed fixing the 64-bit accessors. + +Arnd explains in the attached link why the casts are necessary, even if +__raw_readq() and __raw_writeq() do not take endian-specific types. + +Link: https://lore.kernel.org/lkml/9105d6fc-880b-4734-857d-e3d30b87ccf6@app.fastmail.com/ +Suggested-by: Arnd Bergmann +Signed-off-by: Vladimir Oltean +Reviewed-by: Jonathan Cameron +Signed-off-by: Arnd Bergmann +Signed-off-by: Sasha Levin +--- + include/asm-generic/io.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/asm-generic/io.h b/include/asm-generic/io.h +index 98954dda57344..82f2c01accbb9 100644 +--- a/include/asm-generic/io.h ++++ b/include/asm-generic/io.h +@@ -190,7 +190,7 @@ static inline u64 readq(const volatile void __iomem *addr) + u64 val; + + __io_br(); +- val = __le64_to_cpu(__raw_readq(addr)); ++ val = __le64_to_cpu((__le64 __force)__raw_readq(addr)); + __io_ar(val); + return val; + } +@@ -233,7 +233,7 @@ static inline void writel(u32 value, volatile void __iomem *addr) + static inline void writeq(u64 value, volatile void __iomem *addr) + { + __io_bw(); +- __raw_writeq(__cpu_to_le64(value), addr); ++ __raw_writeq((u64 __force)__cpu_to_le64(value), addr); + __io_aw(); + } + #endif +-- +2.39.2 + diff --git a/queue-5.15/asoc-intel-bytcr_rt5640-add-quirk-for-the-acer-iconi.patch b/queue-5.15/asoc-intel-bytcr_rt5640-add-quirk-for-the-acer-iconi.patch new file mode 100644 index 00000000000..fb833e79503 --- /dev/null +++ b/queue-5.15/asoc-intel-bytcr_rt5640-add-quirk-for-the-acer-iconi.patch @@ -0,0 +1,50 @@ +From 15f09463acdf3d0029d3499ca2ac4358cac9c2eb Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 22 Mar 2023 15:53:32 +0100 +Subject: ASoC: Intel: bytcr_rt5640: Add quirk for the Acer Iconia One 7 B1-750 + +From: Hans de Goede + +[ Upstream commit e38c5e80c3d293a883c6f1d553f2146ec0bda35e ] + +The Acer Iconia One 7 B1-750 tablet mostly works fine with the defaults +for an Bay Trail CR tablet. Except for the internal mic, instead of +an analog mic on IN3 a digital mic on DMIC1 is uses. + +Add a quirk with these settings for this tablet. + +Acked-by: Pierre-Louis Bossart +Signed-off-by: Hans de Goede +Link: https://lore.kernel.org/r/20230322145332.131525-1-hdegoede@redhat.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/intel/boards/bytcr_rt5640.c | 12 ++++++++++++ + 1 file changed, 12 insertions(+) + +diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c +index 5f6e2bb324406..4df1be8170bb6 100644 +--- a/sound/soc/intel/boards/bytcr_rt5640.c ++++ b/sound/soc/intel/boards/bytcr_rt5640.c +@@ -533,6 +533,18 @@ static int byt_rt5640_aif1_hw_params(struct snd_pcm_substream *substream, + + /* Please keep this list alphabetically sorted */ + static const struct dmi_system_id byt_rt5640_quirk_table[] = { ++ { /* Acer Iconia One 7 B1-750 */ ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Insyde"), ++ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "VESPA2"), ++ }, ++ .driver_data = (void *)(BYT_RT5640_DMIC1_MAP | ++ BYT_RT5640_JD_SRC_JD1_IN4P | ++ BYT_RT5640_OVCD_TH_1500UA | ++ BYT_RT5640_OVCD_SF_0P75 | ++ BYT_RT5640_SSP0_AIF1 | ++ BYT_RT5640_MCLK_EN), ++ }, + { /* Acer Iconia Tab 8 W1-810 */ + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Acer"), +-- +2.39.2 + diff --git a/queue-5.15/asoc-intel-sof_sdw-add-quirk-for-intel-rooks-county-.patch b/queue-5.15/asoc-intel-sof_sdw-add-quirk-for-intel-rooks-county-.patch new file mode 100644 index 00000000000..800d7de4cc2 --- /dev/null +++ b/queue-5.15/asoc-intel-sof_sdw-add-quirk-for-intel-rooks-county-.patch @@ -0,0 +1,52 @@ +From 1d8a8835b7a476dce608242b78cce9692b467a05 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 14 Mar 2023 17:05:52 +0800 +Subject: ASOC: Intel: sof_sdw: add quirk for Intel 'Rooks County' NUC M15 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Eugene Huang + +[ Upstream commit 3c728b1bc5b99c5275ac5c7788ef814c0e51ef54 ] + +Same quirks as the 'Bishop County' NUC M15, except the rt711 is in the +'JD2 100K' jack detection mode. + +Link: https://github.com/thesofproject/linux/issues/4088 +Signed-off-by: Eugene Huang +Reviewed-by: Pierre-Louis Bossart +Reviewed-by: Péter Ujfalusi +Signed-off-by: Bard Liao +Link: https://lore.kernel.org/r/20230314090553.498664-2-yung-chuan.liao@linux.intel.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/intel/boards/sof_sdw.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c +index 2d53a707aff9c..089b6c7994f9a 100644 +--- a/sound/soc/intel/boards/sof_sdw.c ++++ b/sound/soc/intel/boards/sof_sdw.c +@@ -212,6 +212,17 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = { + SOF_SDW_PCH_DMIC | + RT711_JD1), + }, ++ { ++ /* NUC15 'Rooks County' LAPRC510 and LAPRC710 skews */ ++ .callback = sof_sdw_quirk_cb, ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "Intel(R) Client Systems"), ++ DMI_MATCH(DMI_PRODUCT_NAME, "LAPRC"), ++ }, ++ .driver_data = (void *)(SOF_SDW_TGL_HDMI | ++ SOF_SDW_PCH_DMIC | ++ RT711_JD2_100K), ++ }, + /* TigerLake-SDCA devices */ + { + .callback = sof_sdw_quirk_cb, +-- +2.39.2 + diff --git a/queue-5.15/asoc-soc-pcm-fix-hw-formats-cleared-by-soc_pcm_hw_in.patch b/queue-5.15/asoc-soc-pcm-fix-hw-formats-cleared-by-soc_pcm_hw_in.patch new file mode 100644 index 00000000000..f8521ee1893 --- /dev/null +++ b/queue-5.15/asoc-soc-pcm-fix-hw-formats-cleared-by-soc_pcm_hw_in.patch @@ -0,0 +1,47 @@ +From f65fafc7966cea1a37f1809392b2dd907ff8ab25 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Thu, 9 Mar 2023 15:13:37 +0800 +Subject: ASoC: soc-pcm: fix hw->formats cleared by soc_pcm_hw_init() for dpcm + +From: Shengjiu Wang + +[ Upstream commit 083a25b18d6ad9f1f540e629909aa3eaaaf01823 ] + +The hw->formats may be set by snd_dmaengine_pcm_refine_runtime_hwparams() +in component's startup()/open(), but soc_pcm_hw_init() will init +hw->formats in dpcm_runtime_setup_fe() after component's startup()/open(), +which causes the valuable hw->formats to be cleared. + +So need to store the hw->formats before initialization, then restore +it after initialization. + +Signed-off-by: Shengjiu Wang +Link: https://lore.kernel.org/r/1678346017-3660-1-git-send-email-shengjiu.wang@nxp.com +Signed-off-by: Mark Brown +Signed-off-by: Sasha Levin +--- + sound/soc/soc-pcm.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c +index 3b673477f6215..6f616ac4490f0 100644 +--- a/sound/soc/soc-pcm.c ++++ b/sound/soc/soc-pcm.c +@@ -1554,10 +1554,14 @@ static void dpcm_runtime_setup_fe(struct snd_pcm_substream *substream) + struct snd_pcm_hardware *hw = &runtime->hw; + struct snd_soc_dai *dai; + int stream = substream->stream; ++ u64 formats = hw->formats; + int i; + + soc_pcm_hw_init(hw); + ++ if (formats) ++ hw->formats &= formats; ++ + for_each_rtd_cpu_dais(fe, i, dai) { + struct snd_soc_pcm_stream *cpu_stream; + +-- +2.39.2 + diff --git a/queue-5.15/iio-adc-palmas_gpadc-fix-null-dereference-on-rmmod.patch b/queue-5.15/iio-adc-palmas_gpadc-fix-null-dereference-on-rmmod.patch new file mode 100644 index 00000000000..f7335d09bf5 --- /dev/null +++ b/queue-5.15/iio-adc-palmas_gpadc-fix-null-dereference-on-rmmod.patch @@ -0,0 +1,39 @@ +From df6b50090ab9ea04ae05650efcffe41b8e6cb703 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 13 Mar 2023 21:50:29 +0100 +Subject: iio: adc: palmas_gpadc: fix NULL dereference on rmmod +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Patrik Dahlström + +[ Upstream commit 49f76c499d38bf67803438eee88c8300d0f6ce09 ] + +Calling dev_to_iio_dev() on a platform device pointer is undefined and +will make adc NULL. + +Signed-off-by: Patrik Dahlström +Link: https://lore.kernel.org/r/20230313205029.1881745-1-risca@dalakolonin.se +Signed-off-by: Jonathan Cameron +Signed-off-by: Sasha Levin +--- + drivers/iio/adc/palmas_gpadc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/iio/adc/palmas_gpadc.c b/drivers/iio/adc/palmas_gpadc.c +index f9c8385c72d3d..496aab94570a1 100644 +--- a/drivers/iio/adc/palmas_gpadc.c ++++ b/drivers/iio/adc/palmas_gpadc.c +@@ -638,7 +638,7 @@ static int palmas_gpadc_probe(struct platform_device *pdev) + + static int palmas_gpadc_remove(struct platform_device *pdev) + { +- struct iio_dev *indio_dev = dev_to_iio_dev(&pdev->dev); ++ struct iio_dev *indio_dev = dev_get_drvdata(&pdev->dev); + struct palmas_gpadc *adc = iio_priv(indio_dev); + + if (adc->wakeup1_enable || adc->wakeup2_enable) +-- +2.39.2 + diff --git a/queue-5.15/selftests-mount-fix-mount_setattr_test-builds-failed.patch b/queue-5.15/selftests-mount-fix-mount_setattr_test-builds-failed.patch new file mode 100644 index 00000000000..766151dd173 --- /dev/null +++ b/queue-5.15/selftests-mount-fix-mount_setattr_test-builds-failed.patch @@ -0,0 +1,43 @@ +From 293766e316d741750dad8b098c547d983e3d2ef6 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Fri, 24 Mar 2023 09:14:15 +0700 +Subject: selftests mount: Fix mount_setattr_test builds failed +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Anh Tuan Phan + +[ Upstream commit f1594bc676579133a3cd906d7d27733289edfb86 ] + +When compiling selftests with target mount_setattr I encountered some errors with the below messages: +mount_setattr_test.c: In function ‘mount_setattr_thread’: +mount_setattr_test.c:343:16: error: variable ‘attr’ has initializer but incomplete type + 343 | struct mount_attr attr = { + | ^~~~~~~~~~ + +These errors might be because of linux/mount.h is not included. This patch resolves that issue. + +Signed-off-by: Anh Tuan Phan +Acked-by: Christian Brauner +Signed-off-by: Shuah Khan +Signed-off-by: Sasha Levin +--- + tools/testing/selftests/mount_setattr/mount_setattr_test.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tools/testing/selftests/mount_setattr/mount_setattr_test.c b/tools/testing/selftests/mount_setattr/mount_setattr_test.c +index 8c5fea68ae677..969647228817b 100644 +--- a/tools/testing/selftests/mount_setattr/mount_setattr_test.c ++++ b/tools/testing/selftests/mount_setattr/mount_setattr_test.c +@@ -18,6 +18,7 @@ + #include + #include + #include ++#include + + #include "../kselftest_harness.h" + +-- +2.39.2 + diff --git a/queue-5.15/series b/queue-5.15/series new file mode 100644 index 00000000000..c51475458d7 --- /dev/null +++ b/queue-5.15/series @@ -0,0 +1,8 @@ +asoc-intel-sof_sdw-add-quirk-for-intel-rooks-county-.patch +asoc-soc-pcm-fix-hw-formats-cleared-by-soc_pcm_hw_in.patch +x86-hyperv-block-root-partition-functionality-in-a-c.patch +iio-adc-palmas_gpadc-fix-null-dereference-on-rmmod.patch +asoc-intel-bytcr_rt5640-add-quirk-for-the-acer-iconi.patch +selftests-mount-fix-mount_setattr_test-builds-failed.patch +asm-generic-io.h-suppress-endianness-warnings-for-re.patch +x86-cpu-add-model-number-for-intel-arrow-lake-proces.patch diff --git a/queue-5.15/x86-cpu-add-model-number-for-intel-arrow-lake-proces.patch b/queue-5.15/x86-cpu-add-model-number-for-intel-arrow-lake-proces.patch new file mode 100644 index 00000000000..bcbe3dff229 --- /dev/null +++ b/queue-5.15/x86-cpu-add-model-number-for-intel-arrow-lake-proces.patch @@ -0,0 +1,35 @@ +From f765299920c6f436dfb10f043ba10f90aaddd47d Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 4 Apr 2023 10:46:41 -0700 +Subject: x86/cpu: Add model number for Intel Arrow Lake processor + +From: Tony Luck + +[ Upstream commit 81515ecf155a38f3532bf5ddef88d651898df6be ] + +Successor to Lunar Lake. + +Signed-off-by: Tony Luck +Signed-off-by: Borislav Petkov (AMD) +Link: https://lore.kernel.org/r/20230404174641.426593-1-tony.luck@intel.com +Signed-off-by: Sasha Levin +--- + arch/x86/include/asm/intel-family.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/x86/include/asm/intel-family.h b/arch/x86/include/asm/intel-family.h +index b8e7ea9e71e20..fc12d970a07c0 100644 +--- a/arch/x86/include/asm/intel-family.h ++++ b/arch/x86/include/asm/intel-family.h +@@ -115,6 +115,8 @@ + + #define INTEL_FAM6_LUNARLAKE_M 0xBD + ++#define INTEL_FAM6_ARROWLAKE 0xC6 ++ + /* "Small Core" Processors (Atom/E-Core) */ + + #define INTEL_FAM6_ATOM_BONNELL 0x1C /* Diamondville, Pineview */ +-- +2.39.2 + diff --git a/queue-5.15/x86-hyperv-block-root-partition-functionality-in-a-c.patch b/queue-5.15/x86-hyperv-block-root-partition-functionality-in-a-c.patch new file mode 100644 index 00000000000..cbe89f98c96 --- /dev/null +++ b/queue-5.15/x86-hyperv-block-root-partition-functionality-in-a-c.patch @@ -0,0 +1,52 @@ +From 346bc4bbfbfd24ba59e944c8cc648925b5e538fa Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Wed, 15 Mar 2023 08:34:13 -0700 +Subject: x86/hyperv: Block root partition functionality in a Confidential VM + +From: Michael Kelley + +[ Upstream commit f8acb24aaf89fc46cd953229462ea8abe31b395f ] + +Hyper-V should never specify a VM that is a Confidential VM and also +running in the root partition. Nonetheless, explicitly block such a +combination to guard against a compromised Hyper-V maliciously trying to +exploit root partition functionality in a Confidential VM to expose +Confidential VM secrets. No known bug is being fixed, but the attack +surface for Confidential VMs on Hyper-V is reduced. + +Signed-off-by: Michael Kelley +Link: https://lore.kernel.org/r/1678894453-95392-1-git-send-email-mikelley@microsoft.com +Signed-off-by: Wei Liu +Signed-off-by: Sasha Levin +--- + arch/x86/kernel/cpu/mshyperv.c | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c +index ba0efc30fac52..8d3c649a1769b 100644 +--- a/arch/x86/kernel/cpu/mshyperv.c ++++ b/arch/x86/kernel/cpu/mshyperv.c +@@ -289,12 +289,16 @@ static void __init ms_hyperv_init_platform(void) + * To mirror what Windows does we should extract CPU management + * features and use the ReservedIdentityBit to detect if Linux is the + * root partition. But that requires negotiating CPU management +- * interface (a process to be finalized). ++ * interface (a process to be finalized). For now, use the privilege ++ * flag as the indicator for running as root. + * +- * For now, use the privilege flag as the indicator for running as +- * root. ++ * Hyper-V should never specify running as root and as a Confidential ++ * VM. But to protect against a compromised/malicious Hyper-V trying ++ * to exploit root behavior to expose Confidential VM memory, ignore ++ * the root partition setting if also a Confidential VM. + */ +- if (cpuid_ebx(HYPERV_CPUID_FEATURES) & HV_CPU_MANAGEMENT) { ++ if ((ms_hyperv.priv_high & HV_CPU_MANAGEMENT) && ++ !(ms_hyperv.priv_high & HV_ISOLATION)) { + hv_root_partition = true; + pr_info("Hyper-V: running as root partition\n"); + } +-- +2.39.2 +