From 0287437b6a2009c9e93c585e56e7d58604ec7f32 Mon Sep 17 00:00:00 2001 From: Kernel Build Daemon Date: Jan 14 2023 06:35:15 +0000 Subject: Merge branch 'SLE15-SP4' into SLE15-SP4-AZURE --- diff --git a/patches.suse/ACPI-resource-Skip-IRQ-override-on-Asus-Vivobook-K34.patch b/patches.suse/ACPI-resource-Skip-IRQ-override-on-Asus-Vivobook-K34.patch new file mode 100644 index 0000000..ba9575c --- /dev/null +++ b/patches.suse/ACPI-resource-Skip-IRQ-override-on-Asus-Vivobook-K34.patch @@ -0,0 +1,67 @@ +From e12dee3736731e24b1e7367f87d66ac0fcd73ce7 Mon Sep 17 00:00:00 2001 +From: Tamim Khan +Date: Sun, 28 Aug 2022 23:04:19 -0400 +Subject: [PATCH] ACPI: resource: Skip IRQ override on Asus Vivobook K3402ZA/K3502ZA +Git-commit: e12dee3736731e24b1e7367f87d66ac0fcd73ce7 +Patch-mainline: v6.1-rc1 +References: git-fixes + +In the ACPI DSDT table for Asus VivoBook K3402ZA/K3502ZA +IRQ 1 is described as ActiveLow; however, the kernel overrides +it to Edge_High. This prevents the internal keyboard from working +on these laptops. In order to fix this add these laptops to the +skip_override_table so that the kernel does not override IRQ 1 to +Edge_High. + +Link: https://bugzilla.kernel.org/show_bug.cgi?id=216158 +Reviewed-by: Hui Wang +Tested-by: Tamim Khan +Tested-by: Sunand +Signed-off-by: Tamim Khan +Signed-off-by: Rafael J. Wysocki +Acked-by: Takashi Iwai + +--- + drivers/acpi/resource.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/drivers/acpi/resource.c b/drivers/acpi/resource.c +index 8032d50ca944..e40b2153911d 100644 +--- a/drivers/acpi/resource.c ++++ b/drivers/acpi/resource.c +@@ -399,6 +399,24 @@ static const struct dmi_system_id medion_laptop[] = { + { } + }; + ++static const struct dmi_system_id asus_laptop[] = { ++ { ++ .ident = "Asus Vivobook K3402ZA", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), ++ DMI_MATCH(DMI_BOARD_NAME, "K3402ZA"), ++ }, ++ }, ++ { ++ .ident = "Asus Vivobook K3502ZA", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), ++ DMI_MATCH(DMI_BOARD_NAME, "K3502ZA"), ++ }, ++ }, ++ { } ++}; ++ + struct irq_override_cmp { + const struct dmi_system_id *system; + unsigned char irq; +@@ -409,6 +427,7 @@ struct irq_override_cmp { + + static const struct irq_override_cmp skip_override_table[] = { + { medion_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0 }, ++ { asus_laptop, 1, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW, 0 }, + }; + + static bool acpi_dev_irq_override(u32 gsi, u8 triggering, u8 polarity, +-- +2.35.3 + diff --git a/patches.suse/ALSA-hda-realtek-Apply-dual-codec-fixup-for-Dell-Lat.patch b/patches.suse/ALSA-hda-realtek-Apply-dual-codec-fixup-for-Dell-Lat.patch new file mode 100644 index 0000000..b97a323 --- /dev/null +++ b/patches.suse/ALSA-hda-realtek-Apply-dual-codec-fixup-for-Dell-Lat.patch @@ -0,0 +1,68 @@ +From a4517c4f3423c7c448f2c359218f97c1173523a1 Mon Sep 17 00:00:00 2001 +From: Chris Chiu +Date: Mon, 26 Dec 2022 19:43:03 +0800 +Subject: [PATCH] ALSA: hda/realtek: Apply dual codec fixup for Dell Latitude laptops +Git-commit: a4517c4f3423c7c448f2c359218f97c1173523a1 +Patch-mainline: v6.2-rc2 +References: git-fixes + +The Dell Latiture 3340/3440/3540 laptops with Realtek ALC3204 have +dual codecs and need the ALC1220_FIXUP_GB_DUAL_CODECS to fix the +conflicts of Master controls. The existing headset mic fixup for +Dell is also required to enable the jack sense and the headset mic. + +Introduce a new fixup to fix the dual codec and headset mic issues +for particular Dell laptops since other old Dell laptops with the +same codec configuration are already well handled by the fixup in +alc269_fallback_pin_fixup_tbl[]. + +Signed-off-by: Chris Chiu +Cc: +Link: https://lore.kernel.org/r/20221226114303.4027500-1-chris.chiu@canonical.com +Signed-off-by: Takashi Iwai + +--- + sound/pci/hda/patch_realtek.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index e443d88f627f..3794b522c222 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -7175,6 +7175,7 @@ enum { + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK, + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, + ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS, ++ ALC236_FIXUP_DELL_DUAL_CODECS, + }; + + /* A special fixup for Lenovo C940 and Yoga Duet 7; +@@ -9130,6 +9131,12 @@ static const struct hda_fixup alc269_fixups[] = { + .chained = true, + .chain_id = ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, + }, ++ [ALC236_FIXUP_DELL_DUAL_CODECS] = { ++ .type = HDA_FIXUP_PINS, ++ .v.func = alc1220_fixup_gb_dual_codecs, ++ .chained = true, ++ .chain_id = ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, ++ }, + }; + + static const struct snd_pci_quirk alc269_fixup_tbl[] = { +@@ -9232,6 +9239,12 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { + SND_PCI_QUIRK(0x1028, 0x0b1a, "Dell Precision 5570", ALC289_FIXUP_DUAL_SPK), + SND_PCI_QUIRK(0x1028, 0x0b37, "Dell Inspiron 16 Plus 7620 2-in-1", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), + SND_PCI_QUIRK(0x1028, 0x0b71, "Dell Inspiron 16 Plus 7620", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), ++ SND_PCI_QUIRK(0x1028, 0x0c19, "Dell Precision 3340", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1a, "Dell Precision 3340", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1b, "Dell Precision 3440", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1c, "Dell Precision 3540", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1d, "Dell Precision 3440", ALC236_FIXUP_DELL_DUAL_CODECS), ++ SND_PCI_QUIRK(0x1028, 0x0c1e, "Dell Precision 3540", ALC236_FIXUP_DELL_DUAL_CODECS), + SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), +-- +2.35.3 + diff --git a/patches.suse/ALSA-line6-correct-midi-status-byte-when-receiving-d.patch b/patches.suse/ALSA-line6-correct-midi-status-byte-when-receiving-d.patch new file mode 100644 index 0000000..50c95a7 --- /dev/null +++ b/patches.suse/ALSA-line6-correct-midi-status-byte-when-receiving-d.patch @@ -0,0 +1,157 @@ +From 8508fa2e7472f673edbeedf1b1d2b7a6bb898ecc Mon Sep 17 00:00:00 2001 +From: Artem Egorkine +Date: Sun, 25 Dec 2022 12:57:27 +0200 +Subject: [PATCH] ALSA: line6: correct midi status byte when receiving data from podxt +Git-commit: 8508fa2e7472f673edbeedf1b1d2b7a6bb898ecc +Patch-mainline: v6.2-rc2 +References: git-fixes + +A PODxt device sends 0xb2, 0xc2 or 0xf2 as a status byte for MIDI +messages over USB that should otherwise have a 0xb0, 0xc0 or 0xf0 +status byte. This is usually corrected by the driver on other OSes. + +This fixes MIDI sysex messages sent by PODxt. + +[ tiwai: fixed white spaces ] + +Signed-off-by: Artem Egorkine +Cc: +Link: https://lore.kernel.org/r/20221225105728.1153989-1-arteme@gmail.com +Signed-off-by: Takashi Iwai + +--- + sound/usb/line6/driver.c | 3 ++- + sound/usb/line6/midi.c | 3 ++- + sound/usb/line6/midibuf.c | 25 +++++++++++++++++-------- + sound/usb/line6/midibuf.h | 5 ++++- + sound/usb/line6/pod.c | 3 ++- + 5 files changed, 27 insertions(+), 12 deletions(-) + +diff --git a/sound/usb/line6/driver.c b/sound/usb/line6/driver.c +index 59faa5a9a714..b67617b68e50 100644 +--- a/sound/usb/line6/driver.c ++++ b/sound/usb/line6/driver.c +@@ -304,7 +304,8 @@ static void line6_data_received(struct urb *urb) + for (;;) { + done = + line6_midibuf_read(mb, line6->buffer_message, +- LINE6_MIDI_MESSAGE_MAXLEN); ++ LINE6_MIDI_MESSAGE_MAXLEN, ++ LINE6_MIDIBUF_READ_RX); + + if (done <= 0) + break; +diff --git a/sound/usb/line6/midi.c b/sound/usb/line6/midi.c +index ba0e2b7e8fe1..d52355de2bbc 100644 +--- a/sound/usb/line6/midi.c ++++ b/sound/usb/line6/midi.c +@@ -56,7 +56,8 @@ static void line6_midi_transmit(struct snd_rawmidi_substream *substream) + + for (;;) { + done = line6_midibuf_read(mb, chunk, +- LINE6_FALLBACK_MAXPACKETSIZE); ++ LINE6_FALLBACK_MAXPACKETSIZE, ++ LINE6_MIDIBUF_READ_TX); + + if (done == 0) + break; +diff --git a/sound/usb/line6/midibuf.c b/sound/usb/line6/midibuf.c +index 6a70463f82c4..e7f830f7526c 100644 +--- a/sound/usb/line6/midibuf.c ++++ b/sound/usb/line6/midibuf.c +@@ -9,6 +9,7 @@ + + #include "midibuf.h" + ++ + static int midibuf_message_length(unsigned char code) + { + int message_length; +@@ -20,12 +21,7 @@ static int midibuf_message_length(unsigned char code) + + message_length = length[(code >> 4) - 8]; + } else { +- /* +- Note that according to the MIDI specification 0xf2 is +- the "Song Position Pointer", but this is used by Line 6 +- to send sysex messages to the host. +- */ +- static const int length[] = { -1, 2, -1, 2, -1, -1, 1, 1, 1, 1, ++ static const int length[] = { -1, 2, 2, 2, -1, -1, 1, 1, 1, -1, + 1, 1, 1, -1, 1, 1 + }; + message_length = length[code & 0x0f]; +@@ -125,7 +121,7 @@ int line6_midibuf_write(struct midi_buffer *this, unsigned char *data, + } + + int line6_midibuf_read(struct midi_buffer *this, unsigned char *data, +- int length) ++ int length, int read_type) + { + int bytes_used; + int length1, length2; +@@ -148,9 +144,22 @@ int line6_midibuf_read(struct midi_buffer *this, unsigned char *data, + + length1 = this->size - this->pos_read; + +- /* check MIDI command length */ + command = this->buf[this->pos_read]; ++ /* ++ PODxt always has status byte lower nibble set to 0010, ++ when it means to send 0000, so we correct if here so ++ that control/program changes come on channel 1 and ++ sysex message status byte is correct ++ */ ++ if (read_type == LINE6_MIDIBUF_READ_RX) { ++ if (command == 0xb2 || command == 0xc2 || command == 0xf2) { ++ unsigned char fixed = command & 0xf0; ++ this->buf[this->pos_read] = fixed; ++ command = fixed; ++ } ++ } + ++ /* check MIDI command length */ + if (command & 0x80) { + midi_length = midibuf_message_length(command); + this->command_prev = command; +diff --git a/sound/usb/line6/midibuf.h b/sound/usb/line6/midibuf.h +index 124a8f9f7e96..542e8d836f87 100644 +--- a/sound/usb/line6/midibuf.h ++++ b/sound/usb/line6/midibuf.h +@@ -8,6 +8,9 @@ + #ifndef MIDIBUF_H + #define MIDIBUF_H + ++#define LINE6_MIDIBUF_READ_TX 0 ++#define LINE6_MIDIBUF_READ_RX 1 ++ + struct midi_buffer { + unsigned char *buf; + int size; +@@ -23,7 +26,7 @@ extern void line6_midibuf_destroy(struct midi_buffer *mb); + extern int line6_midibuf_ignore(struct midi_buffer *mb, int length); + extern int line6_midibuf_init(struct midi_buffer *mb, int size, int split); + extern int line6_midibuf_read(struct midi_buffer *mb, unsigned char *data, +- int length); ++ int length, int read_type); + extern void line6_midibuf_reset(struct midi_buffer *mb); + extern int line6_midibuf_write(struct midi_buffer *mb, unsigned char *data, + int length); +diff --git a/sound/usb/line6/pod.c b/sound/usb/line6/pod.c +index cd41aa7f0385..d173971e5f02 100644 +--- a/sound/usb/line6/pod.c ++++ b/sound/usb/line6/pod.c +@@ -159,8 +159,9 @@ static struct line6_pcm_properties pod_pcm_properties = { + .bytes_per_channel = 3 /* SNDRV_PCM_FMTBIT_S24_3LE */ + }; + ++ + static const char pod_version_header[] = { +- 0xf2, 0x7e, 0x7f, 0x06, 0x02 ++ 0xf0, 0x7e, 0x7f, 0x06, 0x02 + }; + + static char *pod_alloc_sysex_buffer(struct usb_line6_pod *pod, int code, +-- +2.35.3 + diff --git a/patches.suse/ALSA-line6-fix-stack-overflow-in-line6_midi_transmit.patch b/patches.suse/ALSA-line6-fix-stack-overflow-in-line6_midi_transmit.patch new file mode 100644 index 0000000..218d541 --- /dev/null +++ b/patches.suse/ALSA-line6-fix-stack-overflow-in-line6_midi_transmit.patch @@ -0,0 +1,38 @@ +From b8800d324abb50160560c636bfafe2c81001b66c Mon Sep 17 00:00:00 2001 +From: Artem Egorkine +Date: Sun, 25 Dec 2022 12:57:28 +0200 +Subject: [PATCH] ALSA: line6: fix stack overflow in line6_midi_transmit +Git-commit: b8800d324abb50160560c636bfafe2c81001b66c +Patch-mainline: v6.2-rc2 +References: git-fixes + +Correctly calculate available space including the size of the chunk +buffer. This fixes a buffer overflow when multiple MIDI sysex +messages are sent to a PODxt device. + +Signed-off-by: Artem Egorkine +Cc: +Link: https://lore.kernel.org/r/20221225105728.1153989-2-arteme@gmail.com +Signed-off-by: Takashi Iwai + +--- + sound/usb/line6/midi.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/sound/usb/line6/midi.c b/sound/usb/line6/midi.c +index d52355de2bbc..0838632c788e 100644 +--- a/sound/usb/line6/midi.c ++++ b/sound/usb/line6/midi.c +@@ -44,7 +44,8 @@ static void line6_midi_transmit(struct snd_rawmidi_substream *substream) + int req, done; + + for (;;) { +- req = min(line6_midibuf_bytes_free(mb), line6->max_packet_size); ++ req = min3(line6_midibuf_bytes_free(mb), line6->max_packet_size, ++ LINE6_FALLBACK_MAXPACKETSIZE); + done = snd_rawmidi_transmit_peek(substream, chunk, req); + + if (done == 0) +-- +2.35.3 + diff --git a/patches.suse/ALSA-patch_realtek-Fix-Dell-Inspiron-Plus-16.patch b/patches.suse/ALSA-patch_realtek-Fix-Dell-Inspiron-Plus-16.patch new file mode 100644 index 0000000..bc537c5 --- /dev/null +++ b/patches.suse/ALSA-patch_realtek-Fix-Dell-Inspiron-Plus-16.patch @@ -0,0 +1,92 @@ +From 2912cdda734d9136615ed05636d9fcbca2a7a3c5 Mon Sep 17 00:00:00 2001 +From: Philipp Jungkamp +Date: Mon, 5 Dec 2022 17:37:13 +0100 +Subject: [PATCH] ALSA: patch_realtek: Fix Dell Inspiron Plus 16 +Git-commit: 2912cdda734d9136615ed05636d9fcbca2a7a3c5 +Patch-mainline: v6.2-rc1 +References: git-fixes + +The Dell Inspiron Plus 16, in both laptop and 2in1 form factor, has top +speakers connected on NID 0x17, which the codec reports as unconnected. +These speakers should be connected to the DAC on NID 0x03. + +Signed-off-by: Philipp Jungkamp +Link: https://lore.kernel.org/r/20221205163713.7476-1-p.jungkamp@gmx.net +Signed-off-by: Takashi Iwai + +--- + sound/pci/hda/patch_realtek.c | 37 +++++++++++++++++++++++++++++++++++ + 1 file changed, 37 insertions(+) + +diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c +index cf7c825078dc..5f51f8fc7fdc 100644 +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -6903,6 +6903,34 @@ static void alc287_fixup_yoga9_14iap7_bass_spk_pin(struct hda_codec *codec, + } + } + ++static void alc295_fixup_dell_inspiron_top_speakers(struct hda_codec *codec, ++ const struct hda_fixup *fix, int action) ++{ ++ static const struct hda_pintbl pincfgs[] = { ++ { 0x14, 0x90170151 }, ++ { 0x17, 0x90170150 }, ++ { } ++ }; ++ static const hda_nid_t conn[] = { 0x02, 0x03 }; ++ static const hda_nid_t preferred_pairs[] = { ++ 0x14, 0x02, ++ 0x17, 0x03, ++ 0x21, 0x02, ++ 0 ++ }; ++ struct alc_spec *spec = codec->spec; ++ ++ alc_fixup_no_shutup(codec, fix, action); ++ ++ switch (action) { ++ case HDA_FIXUP_ACT_PRE_PROBE: ++ snd_hda_apply_pincfgs(codec, pincfgs); ++ snd_hda_override_conn_list(codec, 0x17, ARRAY_SIZE(conn), conn); ++ spec->gen.preferred_dacs = preferred_pairs; ++ break; ++ } ++} ++ + enum { + ALC269_FIXUP_GPIO2, + ALC269_FIXUP_SONY_VAIO, +@@ -7146,6 +7174,7 @@ enum { + ALC287_FIXUP_LEGION_16ITHG6, + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK, + ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK_PIN, ++ ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS, + }; + + /* A special fixup for Lenovo C940 and Yoga Duet 7; +@@ -9095,6 +9124,12 @@ static const struct hda_fixup alc269_fixups[] = { + .chained = true, + .chain_id = ALC287_FIXUP_YOGA9_14IAP7_BASS_SPK, + }, ++ [ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS] = { ++ .type = HDA_FIXUP_FUNC, ++ .v.func = alc295_fixup_dell_inspiron_top_speakers, ++ .chained = true, ++ .chain_id = ALC269_FIXUP_DELL4_MIC_NO_PRESENCE, ++ }, + }; + + static const struct snd_pci_quirk alc269_fixup_tbl[] = { +@@ -9195,6 +9230,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { + SND_PCI_QUIRK(0x1028, 0x0a9e, "Dell Latitude 5430", ALC269_FIXUP_DELL4_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0b19, "Dell XPS 15 9520", ALC289_FIXUP_DUAL_SPK), + SND_PCI_QUIRK(0x1028, 0x0b1a, "Dell Precision 5570", ALC289_FIXUP_DUAL_SPK), ++ SND_PCI_QUIRK(0x1028, 0x0b37, "Dell Inspiron 16 Plus 7620 2-in-1", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), ++ SND_PCI_QUIRK(0x1028, 0x0b71, "Dell Inspiron 16 Plus 7620", ALC295_FIXUP_DELL_INSPIRON_TOP_SPEAKERS), + SND_PCI_QUIRK(0x1028, 0x164a, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x164b, "Dell", ALC293_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), +-- +2.35.3 + diff --git a/patches.suse/ARM-9256-1-NWFPE-avoid-compiler-generated-__aeabi_ul.patch b/patches.suse/ARM-9256-1-NWFPE-avoid-compiler-generated-__aeabi_ul.patch new file mode 100644 index 0000000..7718a09 --- /dev/null +++ b/patches.suse/ARM-9256-1-NWFPE-avoid-compiler-generated-__aeabi_ul.patch @@ -0,0 +1,65 @@ +From 3220022038b9a3845eea762af85f1c5694b9f861 Mon Sep 17 00:00:00 2001 +From: Nick Desaulniers +Date: Tue, 11 Oct 2022 20:00:12 +0100 +Subject: [PATCH] ARM: 9256/1: NWFPE: avoid compiler-generated __aeabi_uldivmod +Git-commit: 3220022038b9a3845eea762af85f1c5694b9f861 +Patch-mainline: v6.2-rc1 +References: git-fixes + +clang-15's ability to elide loops completely became more aggressive when +it can deduce how a variable is being updated in a loop. Counting down +one variable by an increment of another can be replaced by a modulo +operation. + +For 64b variables on 32b ARM EABI targets, this can result in the +compiler generating calls to __aeabi_uldivmod, which it does for a do +while loop in float64_rem(). + +For the kernel, we'd generally prefer that developers not open code 64b +division via binary / operators and instead use the more explicit +helpers from div64.h. On arm-linux-gnuabi targets, failure to do so can +result in linkage failures due to undefined references to +__aeabi_uldivmod(). + +While developers can avoid open coding divisions on 64b variables, the +compiler doesn't know that the Linux kernel has a partial implementation +of a compiler runtime (--rtlib) to enforce this convention. + +It's also undecidable for the compiler whether the code in question +would be faster to execute the loop vs elide it and do the 64b division. + +While I actively avoid using the internal -mllvm command line flags, I +think we get better code than using barrier() here, which will force +reloads+spills in the loop for all toolchains. + +Link: https://github.com/ClangBuiltLinux/linux/issues/1666 + +Reported-by: Nathan Chancellor +Reviewed-by: Arnd Bergmann +Signed-off-by: Nick Desaulniers +Tested-by: Nathan Chancellor +Cc: stable@vger.kernel.org +Signed-off-by: Russell King (Oracle) +Acked-by: Takashi Iwai + +--- + arch/arm/nwfpe/Makefile | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/arch/arm/nwfpe/Makefile b/arch/arm/nwfpe/Makefile +index 303400fa2cdf..2aec85ab1e8b 100644 +--- a/arch/arm/nwfpe/Makefile ++++ b/arch/arm/nwfpe/Makefile +@@ -11,3 +11,9 @@ nwfpe-y += fpa11.o fpa11_cpdo.o fpa11_cpdt.o \ + entry.o + + nwfpe-$(CONFIG_FPE_NWFPE_XP) += extended_cpdo.o ++ ++# Try really hard to avoid generating calls to __aeabi_uldivmod() from ++# float64_rem() due to loop elision. ++ifdef CONFIG_CC_IS_CLANG ++CFLAGS_softfloat.o += -mllvm -replexitval=never ++endif +-- +2.35.3 + diff --git a/patches.suse/ASoC-Intel-bytcr_rt5640-Add-quirk-for-the-Advantech-.patch b/patches.suse/ASoC-Intel-bytcr_rt5640-Add-quirk-for-the-Advantech-.patch new file mode 100644 index 0000000..29f907b --- /dev/null +++ b/patches.suse/ASoC-Intel-bytcr_rt5640-Add-quirk-for-the-Advantech-.patch @@ -0,0 +1,58 @@ +From a1dec9d70b6ad97087b60b81d2492134a84208c6 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 13 Dec 2022 13:32:46 +0100 +Subject: [PATCH] ASoC: Intel: bytcr_rt5640: Add quirk for the Advantech MICA-071 tablet +Git-commit: a1dec9d70b6ad97087b60b81d2492134a84208c6 +Patch-mainline: v6.2-rc1 +References: git-fixes + +The Advantech MICA-071 tablet deviates from the defaults for +a non CR Bay Trail based tablet in several ways: + +1. It uses an analog MIC on IN3 rather then using DMIC1 +2. It only has 1 speaker +3. It needs the OVCD current threshold to be set to 1500uA instead of + the default 2000uA to reliable differentiate between headphones vs + headsets + +Add a quirk with these settings for this tablet. + +Signed-off-by: Hans de Goede +Acked-by: Pierre-Louis Bossart +Link: https://lore.kernel.org/r/20221213123246.11226-1-hdegoede@redhat.com +Signed-off-by: Mark Brown +Acked-by: Takashi Iwai + +--- + sound/soc/intel/boards/bytcr_rt5640.c | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c +index 6db07b2417ca..44e6a0f1e2d9 100644 +--- a/sound/soc/intel/boards/bytcr_rt5640.c ++++ b/sound/soc/intel/boards/bytcr_rt5640.c +@@ -570,6 +570,21 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = { + BYT_RT5640_SSP0_AIF1 | + BYT_RT5640_MCLK_EN), + }, ++ { ++ /* Advantech MICA-071 */ ++ .matches = { ++ DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Advantech"), ++ DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "MICA-071"), ++ }, ++ /* OVCD Th = 1500uA to reliable detect head-phones vs -set */ ++ .driver_data = (void *)(BYT_RT5640_IN3_MAP | ++ BYT_RT5640_JD_SRC_JD2_IN4N | ++ BYT_RT5640_OVCD_TH_1500UA | ++ BYT_RT5640_OVCD_SF_0P75 | ++ BYT_RT5640_MONO_SPEAKER | ++ BYT_RT5640_DIFF_MIC | ++ BYT_RT5640_MCLK_EN), ++ }, + { + .matches = { + DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ARCHOS"), +-- +2.35.3 + diff --git a/patches.suse/HID-multitouch-fix-Asus-ExpertBook-P2-P2451FA-trackp.patch b/patches.suse/HID-multitouch-fix-Asus-ExpertBook-P2-P2451FA-trackp.patch new file mode 100644 index 0000000..bbfe960 --- /dev/null +++ b/patches.suse/HID-multitouch-fix-Asus-ExpertBook-P2-P2451FA-trackp.patch @@ -0,0 +1,53 @@ +From 4eab1c2fe06c98a4dff258dd64800b6986c101e9 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= +Date: Mon, 28 Nov 2022 17:57:05 +0100 +Subject: [PATCH] HID: multitouch: fix Asus ExpertBook P2 P2451FA trackpoint +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: 4eab1c2fe06c98a4dff258dd64800b6986c101e9 +Patch-mainline: v6.2-rc1 +References: git-fixes + +The HID descriptor of this device contains two mouse collections, one +for mouse emulation and the other for the trackpoint. + +Both collections get merged and, because the first one defines X and Y, +the movemenent events reported by the trackpoint collection are +ignored. + +Set the MT_CLS_WIN_8_FORCE_MULTI_INPUT class for this device to be able +to receive its reports. + +This fix is similar to/based on commit 40d5bb87377a ("HID: multitouch: +enable multi-input as a quirk for some devices"). + +Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/825 +Reported-by: Akito +Tested-by: Akito +Signed-off-by: José Expósito +Signed-off-by: Jiri Kosina +Acked-by: Takashi Iwai + +--- + drivers/hid/hid-multitouch.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c +index 91a4d3fc30e0..372cbdd223e0 100644 +--- a/drivers/hid/hid-multitouch.c ++++ b/drivers/hid/hid-multitouch.c +@@ -1967,6 +1967,10 @@ static const struct hid_device_id mt_devices[] = { + HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, + USB_VENDOR_ID_ELAN, 0x313a) }, + ++ { .driver_data = MT_CLS_WIN_8_FORCE_MULTI_INPUT, ++ HID_DEVICE(BUS_I2C, HID_GROUP_MULTITOUCH_WIN_8, ++ USB_VENDOR_ID_ELAN, 0x3148) }, ++ + /* Elitegroup panel */ + { .driver_data = MT_CLS_SERIAL, + MT_USB_DEVICE(USB_VENDOR_ID_ELITEGROUP, +-- +2.35.3 + diff --git a/patches.suse/HID-plantronics-Additional-PIDs-for-double-volume-ke.patch b/patches.suse/HID-plantronics-Additional-PIDs-for-double-volume-ke.patch new file mode 100644 index 0000000..3cc75e0 --- /dev/null +++ b/patches.suse/HID-plantronics-Additional-PIDs-for-double-volume-ke.patch @@ -0,0 +1,81 @@ +From 3d57f36c89d8ba32b2c312f397a37fd1a2dc7cfc Mon Sep 17 00:00:00 2001 +From: Terry Junge +Date: Thu, 8 Dec 2022 15:05:06 -0800 +Subject: [PATCH] HID: plantronics: Additional PIDs for double volume key presses quirk +Git-commit: 3d57f36c89d8ba32b2c312f397a37fd1a2dc7cfc +Patch-mainline: v6.2-rc1 +References: git-fixes + +I no longer work for Plantronics (aka Poly, aka HP) and do not have +access to the headsets in order to test. However, as noted by Maxim, +the other 32xx models that share the same base code set as the 3220 +would need the same quirk. This patch adds the PIDs for the rest of +the Blackwire 32XX product family that require the quirk. + +Plantronics Blackwire 3210 Series (047f:c055) +Plantronics Blackwire 3215 Series (047f:c057) +Plantronics Blackwire 3225 Series (047f:c058) + +Quote from previous patch by Maxim Mikityanskiy +Plantronics Blackwire 3220 Series (047f:c056) sends HID reports twice +for each volume key press. This patch adds a quirk to hid-plantronics +for this product ID, which will ignore the second volume key press if +it happens within 5 ms from the last one that was handled. + +The patch was tested on the mentioned model only, it shouldn't affect +other models, however, this quirk might be needed for them too. +Auto-repeat (when a key is held pressed) is not affected, because the +rate is about 3 times per second, which is far less frequent than once +in 5 ms. +End quote + +Signed-off-by: Terry Junge +Signed-off-by: Jiri Kosina +Acked-by: Takashi Iwai + +--- + drivers/hid/hid-ids.h | 3 +++ + drivers/hid/hid-plantronics.c | 9 +++++++++ + 2 files changed, 12 insertions(+) + +diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h +index f103177a1355..82713ef3aaa6 100644 +--- a/drivers/hid/hid-ids.h ++++ b/drivers/hid/hid-ids.h +@@ -996,7 +996,10 @@ + #define USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S 0x8003 + + #define USB_VENDOR_ID_PLANTRONICS 0x047f ++#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3210_SERIES 0xc055 + #define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3220_SERIES 0xc056 ++#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3215_SERIES 0xc057 ++#define USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES 0xc058 + + #define USB_VENDOR_ID_PANASONIC 0x04da + #define USB_DEVICE_ID_PANABOARD_UBT780 0x1044 +diff --git a/drivers/hid/hid-plantronics.c b/drivers/hid/hid-plantronics.c +index e81b7cec2d12..3d414ae194ac 100644 +--- a/drivers/hid/hid-plantronics.c ++++ b/drivers/hid/hid-plantronics.c +@@ -198,9 +198,18 @@ static int plantronics_probe(struct hid_device *hdev, + } + + static const struct hid_device_id plantronics_devices[] = { ++ { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, ++ USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3210_SERIES), ++ .driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS }, + { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, + USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3220_SERIES), + .driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, ++ USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3215_SERIES), ++ .driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS }, ++ { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, ++ USB_DEVICE_ID_PLANTRONICS_BLACKWIRE_3225_SERIES), ++ .driver_data = PLT_QUIRK_DOUBLE_VOLUME_KEYS }, + { HID_USB_DEVICE(USB_VENDOR_ID_PLANTRONICS, HID_ANY_ID) }, + { } + }; +-- +2.35.3 + diff --git a/patches.suse/PCI-Fix-pci_device_is_present-for-VFs-by-checking-PF.patch b/patches.suse/PCI-Fix-pci_device_is_present-for-VFs-by-checking-PF.patch new file mode 100644 index 0000000..7f8d0a3 --- /dev/null +++ b/patches.suse/PCI-Fix-pci_device_is_present-for-VFs-by-checking-PF.patch @@ -0,0 +1,64 @@ +From 98b04dd0b4577894520493d96bc4623387767445 Mon Sep 17 00:00:00 2001 +From: "Michael S. Tsirkin" +Date: Wed, 26 Oct 2022 02:11:21 -0400 +Subject: [PATCH] PCI: Fix pci_device_is_present() for VFs by checking PF +Git-commit: 98b04dd0b4577894520493d96bc4623387767445 +Patch-mainline: v6.2-rc1 +References: git-fixes + +pci_device_is_present() previously didn't work for VFs because it reads the +Vendor and Device ID, which are 0xffff for VFs, which looks like they +aren't present. Check the PF instead. + +Wei Gong reported that if virtio I/O is in progress when the driver is +unbound or "0" is written to /sys/.../sriov_numvfs, the virtio I/O +operation hangs, which may result in output like this: + + task:bash state:D stack: 0 pid: 1773 ppid: 1241 flags:0x00004002 + Call Trace: + schedule+0x4f/0xc0 + blk_mq_freeze_queue_wait+0x69/0xa0 + blk_mq_freeze_queue+0x1b/0x20 + blk_cleanup_queue+0x3d/0xd0 + virtblk_remove+0x3c/0xb0 [virtio_blk] + virtio_dev_remove+0x4b/0x80 + ... + device_unregister+0x1b/0x60 + unregister_virtio_device+0x18/0x30 + virtio_pci_remove+0x41/0x80 + pci_device_remove+0x3e/0xb0 + +This happened because pci_device_is_present(VF) returned "false" in +virtio_pci_remove(), so it called virtio_break_device(). The broken vq +meant that vring_interrupt() skipped the vq.callback() that would have +completed the virtio I/O operation via virtblk_done(). + +[bhelgaas: commit log, simplify to always use pci_physfn(), add stable tag] +Link: https://lore.kernel.org/r/20221026060912.173250-1-mst@redhat.com +Reported-by: Wei Gong +Tested-by: Wei Gong +Signed-off-by: Michael S. Tsirkin +Signed-off-by: Bjorn Helgaas +Cc: stable@vger.kernel.org +Acked-by: Takashi Iwai + +--- + drivers/pci/pci.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c +index 9f3cc829dfee..fba95486caaf 100644 +--- a/drivers/pci/pci.c ++++ b/drivers/pci/pci.c +@@ -6447,6 +6447,8 @@ bool pci_device_is_present(struct pci_dev *pdev) + { + u32 v; + ++ /* Check PF if pdev is a VF, since VF Vendor/Device IDs are 0xffff */ ++ pdev = pci_physfn(pdev); + if (pci_dev_is_disconnected(pdev)) + return false; + return pci_bus_read_dev_vendor_id(pdev->bus, pdev->devfn, &v, 0); +-- +2.35.3 + diff --git a/patches.suse/arm64-Avoid-repeated-AA64MMFR1_EL1-register-read-on-.patch b/patches.suse/arm64-Avoid-repeated-AA64MMFR1_EL1-register-read-on-.patch new file mode 100644 index 0000000..8014e75 --- /dev/null +++ b/patches.suse/arm64-Avoid-repeated-AA64MMFR1_EL1-register-read-on-.patch @@ -0,0 +1,51 @@ +From 31f463ebbf1eed7a43629353d8c7d2eb0f5b2c8c Mon Sep 17 00:00:00 2001 +From: Gabriel Krisman Bertazi +Date: Thu, 5 Jan 2023 17:29:27 -0300 +Subject: [PATCH] arm64: Avoid repeated AA64MMFR1_EL1 register read on + pagefault path +Patch-mainline: Submitted, 2023-01-06 - linux-arm-kernel +References: performance bsc#1203219 + +Accessing AA64MMFR1_EL1 is expensive in KVM guests, since it is emulated +in the hypervisor. In fact, ARM documentation mentions some feature +registers are not supposed to be accessed frequently by the OS, and +therefore should be emulated for guests [1]. + +Commit 0388f9c74330 ("arm64: mm: Implement +arch_wants_old_prefaulted_pte()") introduced a read of this register in +the page fault path. But, even when the feature of setting faultaround +pages with the old flag is disabled for a given cpu, we are still paying +the cost of checking the register on every pagefault. This results in an +explosion of vmexit events in KVM guests, which directly impacts the +performance of virtualized workloads. For instance, running kernbench +yields a 15% increase in system time solely due to the increased vmexit +cycles. + +This patch avoids the extra cost by using the sanitized cached value. +It should be safe to do so, since this register mustn't change for a +given cpu. + +[1] https://developer.arm.com/-/media/Arm%20Developer%20Community/PDF/Learn%20the%20Architecture/Armv8-A%20virtualization.pdf?revision=a765a7df-1a00-434d-b241-357bfda2dd31 + +Reviewed-by: Anshuman Khandual +Signed-off-by: Gabriel Krisman Bertazi + +--- + arch/arm64/include/asm/cpufeature.h | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/arch/arm64/include/asm/cpufeature.h ++++ b/arch/arm64/include/asm/cpufeature.h +@@ -836,7 +836,11 @@ static inline bool cpu_has_hw_af(void) + if (!IS_ENABLED(CONFIG_ARM64_HW_AFDBM)) + return false; + +- mmfr1 = read_cpuid(ID_AA64MMFR1_EL1); ++ /* ++ * Use cached version to avoid emulated msr operation on KVM ++ * guests. ++ */ ++ mmfr1 = read_sanitised_ftr_reg(SYS_ID_AA64MMFR1_EL1); + return cpuid_feature_extract_unsigned_field(mmfr1, + ID_AA64MMFR1_HADBS_SHIFT); + } diff --git a/patches.suse/drm-amdgpu-handle-polaris10-11-overlap-asics-v2.patch b/patches.suse/drm-amdgpu-handle-polaris10-11-overlap-asics-v2.patch new file mode 100644 index 0000000..83002b6 --- /dev/null +++ b/patches.suse/drm-amdgpu-handle-polaris10-11-overlap-asics-v2.patch @@ -0,0 +1,60 @@ +From 1d4624cd72b912b2680c08d0be48338a1629a858 Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Mon, 21 Nov 2022 15:52:19 -0500 +Subject: [PATCH] drm/amdgpu: handle polaris10/11 overlap asics (v2) +Git-commit: 1d4624cd72b912b2680c08d0be48338a1629a858 +Patch-mainline: v6.2-rc1 +References: git-fixes + +Some special polaris 10 chips overlap with the polaris11 +DID range. Handle this properly in the driver. + +V2: use local flags for other function calls. + +Acked-by: Luben Tuikov +Signed-off-by: Alex Deucher +Cc: stable@vger.kernel.org +Acked-by: Takashi Iwai + +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +index 7383272c6a3a..b4f2d61ea0d5 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +@@ -2039,6 +2039,15 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, + "See modparam exp_hw_support\n"); + return -ENODEV; + } ++ /* differentiate between P10 and P11 asics with the same DID */ ++ if (pdev->device == 0x67FF && ++ (pdev->revision == 0xE3 || ++ pdev->revision == 0xE7 || ++ pdev->revision == 0xF3 || ++ pdev->revision == 0xF7)) { ++ flags &= ~AMD_ASIC_MASK; ++ flags |= CHIP_POLARIS10; ++ } + + /* Due to hardware bugs, S/G Display on raven requires a 1:1 IOMMU mapping, + * however, SME requires an indirect IOMMU mapping because the encryption +@@ -2108,12 +2117,12 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, + + pci_set_drvdata(pdev, ddev); + +- ret = amdgpu_driver_load_kms(adev, ent->driver_data); ++ ret = amdgpu_driver_load_kms(adev, flags); + if (ret) + goto err_pci; + + retry_init: +- ret = drm_dev_register(ddev, ent->driver_data); ++ ret = drm_dev_register(ddev, flags); + if (ret == -EAGAIN && ++retry <= 3) { + DRM_INFO("retry init %d\n", retry); + /* Don't request EX mode too frequently which is attacking */ +-- +2.35.3 + diff --git a/patches.suse/drm-amdgpu-make-display-pinning-more-flexible-v2.patch b/patches.suse/drm-amdgpu-make-display-pinning-more-flexible-v2.patch new file mode 100644 index 0000000..c475dfb --- /dev/null +++ b/patches.suse/drm-amdgpu-make-display-pinning-more-flexible-v2.patch @@ -0,0 +1,42 @@ +From 81d0bcf9900932633d270d5bc4a54ff599c6ebdb Mon Sep 17 00:00:00 2001 +From: Alex Deucher +Date: Wed, 7 Dec 2022 11:08:53 -0500 +Subject: [PATCH] drm/amdgpu: make display pinning more flexible (v2) +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: 81d0bcf9900932633d270d5bc4a54ff599c6ebdb +Patch-mainline: v6.2-rc1 +References: git-fixes + +Only apply the static threshold for Stoney and Carrizo. +This hardware has certain requirements that don't allow +mixing of GTT and VRAM. Newer asics do not have these +requirements so we should be able to be more flexible +with where buffers end up. + +Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2270 +Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2291 +Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2255 +Acked-by: Luben Tuikov +Reviewed-by: Christian König +Signed-off-by: Alex Deucher +Cc: stable@vger.kernel.org +Acked-by: Takashi Iwai + +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +@@ -1510,7 +1510,8 @@ u64 amdgpu_bo_gpu_offset_no_check(struct + uint32_t amdgpu_bo_get_preferred_pin_domain(struct amdgpu_device *adev, + uint32_t domain) + { +- if (domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) { ++ if ((domain == (AMDGPU_GEM_DOMAIN_VRAM | AMDGPU_GEM_DOMAIN_GTT)) && ++ ((adev->asic_type == CHIP_CARRIZO) || (adev->asic_type == CHIP_STONEY))) { + domain = AMDGPU_GEM_DOMAIN_VRAM; + if (adev->gmc.real_vram_size <= AMDGPU_SG_THRESHOLD) + domain = AMDGPU_GEM_DOMAIN_GTT; diff --git a/patches.suse/drm-connector-send-hotplug-uevent-on-connector-clean.patch b/patches.suse/drm-connector-send-hotplug-uevent-on-connector-clean.patch new file mode 100644 index 0000000..f542ff2 --- /dev/null +++ b/patches.suse/drm-connector-send-hotplug-uevent-on-connector-clean.patch @@ -0,0 +1,64 @@ +From 6fdc2d490ea1369d17afd7e6eb66fecc5b7209bc Mon Sep 17 00:00:00 2001 +From: Simon Ser +Date: Mon, 17 Oct 2022 15:32:01 +0000 +Subject: [PATCH] drm/connector: send hotplug uevent on connector cleanup +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: 6fdc2d490ea1369d17afd7e6eb66fecc5b7209bc +Patch-mainline: v6.2-rc1 +References: git-fixes + +A typical DP-MST unplug removes a KMS connector. However care must +be taken to properly synchronize with user-space. The expected +sequence of events is the following: + +1. The kernel notices that the DP-MST port is gone. +2. The kernel marks the connector as disconnected, then sends a + uevent to make user-space re-scan the connector list. +3. User-space notices the connector goes from connected to disconnected, + disables it. +4. Kernel handles the IOCTL disabling the connector. On success, + the very last reference to the struct drm_connector is dropped and + drm_connector_cleanup() is called. +5. The connector is removed from the list, and a uevent is sent to tell + user-space that the connector disappeared. + +The very last step was missing. As a result, user-space thought the +connector still existed and could try to disable it again. Since the +kernel no longer knows about the connector, that would end up with +EINVAL and confused user-space. + +Fix this by sending a hotplug uevent from drm_connector_cleanup(). + +Signed-off-by: Simon Ser +Cc: stable@vger.kernel.org +Cc: Daniel Vetter +Cc: Lyude Paul +Cc: Jonas Ådahl +Tested-by: Jonas Ådahl +Reviewed-by: Lyude Paul +Link: https://patchwork.freedesktop.org/patch/msgid/20221017153150.60675-2-contact@emersion.fr +Acked-by: Takashi Iwai + +--- + drivers/gpu/drm/drm_connector.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c +index e3142c8142b3..90dad87e9ad0 100644 +--- a/drivers/gpu/drm/drm_connector.c ++++ b/drivers/gpu/drm/drm_connector.c +@@ -582,6 +582,9 @@ void drm_connector_cleanup(struct drm_connector *connector) + mutex_destroy(&connector->mutex); + + memset(connector, 0, sizeof(*connector)); ++ ++ if (dev->registered) ++ drm_sysfs_hotplug_event(dev); + } + EXPORT_SYMBOL(drm_connector_cleanup); + +-- +2.35.3 + diff --git a/patches.suse/drm-i915-migrate-don-t-check-the-scratch-page.patch b/patches.suse/drm-i915-migrate-don-t-check-the-scratch-page.patch new file mode 100644 index 0000000..4e0c153 --- /dev/null +++ b/patches.suse/drm-i915-migrate-don-t-check-the-scratch-page.patch @@ -0,0 +1,58 @@ +From 8eb7fcce34d16f77ac8efa80e8dfecec2503e8c5 Mon Sep 17 00:00:00 2001 +From: Matthew Auld +Date: Mon, 6 Dec 2021 11:25:36 +0000 +Subject: [PATCH] drm/i915/migrate: don't check the scratch page +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: 8eb7fcce34d16f77ac8efa80e8dfecec2503e8c5 +Patch-mainline: v5.17-rc1 +References: git-fixes + +The scratch page might not be allocated in LMEM(like on DG2), so instead +of using that as the deciding factor for where the paging structures +live, let's just query the pt before mapping it. + +Signed-off-by: Matthew Auld +Cc: Thomas Hellström +Cc: Ramalingam C +Reviewed-by: Ramalingam C +Link: https://patchwork.freedesktop.org/patch/msgid/20211206112539.3149779-1-matthew.auld@intel.com +Acked-by: Takashi Iwai + +--- + drivers/gpu/drm/i915/gt/intel_migrate.c | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/drivers/gpu/drm/i915/gt/intel_migrate.c b/drivers/gpu/drm/i915/gt/intel_migrate.c +index afb1cce9a352..0f94dedc1599 100644 +--- a/drivers/gpu/drm/i915/gt/intel_migrate.c ++++ b/drivers/gpu/drm/i915/gt/intel_migrate.c +@@ -13,7 +13,6 @@ + + struct insert_pte_data { + u64 offset; +- bool is_lmem; + }; + + #define CHUNK_SZ SZ_8M /* ~1ms at 8GiB/s preemption delay */ +@@ -40,7 +39,7 @@ static void insert_pte(struct i915_address_space *vm, + struct insert_pte_data *d = data; + + vm->insert_page(vm, px_dma(pt), d->offset, I915_CACHE_NONE, +- d->is_lmem ? PTE_LM : 0); ++ i915_gem_object_is_lmem(pt->base) ? PTE_LM : 0); + d->offset += PAGE_SIZE; + } + +@@ -134,7 +133,6 @@ static struct i915_address_space *migrate_vm(struct intel_gt *gt) + goto err_vm; + + /* Now allow the GPU to rewrite the PTE via its own ppGTT */ +- d.is_lmem = i915_gem_object_is_lmem(vm->vm.scratch[0]); + vm->vm.foreach(&vm->vm, base, base + sz, insert_pte, &d); + } + +-- +2.35.3 + diff --git a/patches.suse/drm-i915-migrate-fix-length-calculation.patch b/patches.suse/drm-i915-migrate-fix-length-calculation.patch new file mode 100644 index 0000000..4f5035a --- /dev/null +++ b/patches.suse/drm-i915-migrate-fix-length-calculation.patch @@ -0,0 +1,42 @@ +From 31d70749bfe110593fbe8bf45e7c7788c7d85035 Mon Sep 17 00:00:00 2001 +From: Matthew Auld +Date: Mon, 6 Dec 2021 11:25:38 +0000 +Subject: [PATCH] drm/i915/migrate: fix length calculation +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: 31d70749bfe110593fbe8bf45e7c7788c7d85035 +Patch-mainline: v5.17-rc1 +References: git-fixes + +No need to insert PTEs for the PTE window itself, also foreach expects a +length not an end offset, which could be gigantic here with a second +engine. + +Signed-off-by: Matthew Auld +Cc: Thomas Hellström +Cc: Ramalingam C +Reviewed-by: Ramalingam C +Link: https://patchwork.freedesktop.org/patch/msgid/20211206112539.3149779-3-matthew.auld@intel.com +Acked-by: Takashi Iwai + +--- + drivers/gpu/drm/i915/gt/intel_migrate.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/gt/intel_migrate.c b/drivers/gpu/drm/i915/gt/intel_migrate.c +index 64afb9a52013..19a01878fee3 100644 +--- a/drivers/gpu/drm/i915/gt/intel_migrate.c ++++ b/drivers/gpu/drm/i915/gt/intel_migrate.c +@@ -133,7 +133,7 @@ static struct i915_address_space *migrate_vm(struct intel_gt *gt) + goto err_vm; + + /* Now allow the GPU to rewrite the PTE via its own ppGTT */ +- vm->vm.foreach(&vm->vm, base, base + sz, insert_pte, &d); ++ vm->vm.foreach(&vm->vm, base, d.offset - base, insert_pte, &d); + } + + return &vm->vm; +-- +2.35.3 + diff --git a/patches.suse/drm-i915-migrate-fix-offset-calculation.patch b/patches.suse/drm-i915-migrate-fix-offset-calculation.patch new file mode 100644 index 0000000..9f1160d --- /dev/null +++ b/patches.suse/drm-i915-migrate-fix-offset-calculation.patch @@ -0,0 +1,44 @@ +From 08c7c122ad90799cc3ae674e7f29f236f91063ce Mon Sep 17 00:00:00 2001 +From: Matthew Auld +Date: Mon, 6 Dec 2021 11:25:37 +0000 +Subject: [PATCH] drm/i915/migrate: fix offset calculation +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: 08c7c122ad90799cc3ae674e7f29f236f91063ce +Patch-mainline: v5.17-rc1 +References: git-fixes + +Ensure we add the engine base only after we calculate the qword offset +into the PTE window. + +Signed-off-by: Matthew Auld +Cc: Thomas Hellström +Cc: Ramalingam C +Reviewed-by: Ramalingam C +Link: https://patchwork.freedesktop.org/patch/msgid/20211206112539.3149779-2-matthew.auld@intel.com +Acked-by: Takashi Iwai + +--- + drivers/gpu/drm/i915/gt/intel_migrate.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/gpu/drm/i915/gt/intel_migrate.c b/drivers/gpu/drm/i915/gt/intel_migrate.c +index 0f94dedc1599..64afb9a52013 100644 +--- a/drivers/gpu/drm/i915/gt/intel_migrate.c ++++ b/drivers/gpu/drm/i915/gt/intel_migrate.c +@@ -279,10 +279,10 @@ static int emit_pte(struct i915_request *rq, + GEM_BUG_ON(GRAPHICS_VER(rq->engine->i915) < 8); + + /* Compute the page directory offset for the target address range */ +- offset += (u64)rq->engine->instance << 32; + offset >>= 12; + offset *= sizeof(u64); + offset += 2 * CHUNK_SZ; ++ offset += (u64)rq->engine->instance << 32; + + cs = intel_ring_begin(rq, 6); + if (IS_ERR(cs)) +-- +2.35.3 + diff --git a/patches.suse/ima-Fix-a-potential-NULL-pointer-access-in-ima_resto.patch b/patches.suse/ima-Fix-a-potential-NULL-pointer-access-in-ima_resto.patch new file mode 100644 index 0000000..38845c3 --- /dev/null +++ b/patches.suse/ima-Fix-a-potential-NULL-pointer-access-in-ima_resto.patch @@ -0,0 +1,44 @@ +From 11220db412edae8dba58853238f53258268bdb88 Mon Sep 17 00:00:00 2001 +From: Huaxin Lu +Date: Thu, 3 Nov 2022 00:09:49 +0800 +Subject: [PATCH] ima: Fix a potential NULL pointer access in ima_restore_measurement_list +Git-commit: 11220db412edae8dba58853238f53258268bdb88 +Patch-mainline: v6.2-rc1 +References: git-fixes + +In restore_template_fmt, when kstrdup fails, a non-NULL value will still be +returned, which causes a NULL pointer access in template_desc_init_fields. + +Fixes: c7d09367702e ("ima: support restoring multiple template formats") +Cc: stable@kernel.org +Co-developed-by: Jiaming Li +Signed-off-by: Jiaming Li +Signed-off-by: Huaxin Lu +Reviewed-by: Stefan Berger +Signed-off-by: Mimi Zohar +Acked-by: Takashi Iwai + +--- + security/integrity/ima/ima_template.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/security/integrity/ima/ima_template.c b/security/integrity/ima/ima_template.c +index c25079faa208..49f0626928a1 100644 +--- a/security/integrity/ima/ima_template.c ++++ b/security/integrity/ima/ima_template.c +@@ -340,8 +340,11 @@ static struct ima_template_desc *restore_template_fmt(char *template_name) + + template_desc->name = ""; + template_desc->fmt = kstrdup(template_name, GFP_KERNEL); +- if (!template_desc->fmt) ++ if (!template_desc->fmt) { ++ kfree(template_desc); ++ template_desc = NULL; + goto out; ++ } + + spin_lock(&template_list); + list_add_tail_rcu(&template_desc->list, &defined_templates); +-- +2.35.3 + diff --git a/patches.suse/ipmi-fix-long-wait-in-unload-when-IPMI-disconnect.patch b/patches.suse/ipmi-fix-long-wait-in-unload-when-IPMI-disconnect.patch new file mode 100644 index 0000000..eddddbb --- /dev/null +++ b/patches.suse/ipmi-fix-long-wait-in-unload-when-IPMI-disconnect.patch @@ -0,0 +1,99 @@ +From f6f1234d98cce69578bfac79df147a1f6660596c Mon Sep 17 00:00:00 2001 +From: Zhang Yuchen +Date: Fri, 7 Oct 2022 17:26:16 +0800 +Subject: [PATCH] ipmi: fix long wait in unload when IPMI disconnect +Git-commit: f6f1234d98cce69578bfac79df147a1f6660596c +Patch-mainline: v6.2-rc1 +References: git-fixes + +When fixing the problem mentioned in PATCH1, we also found +the following problem: + +If the IPMI is disconnected and in the sending process, the +uninstallation driver will be stuck for a long time. + +The main problem is that uninstalling the driver waits for curr_msg to +be sent or HOSED. After stopping tasklet, the only place to trigger the +timeout mechanism is the circular poll in shutdown_smi. + +The poll function delays 10us and calls smi_event_handler(smi_info,10). +Smi_event_handler deducts 10us from kcs->ibf_timeout. + +But the poll func is followed by schedule_timeout_uninterruptible(1). +The time consumed here is not counted in kcs->ibf_timeout. + +So when 10us is deducted from kcs->ibf_timeout, at least 1 jiffies has +actually passed. The waiting time has increased by more than a +hundredfold. + +Now instead of calling poll(). call smi_event_handler() directly and +calculate the elapsed time. + +For verification, you can directly use ebpf to check the kcs-> +ibf_timeout for each call to kcs_event() when IPMI is disconnected. +Decrement at normal rate before unloading. The decrement rate becomes +very slow after unloading. + + $ bpftrace -e 'kprobe:kcs_event {printf("kcs->ibftimeout : %d\n", + *(arg0+584));}' + +Signed-off-by: Zhang Yuchen +Message-id: <20221007092617.87597-3-zhangyuchen.lcr@bytedance.com> +Signed-off-by: Corey Minyard +Cc: stable@vger.kernel.org +Acked-by: Takashi Iwai + +--- + drivers/char/ipmi/ipmi_si_intf.c | 27 +++++++++++++++++++-------- + 1 file changed, 19 insertions(+), 8 deletions(-) + +diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c +index 6e357ad76f2e..abddd7e43a9a 100644 +--- a/drivers/char/ipmi/ipmi_si_intf.c ++++ b/drivers/char/ipmi/ipmi_si_intf.c +@@ -2153,6 +2153,20 @@ static int __init init_ipmi_si(void) + } + module_init(init_ipmi_si); + ++static void wait_msg_processed(struct smi_info *smi_info) ++{ ++ unsigned long jiffies_now; ++ long time_diff; ++ ++ while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) { ++ jiffies_now = jiffies; ++ time_diff = (((long)jiffies_now - (long)smi_info->last_timeout_jiffies) ++ * SI_USEC_PER_JIFFY); ++ smi_event_handler(smi_info, time_diff); ++ schedule_timeout_uninterruptible(1); ++ } ++} ++ + static void shutdown_smi(void *send_info) + { + struct smi_info *smi_info = send_info; +@@ -2187,16 +2201,13 @@ static void shutdown_smi(void *send_info) + * in the BMC. Note that timers and CPU interrupts are off, + * so no need for locks. + */ +- while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) { +- poll(smi_info); +- schedule_timeout_uninterruptible(1); +- } ++ wait_msg_processed(smi_info); ++ + if (smi_info->handlers) + disable_si_irq(smi_info); +- while (smi_info->curr_msg || (smi_info->si_state != SI_NORMAL)) { +- poll(smi_info); +- schedule_timeout_uninterruptible(1); +- } ++ ++ wait_msg_processed(smi_info); ++ + if (smi_info->handlers) + smi_info->handlers->cleanup(smi_info->si_sm); + +-- +2.35.3 + diff --git a/patches.suse/media-stv0288-use-explicitly-signed-char.patch b/patches.suse/media-stv0288-use-explicitly-signed-char.patch new file mode 100644 index 0000000..d4c9d59 --- /dev/null +++ b/patches.suse/media-stv0288-use-explicitly-signed-char.patch @@ -0,0 +1,44 @@ +From 7392134428c92a4cb541bd5c8f4f5c8d2e88364d Mon Sep 17 00:00:00 2001 +From: "Jason A. Donenfeld" +Date: Mon, 24 Oct 2022 17:23:43 +0200 +Subject: [PATCH] media: stv0288: use explicitly signed char +Git-commit: 7392134428c92a4cb541bd5c8f4f5c8d2e88364d +References: git-fixes +Patch-mainline: v6.2-rc1 + +With char becoming unsigned by default, and with `char` alone being +ambiguous and based on architecture, signed chars need to be marked +explicitly as such. Use `s8` and `u8` types here, since that's what +surrounding code does. This fixes: + +drivers/media/dvb-frontends/stv0288.c:471 stv0288_set_frontend() warn: assigning (-9) to unsigned variable 'tm' +drivers/media/dvb-frontends/stv0288.c:471 stv0288_set_frontend() warn: we never enter this loop + +Cc: Mauro Carvalho Chehab +Cc: linux-media@vger.kernel.org +Cc: stable@vger.kernel.org +Signed-off-by: Jason A. Donenfeld +Signed-off-by: Oliver Neukum +--- + drivers/media/dvb-frontends/stv0288.c | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/drivers/media/dvb-frontends/stv0288.c b/drivers/media/dvb-frontends/stv0288.c +index 3d54a0ec86af..3ae1f3a2f142 100644 +--- a/drivers/media/dvb-frontends/stv0288.c ++++ b/drivers/media/dvb-frontends/stv0288.c +@@ -440,9 +440,8 @@ static int stv0288_set_frontend(struct dvb_frontend *fe) + struct stv0288_state *state = fe->demodulator_priv; + struct dtv_frontend_properties *c = &fe->dtv_property_cache; + +- char tm; +- unsigned char tda[3]; +- u8 reg, time_out = 0; ++ u8 tda[3], reg, time_out = 0; ++ s8 tm; + + dprintk("%s : FE_SET_FRONTEND\n", __func__); + +-- +2.39.0 + diff --git a/patches.suse/nfc-pn533-Wait-for-out_urb-s-completion-in-pn533_usb.patch b/patches.suse/nfc-pn533-Wait-for-out_urb-s-completion-in-pn533_usb.patch new file mode 100644 index 0000000..4814394 --- /dev/null +++ b/patches.suse/nfc-pn533-Wait-for-out_urb-s-completion-in-pn533_usb.patch @@ -0,0 +1,129 @@ +From 9dab880d675b9d0dd56c6428e4e8352a3339371d Mon Sep 17 00:00:00 2001 +From: Minsuk Kang +Date: Fri, 6 Jan 2023 17:23:44 +0900 +Subject: [PATCH] nfc: pn533: Wait for out_urb's completion in pn533_usb_send_frame() +Git-commit: 9dab880d675b9d0dd56c6428e4e8352a3339371d +Patch-mainline: v6.2-rc4 +References: git-fixes + +Fix a use-after-free that occurs in hcd when in_urb sent from +pn533_usb_send_frame() is completed earlier than out_urb. Its callback +frees the skb data in pn533_send_async_complete() that is used as a +transfer buffer of out_urb. Wait before sending in_urb until the +callback of out_urb is called. To modify the callback of out_urb alone, +separate the complete function of out_urb and ack_urb. + +Found by a modified version of syzkaller. + +Bug: KASAN: use-after-free in dummy_timer +Call Trace: + memcpy (mm/kasan/shadow.c:65) + dummy_perform_transfer (drivers/usb/gadget/udc/dummy_hcd.c:1352) + transfer (drivers/usb/gadget/udc/dummy_hcd.c:1453) + dummy_timer (drivers/usb/gadget/udc/dummy_hcd.c:1972) + arch_static_branch (arch/x86/include/asm/jump_label.h:27) + static_key_false (include/linux/jump_label.h:207) + timer_expire_exit (include/trace/events/timer.h:127) + call_timer_fn (kernel/time/timer.c:1475) + expire_timers (kernel/time/timer.c:1519) + __run_timers (kernel/time/timer.c:1790) + run_timer_softirq (kernel/time/timer.c:1803) + +Fixes: c46ee38620a2 ("NFC: pn533: add NXP pn533 nfc device driver") +Signed-off-by: Minsuk Kang +Signed-off-by: David S. Miller +Acked-by: Takashi Iwai + +--- + drivers/nfc/pn533/usb.c | 44 ++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 41 insertions(+), 3 deletions(-) + +diff --git a/drivers/nfc/pn533/usb.c b/drivers/nfc/pn533/usb.c +index 6f71ac72012e..ed9c5e2cf3ad 100644 +--- a/drivers/nfc/pn533/usb.c ++++ b/drivers/nfc/pn533/usb.c +@@ -153,10 +153,17 @@ static int pn533_usb_send_ack(struct pn533 *dev, gfp_t flags) + return usb_submit_urb(phy->ack_urb, flags); + } + ++struct pn533_out_arg { ++ struct pn533_usb_phy *phy; ++ struct completion done; ++}; ++ + static int pn533_usb_send_frame(struct pn533 *dev, + struct sk_buff *out) + { + struct pn533_usb_phy *phy = dev->phy; ++ struct pn533_out_arg arg; ++ void *cntx; + int rc; + + if (phy->priv == NULL) +@@ -168,10 +175,17 @@ static int pn533_usb_send_frame(struct pn533 *dev, + print_hex_dump_debug("PN533 TX: ", DUMP_PREFIX_NONE, 16, 1, + out->data, out->len, false); + ++ init_completion(&arg.done); ++ cntx = phy->out_urb->context; ++ phy->out_urb->context = &arg; ++ + rc = usb_submit_urb(phy->out_urb, GFP_KERNEL); + if (rc) + return rc; + ++ wait_for_completion(&arg.done); ++ phy->out_urb->context = cntx; ++ + if (dev->protocol_type == PN533_PROTO_REQ_RESP) { + /* request for response for sent packet directly */ + rc = pn533_submit_urb_for_response(phy, GFP_KERNEL); +@@ -408,7 +422,31 @@ static int pn533_acr122_poweron_rdr(struct pn533_usb_phy *phy) + return arg.rc; + } + +-static void pn533_send_complete(struct urb *urb) ++static void pn533_out_complete(struct urb *urb) ++{ ++ struct pn533_out_arg *arg = urb->context; ++ struct pn533_usb_phy *phy = arg->phy; ++ ++ switch (urb->status) { ++ case 0: ++ break; /* success */ ++ case -ECONNRESET: ++ case -ENOENT: ++ dev_dbg(&phy->udev->dev, ++ "The urb has been stopped (status %d)\n", ++ urb->status); ++ break; ++ case -ESHUTDOWN: ++ default: ++ nfc_err(&phy->udev->dev, ++ "Urb failure (status %d)\n", ++ urb->status); ++ } ++ ++ complete(&arg->done); ++} ++ ++static void pn533_ack_complete(struct urb *urb) + { + struct pn533_usb_phy *phy = urb->context; + +@@ -496,10 +534,10 @@ static int pn533_usb_probe(struct usb_interface *interface, + + usb_fill_bulk_urb(phy->out_urb, phy->udev, + usb_sndbulkpipe(phy->udev, out_endpoint), +- NULL, 0, pn533_send_complete, phy); ++ NULL, 0, pn533_out_complete, phy); + usb_fill_bulk_urb(phy->ack_urb, phy->udev, + usb_sndbulkpipe(phy->udev, out_endpoint), +- NULL, 0, pn533_send_complete, phy); ++ NULL, 0, pn533_ack_complete, phy); + + switch (id->driver_info) { + case PN533_DEVICE_STD: +-- +2.35.3 + diff --git a/patches.suse/powerpc-rtas-avoid-device-tree-lookups-in-rtas_os_te.patch b/patches.suse/powerpc-rtas-avoid-device-tree-lookups-in-rtas_os_te.patch new file mode 100644 index 0000000..31cec64 --- /dev/null +++ b/patches.suse/powerpc-rtas-avoid-device-tree-lookups-in-rtas_os_te.patch @@ -0,0 +1,77 @@ +From ed2213bfb192ab51f09f12e9b49b5d482c6493f3 Mon Sep 17 00:00:00 2001 +From: Nathan Lynch +Date: Fri, 18 Nov 2022 09:07:41 -0600 +Subject: [PATCH] powerpc/rtas: avoid device tree lookups in rtas_os_term() + +References: bsc#1065729 +Patch-mainline: v6.2-rc1 +Git-commit: ed2213bfb192ab51f09f12e9b49b5d482c6493f3 + +rtas_os_term() is called during panic. Its behavior depends on a couple +of conditions in the /rtas node of the device tree, the traversal of +which entails locking and local IRQ state changes. If the kernel panics +while devtree_lock is held, rtas_os_term() as currently written could +hang. + +Instead of discovering the relevant characteristics at panic time, +cache them in file-static variables at boot. Note the lookup for +"ibm,extended-os-term" is converted to of_property_read_bool() since it +is a boolean property, not an RTAS function token. + +Signed-off-by: Nathan Lynch +Reviewed-by: Nicholas Piggin +Reviewed-by: Andrew Donnellan +[mpe: Incorporate suggested change from Nick] +Signed-off-by: Michael Ellerman +Link: https://lore.kernel.org/r/20221118150751.469393-4-nathanl@linux.ibm.com +Acked-by: Michal Suchanek +--- + arch/powerpc/kernel/rtas.c | 13 ++++++++++--- + 1 file changed, 10 insertions(+), 3 deletions(-) + +diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c +index c12dd5ed5e00..db43cbdcc74c 100644 +--- a/arch/powerpc/kernel/rtas.c ++++ b/arch/powerpc/kernel/rtas.c +@@ -947,6 +947,7 @@ void __noreturn rtas_halt(void) + + /* Must be in the RMO region, so we place it here */ + static char rtas_os_term_buf[2048]; ++static s32 ibm_os_term_token = RTAS_UNKNOWN_SERVICE; + + void rtas_os_term(char *str) + { +@@ -958,14 +959,13 @@ void rtas_os_term(char *str) + * this property may terminate the partition which we want to avoid + * since it interferes with panic_timeout. + */ +- if (RTAS_UNKNOWN_SERVICE == rtas_token("ibm,os-term") || +- RTAS_UNKNOWN_SERVICE == rtas_token("ibm,extended-os-term")) ++ if (ibm_os_term_token == RTAS_UNKNOWN_SERVICE) + return; + + snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str); + + do { +- status = rtas_call(rtas_token("ibm,os-term"), 1, 1, NULL, ++ status = rtas_call(ibm_os_term_token, 1, 1, NULL, + __pa(rtas_os_term_buf)); + } while (rtas_busy_delay(status)); + +@@ -1335,6 +1335,13 @@ void __init rtas_initialize(void) + no_entry = of_property_read_u32(rtas.dev, "linux,rtas-entry", &entry); + rtas.entry = no_entry ? rtas.base : entry; + ++ /* ++ * Discover these now to avoid device tree lookups in the ++ * panic path. ++ */ ++ if (of_property_read_bool(rtas.dev, "ibm,extended-os-term")) ++ ibm_os_term_token = rtas_token("ibm,os-term"); ++ + /* If RTAS was found, allocate the RMO buffer for it and look for + * the stop-self token if any + */ +-- +2.35.3 + diff --git a/patches.suse/powerpc-rtas-avoid-scheduling-in-rtas_os_term.patch b/patches.suse/powerpc-rtas-avoid-scheduling-in-rtas_os_term.patch new file mode 100644 index 0000000..930e320 --- /dev/null +++ b/patches.suse/powerpc-rtas-avoid-scheduling-in-rtas_os_term.patch @@ -0,0 +1,67 @@ +From 6c606e57eecc37d6b36d732b1ff7e55b7dc32dd4 Mon Sep 17 00:00:00 2001 +From: Nathan Lynch +Date: Fri, 18 Nov 2022 09:07:42 -0600 +Subject: [PATCH] powerpc/rtas: avoid scheduling in rtas_os_term() + +References: bsc#1065729 +Patch-mainline: v6.2-rc1 +Git-commit: 6c606e57eecc37d6b36d732b1ff7e55b7dc32dd4 + +It's unsafe to use rtas_busy_delay() to handle a busy status from +the ibm,os-term RTAS function in rtas_os_term(): + +Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b +BUG: sleeping function called from invalid context at arch/powerpc/kernel/rtas.c:618 +in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 1, name: swapper/0 +preempt_count: 2, expected: 0 +CPU: 7 PID: 1 Comm: swapper/0 Tainted: G D 6.0.0-rc5-02182-gf8553a572277-dirty #9 +Call Trace: +[c000000007b8f000] [c000000001337110] dump_stack_lvl+0xb4/0x110 (unreliable) +[c000000007b8f040] [c0000000002440e4] __might_resched+0x394/0x3c0 +[c000000007b8f0e0] [c00000000004f680] rtas_busy_delay+0x120/0x1b0 +[c000000007b8f100] [c000000000052d04] rtas_os_term+0xb8/0xf4 +[c000000007b8f180] [c0000000001150fc] pseries_panic+0x50/0x68 +[c000000007b8f1f0] [c000000000036354] ppc_panic_platform_handler+0x34/0x50 +[c000000007b8f210] [c0000000002303c4] notifier_call_chain+0xd4/0x1c0 +[c000000007b8f2b0] [c0000000002306cc] atomic_notifier_call_chain+0xac/0x1c0 +[c000000007b8f2f0] [c0000000001d62b8] panic+0x228/0x4d0 +[c000000007b8f390] [c0000000001e573c] do_exit+0x140c/0x1420 +[c000000007b8f480] [c0000000001e586c] make_task_dead+0xdc/0x200 + +Use rtas_busy_delay_time() instead, which signals without side effects +whether to attempt the ibm,os-term RTAS call again. + +Signed-off-by: Nathan Lynch +Reviewed-by: Nicholas Piggin +Reviewed-by: Andrew Donnellan +Signed-off-by: Michael Ellerman +Link: https://lore.kernel.org/r/20221118150751.469393-5-nathanl@linux.ibm.com +Acked-by: Michal Suchanek +--- + arch/powerpc/kernel/rtas.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/arch/powerpc/kernel/rtas.c b/arch/powerpc/kernel/rtas.c +index db43cbdcc74c..f21b39fcaf99 100644 +--- a/arch/powerpc/kernel/rtas.c ++++ b/arch/powerpc/kernel/rtas.c +@@ -964,10 +964,15 @@ void rtas_os_term(char *str) + + snprintf(rtas_os_term_buf, 2048, "OS panic: %s", str); + ++ /* ++ * Keep calling as long as RTAS returns a "try again" status, ++ * but don't use rtas_busy_delay(), which potentially ++ * schedules. ++ */ + do { + status = rtas_call(ibm_os_term_token, 1, 1, NULL, + __pa(rtas_os_term_buf)); +- } while (rtas_busy_delay(status)); ++ } while (rtas_busy_delay_time(status)); + + if (status != 0) + printk(KERN_EMERG "ibm,os-term call failed %d\n", status); +-- +2.35.3 + diff --git a/patches.suse/remoteproc-core-Do-pm_relax-when-in-RPROC_OFFLINE-st.patch b/patches.suse/remoteproc-core-Do-pm_relax-when-in-RPROC_OFFLINE-st.patch new file mode 100644 index 0000000..fb34e26 --- /dev/null +++ b/patches.suse/remoteproc-core-Do-pm_relax-when-in-RPROC_OFFLINE-st.patch @@ -0,0 +1,57 @@ +From 11c7f9e3131ad14b27a957496088fa488b153a48 Mon Sep 17 00:00:00 2001 +From: Maria Yu +Date: Tue, 6 Dec 2022 09:59:57 +0800 +Subject: [PATCH] remoteproc: core: Do pm_relax when in RPROC_OFFLINE state +Git-commit: 11c7f9e3131ad14b27a957496088fa488b153a48 +Patch-mainline: v6.2-rc1 +References: git-fixes + +Make sure that pm_relax() happens even when the remoteproc +is stopped before the crash handler work is scheduled. + +Signed-off-by: Maria Yu +Cc: stable +Fixes: a781e5aa5911 ("remoteproc: core: Prevent system suspend during remoteproc recovery") +Link: https://lore.kernel.org/r/20221206015957.2616-2-quic_aiquny@quicinc.com +Signed-off-by: Mathieu Poirier +Acked-by: Takashi Iwai + +--- + drivers/remoteproc/remoteproc_core.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c +index 11c165ddf1fc..1cd4815a6dd1 100644 +--- a/drivers/remoteproc/remoteproc_core.c ++++ b/drivers/remoteproc/remoteproc_core.c +@@ -1868,12 +1868,18 @@ static void rproc_crash_handler_work(struct work_struct *work) + + mutex_lock(&rproc->lock); + +- if (rproc->state == RPROC_CRASHED || rproc->state == RPROC_OFFLINE) { ++ if (rproc->state == RPROC_CRASHED) { + /* handle only the first crash detected */ + mutex_unlock(&rproc->lock); + return; + } + ++ if (rproc->state == RPROC_OFFLINE) { ++ /* Don't recover if the remote processor was stopped */ ++ mutex_unlock(&rproc->lock); ++ goto out; ++ } ++ + rproc->state = RPROC_CRASHED; + dev_err(dev, "handling crash #%u in %s\n", ++rproc->crash_cnt, + rproc->name); +@@ -1883,6 +1889,7 @@ static void rproc_crash_handler_work(struct work_struct *work) + if (!rproc->recovery_disabled) + rproc_trigger_recovery(rproc); + ++out: + pm_relax(rproc->dev.parent); + } + +-- +2.35.3 + diff --git a/patches.suse/selftests-Use-optional-USERCFLAGS-and-USERLDFLAGS.patch b/patches.suse/selftests-Use-optional-USERCFLAGS-and-USERLDFLAGS.patch new file mode 100644 index 0000000..0c0a6ea --- /dev/null +++ b/patches.suse/selftests-Use-optional-USERCFLAGS-and-USERLDFLAGS.patch @@ -0,0 +1,50 @@ +From de3ee3f63400a23954e7c1ad1cb8c20f29ab6fe3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micka=C3=ABl=20Sala=C3=BCn?= +Date: Fri, 9 Sep 2022 12:39:01 +0200 +Subject: [PATCH] selftests: Use optional USERCFLAGS and USERLDFLAGS +Mime-version: 1.0 +Content-type: text/plain; charset=UTF-8 +Content-transfer-encoding: 8bit +Git-commit: de3ee3f63400a23954e7c1ad1cb8c20f29ab6fe3 +Patch-mainline: v6.2-rc1 +References: git-fixes + +This change enables to extend CFLAGS and LDFLAGS from command line, e.g. +to extend compiler checks: make USERCFLAGS=-Werror USERLDFLAGS=-static + +USERCFLAGS and USERLDFLAGS are documented in +Documentation/kbuild/makefiles.rst and Documentation/kbuild/kbuild.rst + +This should be backported (down to 5.10) to improve previous kernel +versions testing as well. + +Cc: Shuah Khan +Cc: stable@vger.kernel.org +Signed-off-by: Mickaël Salaün +Link: https://lore.kernel.org/r/20220909103901.1503436-1-mic@digikod.net +Signed-off-by: Shuah Khan +Acked-by: Takashi Iwai + +--- + tools/testing/selftests/lib.mk | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/tools/testing/selftests/lib.mk b/tools/testing/selftests/lib.mk +index 9d4cb94cf437..f4196832b823 100644 +--- a/tools/testing/selftests/lib.mk ++++ b/tools/testing/selftests/lib.mk +@@ -123,6 +123,11 @@ endef + clean: + $(CLEAN) + ++# Enables to extend CFLAGS and LDFLAGS from command line, e.g. ++# make USERCFLAGS=-Werror USERLDFLAGS=-static ++CFLAGS += $(USERCFLAGS) ++LDFLAGS += $(USERLDFLAGS) ++ + # When make O= with kselftest target from main level + # the following aren't defined. + # +-- +2.35.3 + diff --git a/patches.suse/selftests-set-the-BUILD-variable-to-absolute-path.patch b/patches.suse/selftests-set-the-BUILD-variable-to-absolute-path.patch new file mode 100644 index 0000000..90c59a1 --- /dev/null +++ b/patches.suse/selftests-set-the-BUILD-variable-to-absolute-path.patch @@ -0,0 +1,74 @@ +From 5ad51ab618de5d05f4e692ebabeb6fe6289aaa57 Mon Sep 17 00:00:00 2001 +From: Muhammad Usama Anjum +Date: Wed, 19 Jan 2022 15:15:22 +0500 +Subject: [PATCH] selftests: set the BUILD variable to absolute path +Git-commit: 5ad51ab618de5d05f4e692ebabeb6fe6289aaa57 +Patch-mainline: v5.18-rc1 +References: git-fixes + +The build of kselftests fails if relative path is specified through +KBUILD_OUTPUT or O= method. BUILD variable is used to determine +the path of the output objects. When make is run from other directories +with relative paths, the exact path of the build objects is ambiguous +and build fails. + + make[1]: Entering directory '/home/usama/repos/kernel/linux_mainline2/tools/testing/selftests/alsa' + gcc mixer-test.c -L/usr/lib/x86_64-linux-gnu -lasound -o build/kselftest/alsa/mixer-test + /usr/bin/ld: cannot open output file build/kselftest/alsa/mixer-test + +Set the BUILD variable to the absolute path of the output directory. +Make the logic readable and easy to follow. Use spaces instead of tabs +for indentation as if with tab indentation is considered recipe in make. + +Signed-off-by: Muhammad Usama Anjum +Signed-off-by: Shuah Khan +Acked-by: Takashi Iwai + +--- + tools/testing/selftests/Makefile | 26 +++++++++++++++++--------- + 1 file changed, 17 insertions(+), 9 deletions(-) + +diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile +index d08fe4cfe811..a7b63860b7bc 100644 +--- a/tools/testing/selftests/Makefile ++++ b/tools/testing/selftests/Makefile +@@ -114,19 +114,27 @@ ifdef building_out_of_srctree + override LDFLAGS = + endif + +-ifneq ($(O),) +- BUILD := $(O)/kselftest ++top_srcdir ?= ../../.. ++ ++ifeq ("$(origin O)", "command line") ++ KBUILD_OUTPUT := $(O) ++endif ++ ++ifneq ($(KBUILD_OUTPUT),) ++ # Make's built-in functions such as $(abspath ...), $(realpath ...) cannot ++ # expand a shell special character '~'. We use a somewhat tedious way here. ++ abs_objtree := $(shell cd $(top_srcdir) && mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) && pwd) ++ $(if $(abs_objtree),, \ ++ $(error failed to create output directory "$(KBUILD_OUTPUT)")) ++ # $(realpath ...) resolves symlinks ++ abs_objtree := $(realpath $(abs_objtree)) ++ BUILD := $(abs_objtree)/kselftest + else +- ifneq ($(KBUILD_OUTPUT),) +- BUILD := $(KBUILD_OUTPUT)/kselftest +- else +- BUILD := $(shell pwd) +- DEFAULT_INSTALL_HDR_PATH := 1 +- endif ++ BUILD := $(CURDIR) ++ DEFAULT_INSTALL_HDR_PATH := 1 + endif + + # Prepare for headers install +-top_srcdir ?= ../../.. + include $(top_srcdir)/scripts/subarch.include + ARCH ?= $(SUBARCH) + export KSFT_KHDR_INSTALL_DONE := 1 +-- +2.35.3 + diff --git a/patches.suse/soundwire-dmi-quirks-add-quirk-variant-for-LAPBC710-.patch b/patches.suse/soundwire-dmi-quirks-add-quirk-variant-for-LAPBC710-.patch new file mode 100644 index 0000000..c49efa3 --- /dev/null +++ b/patches.suse/soundwire-dmi-quirks-add-quirk-variant-for-LAPBC710-.patch @@ -0,0 +1,45 @@ +From f74495761df10c25a98256d16ea7465191b6e2cd Mon Sep 17 00:00:00 2001 +From: Pierre-Louis Bossart +Date: Tue, 18 Oct 2022 09:25:00 +0800 +Subject: [PATCH] soundwire: dmi-quirks: add quirk variant for LAPBC710 NUC15 +Git-commit: f74495761df10c25a98256d16ea7465191b6e2cd +Patch-mainline: v6.2-rc1 +References: git-fixes + +Some NUC15 LAPBC710 devices don't expose the same DMI information as +the Intel reference, add additional entry in the match table. + +Buglink: https://github.com/thesofproject/linux/issues/3885 +Signed-off-by: Pierre-Louis Bossart +Reviewed-by: Ranjani Sridharan +Signed-off-by: Bard Liao +Link: https://lore.kernel.org/r/20221018012500.1592994-1-yung-chuan.liao@linux.intel.com +Signed-off-by: Vinod Koul +Acked-by: Takashi Iwai + +--- + drivers/soundwire/dmi-quirks.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/drivers/soundwire/dmi-quirks.c b/drivers/soundwire/dmi-quirks.c +index f81cdd83ec26..7969881f126d 100644 +--- a/drivers/soundwire/dmi-quirks.c ++++ b/drivers/soundwire/dmi-quirks.c +@@ -90,6 +90,14 @@ static const struct dmi_system_id adr_remap_quirk_table[] = { + }, + .driver_data = (void *)intel_tgl_bios, + }, ++ { ++ /* quirk used for NUC15 LAPBC710 skew */ ++ .matches = { ++ DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"), ++ DMI_MATCH(DMI_BOARD_NAME, "LAPBC710"), ++ }, ++ .driver_data = (void *)intel_tgl_bios, ++ }, + { + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"), +-- +2.35.3 + diff --git a/patches.suse/wifi-wilc1000-sdio-fix-module-autoloading.patch b/patches.suse/wifi-wilc1000-sdio-fix-module-autoloading.patch new file mode 100644 index 0000000..441c1c9 --- /dev/null +++ b/patches.suse/wifi-wilc1000-sdio-fix-module-autoloading.patch @@ -0,0 +1,36 @@ +From 57d545b5a3d6ce3a8fb6b093f02bfcbb908973f3 Mon Sep 17 00:00:00 2001 +From: Michael Walle +Date: Thu, 27 Oct 2022 19:12:21 +0200 +Subject: [PATCH] wifi: wilc1000: sdio: fix module autoloading +Git-commit: 57d545b5a3d6ce3a8fb6b093f02bfcbb908973f3 +Patch-mainline: v6.2-rc1 +References: git-fixes + +There are no SDIO module aliases included in the driver, therefore, +module autoloading isn't working. Add the proper MODULE_DEVICE_TABLE(). + +Cc: stable@vger.kernel.org +Signed-off-by: Michael Walle +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20221027171221.491937-1-michael@walle.cc +Acked-by: Takashi Iwai + +--- + drivers/net/wireless/microchip/wilc1000/sdio.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/wireless/microchip/wilc1000/sdio.c b/drivers/net/wireless/microchip/wilc1000/sdio.c +index 7390f94cd4ca..a05bda7b9a3b 100644 +--- a/drivers/net/wireless/microchip/wilc1000/sdio.c ++++ b/drivers/net/wireless/microchip/wilc1000/sdio.c +@@ -20,6 +20,7 @@ static const struct sdio_device_id wilc_sdio_ids[] = { + { SDIO_DEVICE(SDIO_VENDOR_ID_MICROCHIP_WILC, SDIO_DEVICE_ID_MICROCHIP_WILC1000) }, + { }, + }; ++MODULE_DEVICE_TABLE(sdio, wilc_sdio_ids); + + #define WILC_SDIO_BLOCK_SIZE 512 + +-- +2.35.3 + diff --git a/series.conf b/series.conf index 4590acd..71bc565 100644 --- a/series.conf +++ b/series.conf @@ -8296,6 +8296,9 @@ patches.suse/drm-vmwgfx-Release-ttm-memory-if-probe-fails.patch patches.suse/drm-vmwgfx-Fail-to-initialize-on-broken-configs.patch patches.suse/dma_fence_array-Fix-PENDING_ERROR-leak-in-dma_fence_.patch + patches.suse/drm-i915-migrate-don-t-check-the-scratch-page.patch + patches.suse/drm-i915-migrate-fix-offset-calculation.patch + patches.suse/drm-i915-migrate-fix-length-calculation.patch patches.suse/drm-fourcc-Add-packed-10bit-YUV-4-2-0-format.patch patches.suse/drm-bridge-ti-sn65dsi86-Set-max-register-for-regmap.patch patches.suse/drm-mediatek-Use-mailbox-rx_callback-instead-of-cmdq.patch @@ -10718,6 +10721,7 @@ patches.suse/vsprintf-Fix-potential-unaligned-access.patch patches.suse/printk-Add-panic_in_progress-helper.patch patches.suse/printk-disable-optimistic-spin-during-panic.patch + patches.suse/selftests-set-the-BUILD-variable-to-absolute-path.patch patches.suse/list-test-Add-a-test-for-list_is_head.patch patches.suse/mmc-sdhci_am654-Fix-the-driver-data-of-AM64-SoC.patch patches.suse/mmc-rtsx-add-74-Clocks-in-power-on-flow.patch @@ -15457,6 +15461,7 @@ patches.suse/docs-update-mediator-information-in-CoC-docs.patch patches.suse/docs-core-api-expand-Fedora-instructions-for-GCC-plu.patch patches.suse/docs-kprobes-Fix-the-wrong-location-of-Kprobes.patch + patches.suse/ACPI-resource-Skip-IRQ-override-on-Asus-Vivobook-K34.patch patches.suse/ACPI-tables-FPDT-Don-t-call-acpi_os_map_memory-on-in.patch patches.suse/ACPI-x86-Add-a-quirk-for-Dell-Inspiron-14-2-in-1-for.patch patches.suse/ACPI-video-Add-Toshiba-Satellite-Portege-Z830-quirk.patch @@ -16655,6 +16660,7 @@ patches.suse/drm-vmwgfx-Don-t-use-screen-objects-when-SEV-is-acti.patch patches.suse/Revert-ARM-dts-imx7-Fix-NAND-controller-size-cells.patch patches.suse/media-v4l2-dv-timings.c-fix-too-strict-blanking-sani.patch + patches.suse/media-stv0288-use-explicitly-signed-char.patch patches.suse/pstore-zone-Use-GFP_ATOMIC-to-allocate-zone-buffer.patch patches.suse/pstore-ram-Fix-error-return-code-in-ramoops_probe.patch patches.suse/pstore-Avoid-kcore-oops-by-vmap-ing-with-VM_IOREMAP.patch @@ -16734,6 +16740,7 @@ patches.suse/sched-uclamp-Fix-relationship-between-uclamp-and-mig.patch patches.suse/sched-uclamp-Make-task_fits_capacity-use-util_fits_c.patch patches.suse/sched-Clear-ttwu_pending-after-enqueue_task.patch + patches.suse/selftests-Use-optional-USERCFLAGS-and-USERLDFLAGS.patch patches.suse/selftests-ftrace-event_triggers-wait-longer-for-test.patch patches.suse/selftests-efivarfs-Add-checking-of-the-test-return-v.patch patches.suse/Documentation-devres-add-missing-PWM-helper.patch @@ -16755,6 +16762,7 @@ patches.suse/ALSA-seq-fix-undefined-behavior-in-bit-shift-for-SND.patch patches.suse/ALSA-asihpi-fix-missing-pci_disable_device.patch patches.suse/ALSA-pcm-Set-missing-stop_operating-flag-at-undoing-.patch + patches.suse/ALSA-patch_realtek-Fix-Dell-Inspiron-Plus-16.patch patches.suse/ALSA-mts64-fix-possible-null-ptr-defer-in-snd_mts64_.patch patches.suse/ASoC-codecs-rt298-Add-quirk-for-KBL-R-RVP-platform.patch patches.suse/ASoC-jz4740-i2s-Handle-independent-FIFO-flush-bits.patch @@ -16785,6 +16793,7 @@ patches.suse/media-si470x-Fix-use-after-free-in-si470x_int_in_cal.patch patches.suse/drm-edid-Fix-minimum-bpc-supported-with-DSC1.2-for-H.patch patches.suse/drm-bridge-adv7533-remove-dynamic-lane-switching-fro.patch + patches.suse/drm-connector-send-hotplug-uevent-on-connector-clean.patch patches.suse/drm-vmwgfx-Fix-a-sparse-warning-in-kernel-docs.patch patches.suse/drm-rockchip-lvds-fix-PM-usage-counter-unbalance-in-.patch patches.suse/drm-vmwgfx-Validate-the-box-size-for-the-snooped-cur.patch @@ -16844,6 +16853,7 @@ patches.suse/Input-wistron_btns-disable-on-UML.patch patches.suse/HID-hid-sensor-custom-set-fixed-size-for-custom-attr.patch patches.suse/ipmi-kcs-Poll-OBF-briefly-to-reduce-OBE-latency.patch + patches.suse/ipmi-fix-long-wait-in-unload-when-IPMI-disconnect.patch patches.suse/ipmi-fix-memleak-when-unload-ipmi-driver.patch patches.suse/ipmi-fix-use-after-free-in-_ipmi_destroy_user.patch patches.suse/mmc-alcor-fix-return-value-check-of-mmc_add_host.patch @@ -16882,7 +16892,9 @@ patches.suse/clk-qcom-lpass-sc7180-Fix-pm_runtime-usage.patch patches.suse/clk-qcom-clk-krait-fix-wrong-div2-functions.patch patches.suse/efi-Add-iMac-Pro-2017-to-uefi-skip-cert-quirk.patch + patches.suse/ima-Fix-a-potential-NULL-pointer-access-in-ima_resto.patch patches.suse/integrity-Fix-memory-leakage-in-keyring-allocation-e.patch + patches.suse/ARM-9256-1-NWFPE-avoid-compiler-generated-__aeabi_ul.patch patches.suse/ibmveth-Always-stop-tx-queues-during-close.patch patches.suse/can-m_can-is_lec_err-clean-up-LEC-error-handling.patch patches.suse/can-kvaser_usb_leaf-Set-Warning-state-even-without-b.patch @@ -16896,6 +16908,7 @@ patches.suse/wifi-ath9k-hif_usb-Fix-use-after-free-in-ath9k_hif_u.patch patches.suse/wifi-ath9k-verify-the-expected-usb_endpoints-are-pre.patch patches.suse/wifi-ar5523-Fix-use-after-free-on-ar5523_cmd-timed-o.patch + patches.suse/wifi-wilc1000-sdio-fix-module-autoloading.patch patches.suse/wifi-brcmfmac-Fix-potential-shift-out-of-bounds-in-b.patch patches.suse/wifi-rsi-Fix-handling-of-802.3-EAPOL-frames-sent-via.patch patches.suse/wifi-rtw89-use-u32_encode_bits-to-fill-MAC-quota-val.patch @@ -16965,6 +16978,7 @@ patches.suse/RDMA-hns-Fix-error-code-of-CMD.patch patches.suse/RDMA-hns-Fix-XRC-caps-on-HIP08.patch patches.suse/IB-IPoIB-Fix-queue-count-inconsistency-for-PKEY-chil.patch + patches.suse/PCI-Fix-pci_device_is_present-for-VFs-by-checking-PF.patch patches.suse/PCI-Check-for-alloc-failure-in-pci_request_irq.patch patches.suse/PCI-sysfs-Fix-double-free-in-error-path.patch patches.suse/PCI-dwc-Fix-n_fts-array-overrun.patch @@ -17082,8 +17096,11 @@ patches.suse/powerpc-export-the-CPU-node-count.patch patches.suse/powerpc-Take-in-account-addition-CPU-node-when-build.patch patches.suse/powerpc-pseries-unregister-VPA-when-hot-unplugging-a.patch + patches.suse/powerpc-rtas-avoid-device-tree-lookups-in-rtas_os_te.patch + patches.suse/powerpc-rtas-avoid-scheduling-in-rtas_os_term.patch patches.suse/powerpc-pseries-eeh-use-correct-API-for-error-log-si.patch patches.suse/phy-usb-s2-WoL-wakeup_count-not-incremented-for-USB-.patch + patches.suse/soundwire-dmi-quirks-add-quirk-variant-for-LAPBC710-.patch patches.suse/Documentation-devres-add-missing-devm_acpi_dma_contr.patch patches.suse/dmaengine-idxd-Fix-crc_val-field-for-completion-reco.patch patches.suse/rtc-ds1347-fix-value-written-to-century-register.patch @@ -17116,12 +17133,15 @@ patches.suse/remoteproc-qcom_q6v5_pas-detach-power-domains-on-rem.patch patches.suse/remoteproc-qcom_q6v5_pas-Fix-missing-of_node_put-in-.patch patches.suse/remoteproc-qcom-q6v5-Fix-missing-clk_disable_unprepa.patch + patches.suse/remoteproc-core-Do-pm_relax-when-in-RPROC_OFFLINE-st.patch patches.suse/pwm-tegra-Improve-required-rate-calculation.patch patches.suse/pwm-sifive-Call-pwm_sifive_update_clock-while-mutex-.patch patches.suse/pwm-lpc18xx-sct-Fix-a-comment-to-match-code.patch patches.suse/pwm-mediatek-always-use-bus-clock-for-PWM-on-MT7622.patch patches.suse/HID-mcp2221-don-t-connect-hidraw.patch patches.suse/HID-wacom-Ensure-bootloader-PID-is-usable-in-hidraw-.patch + patches.suse/HID-multitouch-fix-Asus-ExpertBook-P2-P2451FA-trackp.patch + patches.suse/HID-plantronics-Additional-PIDs-for-double-volume-ke.patch patches.suse/cifs-set-correct-tcon-status-after-initial-tree-connect.patch patches.suse/cifs-set-correct-ipc-status-after-initial-tree-connect.patch patches.suse/cifs-reduce-roundtrips-on-create-qinfo-requests.patch @@ -17144,6 +17164,8 @@ patches.suse/cifs-update-internal-module-number-aacfc939.patch patches.suse/scsi-qla2xxx-Fix-crash-when-I-O-abort-times-out.patch patches.suse/0001-mm-mempolicy-fix-memory-leak-in-set_mempolicy_home_n.patch + patches.suse/drm-amdgpu-make-display-pinning-more-flexible-v2.patch + patches.suse/drm-amdgpu-handle-polaris10-11-overlap-asics-v2.patch patches.suse/drm-i915-Fix-documentation-for-intel_uncore_forcewak.patch patches.suse/drm-i915-display-Don-t-disable-DDI-Transcoder-when-s.patch patches.suse/ALSA-hda-hdmi-Add-HP-Device-0x8711-to-force-connect-.patch @@ -17155,11 +17177,15 @@ patches.suse/ASoC-mediatek-mt8183-fix-refcount-leak-in-mt8183_mt6.patch patches.suse/ASoC-wm8994-Fix-potential-deadlock.patch patches.suse/ASoC-rockchip-spdif-Add-missing-clk_disable_unprepar.patch + patches.suse/ASoC-Intel-bytcr_rt5640-Add-quirk-for-the-Advantech-.patch patches.suse/ASoC-rt5670-Remove-unbalanced-pm_runtime_put.patch patches.suse/pstore-Switch-pmsg_lock-to-an-rt_mutex-to-avoid-prio.patch patches.suse/pstore-Make-sure-CONFIG_PSTORE_PMSG-selects-CONFIG_R.patch patches.suse/pstore-Properly-assign-mem_type-property.patch patches.suse/regulator-core-fix-deadlock-on-regulator-enable.patch + patches.suse/ALSA-line6-correct-midi-status-byte-when-receiving-d.patch + patches.suse/ALSA-line6-fix-stack-overflow-in-line6_midi_transmit.patch + patches.suse/ALSA-hda-realtek-Apply-dual-codec-fixup-for-Dell-Lat.patch patches.suse/ata-ahci-Fix-PCS-quirk-application-for-suspend.patch patches.suse/btrfs-fix-resolving-backrefs-for-inline-extent-follo.patch patches.suse/x86-kexec-Fix-double-free-of-elf-header-buffer.patch @@ -17186,6 +17212,7 @@ patches.suse/drm-i915-gvt-fix-vgpu-debugfs-clean-in-remove.patch patches.suse/Revert-usb-ulpi-defer-ulpi_register-on-ulpi_read_id-.patch patches.suse/cifs-Fix-kmap_local_page-unmapping.patch + patches.suse/nfc-pn533-Wait-for-out_urb-s-completion-in-pn533_usb.patch # mkp/scsi fixes patches.suse/scsi-mpt3sas-Remove-usage-of-dma_get_required_mask-A.patch @@ -17289,6 +17316,9 @@ patches.suse/arm64-dts-s32g2-add-USDHC-support.patch patches.suse/arm64-set-UXN-on-swapper-page-tables.patch + # bsc#1203219 + patches.suse/arm64-Avoid-repeated-AA64MMFR1_EL1-register-read-on-.patch + ######################################################## # Scheduler ########################################################