Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2026-04-28 11:54:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kernel-source (Old) and /work/SRC/openSUSE:Factory/.kernel-source.new.11940 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source" Tue Apr 28 11:54:25 2026 rev:836 rq:1349044 version:7.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes 2026-04-15 16:05:59.326497033 +0200 +++ /work/SRC/openSUSE:Factory/.kernel-source.new.11940/dtb-aarch64.changes 2026-04-28 11:55:07.394380588 +0200 @@ -1,0 +2,214 @@ +Thu Apr 23 13:47:57 CEST 2026 - [email protected] + +- Re-enable ARM architectures and update configs + Rather late (well, that's an understatement) but better than never. +- commit 46dfbfa + +------------------------------------------------------------------- +Thu Apr 23 07:48:18 CEST 2026 - [email protected] + +- Update config files. Set INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON=y (bsc#1262308) + The same as for SL-16.*. +- commit ccbbbdf + +------------------------------------------------------------------- +Thu Apr 23 06:59:07 CEST 2026 - [email protected] + +- Linux 7.0.1 (bsc#1012628). +- clockevents: Add missing resets of the next_event_forced flag + (bsc#1012628). +- mm/userfaultfd: fix hugetlb fault mutex hash calculation + (bsc#1012628). +- media: hackrf: fix to not free memory after the device is + registered in hackrf_probe() (bsc#1012628). +- media: vidtv: fix pass-by-value structs causing MSAN warnings + (bsc#1012628). +- nilfs2: fix NULL i_assoc_inode dereference in + nilfs_mdt_save_to_shadow_map (bsc#1012628). +- media: as102: fix to not free memory after the device is + registered in as102_usb_probe() (bsc#1012628). +- wireguard: device: use exit_rtnl callback instead of manual + rtnl_lock in pre_exit (bsc#1012628). +- bcache: fix cached_dev.sb_bio use-after-free and crash + (bsc#1012628). +- ALSA: 6fire: fix use-after-free on disconnect (bsc#1012628). +- hwmon: (powerz) Fix use-after-free on USB disconnect + (bsc#1012628). +- media: em28xx: fix use-after-free in em28xx_v4l2_open() + (bsc#1012628). +- media: mediatek: vcodec: fix use-after-free in encoder release + path (bsc#1012628). +- media: vidtv: fix nfeeds state corruption on start_streaming + failure (bsc#1012628). +- mm: blk-cgroup: fix use-after-free in cgwb_release_workfn() + (bsc#1012628). +- mm/kasan: fix double free for kasan pXds (bsc#1012628). +- ASoC: qcom: q6apm: move component registration to unmanaged + version (bsc#1012628). +- KVM: x86: Use scratch field in MMIO fragment to hold small + write values (bsc#1012628). +- x86-64/arm64/powerpc: clean up and rename + __copy_from_user_flushcache (bsc#1012628). +- x86: rename and clean up __copy_from_user_inatomic_nocache() + (bsc#1012628). +- x86-64: rename misleadingly named '__copy_user_nocache()' + function (bsc#1012628). +- checkpatch: add support for Assisted-by tag (bsc#1012628). +- mm: call ->free_folio() directly in folio_unmap_invalidate() + (bsc#1012628). +- KVM: SEV: Drop WARN on large size for + KVM_MEMORY_ENCRYPT_REG_REGION (bsc#1012628). +- KVM: SEV: Lock all vCPUs when synchronzing VMSAs for SNP launch + finish (bsc#1012628). +- KVM: SEV: Disallow LAUNCH_FINISH if vCPUs are actively being + created (bsc#1012628). +- KVM: SEV: Protect *all* of sev_mem_enc_register_region() + with kvm->lock (bsc#1012628). +- KVM: SEV: Reject attempts to sync VMSA of an + already-launched/encrypted vCPU (bsc#1012628). +- KVM: selftests: Remove duplicate LAUNCH_UPDATE_VMSA call in + SEV-ES migrate test (bsc#1012628). +- PCI: endpoint: pci-epf-vntb: Remove duplicate resource teardown + (bsc#1012628). +- PCI: endpoint: pci-epf-vntb: Stop cmd_handler work in + epf_ntb_epc_cleanup (bsc#1012628). +- ocfs2: handle invalid dinode in ocfs2_group_extend + (bsc#1012628). +- ocfs2: fix use-after-free in ocfs2_fault() when VM_FAULT_RETRY + (bsc#1012628). +- ocfs2: fix possible deadlock between unlink and dio_end_io_write + (bsc#1012628). +- media: vidtv: fix NULL pointer dereference in + vidtv_channel_pmt_match_sections (bsc#1012628). +- arm64: mm: Handle invalid large leaf mappings correctly + (bsc#1012628). +- vfio/xe: Reorganize the init to decouple migration from reset + (bsc#1012628). +- dcache: Limit the minimal number of bucket to two (bsc#1012628). +- ALSA: ctxfi: Limit PTP to a single page (bsc#1012628). +- Docs/admin-guide/mm/damon/lru_sort: warn commit_inputs vs + param updates race (bsc#1012628). +- Docs/admin-guide/mm/damon/reclaim: warn commit_inputs vs param + updates race (bsc#1012628). +- USB: serial: option: add Telit Cinterion FN990A MBIM composition + (bsc#1012628). +- selftests/mm: hmm-tests: don't hardcode THP size to 2MB + (bsc#1012628). +- staging: sm750fb: fix division by zero in ps_to_hz() + (bsc#1012628). +- wifi: rtw88: fix device leak on probe failure (bsc#1012628). +- scripts: generate_rust_analyzer.py: avoid FD leak (bsc#1012628). +- scripts/gdb/symbols: handle module path parameters + (bsc#1012628). +- fbdev: udlfb: avoid divide-by-zero on FBIOPUT_VSCREENINFO + (bsc#1012628). +- usb: port: add delay after usb_hub_set_port_power() + (bsc#1012628). +- usb: gadget: f_hid: don't call cdev_init while cdev in use + (bsc#1012628). +- USB: cdc-acm: Add quirks for Yoga Book 9 14IAH10 INGENIC + touchscreen (bsc#1012628). +- usb: storage: Expand range of matched versions for VL817 quirks + entry (bsc#1012628). +- usb: typec: fusb302: Switch to threaded IRQ handler + (bsc#1012628). +- usbip: validate number_of_packets in usbip_pack_ret_submit() + (bsc#1012628). +- smb: server: avoid double-free in smb_direct_free_sendmsg + after smb_direct_flush_send_list() (bsc#1012628). +- smb: client: avoid double-free in smbd_free_send_io() after + smbd_send_batch_flush() (bsc#1012628). +- ksmbd: fix mechToken leak when SPNEGO decode fails after token + alloc (bsc#1012628). +- ksmbd: require 3 sub-authorities before reading sub_auth[2] + (bsc#1012628). +- ksmbd: validate EaNameLength in smb2_get_ea() (bsc#1012628). +- smb: client: fix OOB reads parsing symlink error response + (bsc#1012628). +- smb: client: fix off-by-8 bounds check in check_wsl_eas() + (bsc#1012628). +- usb: gadget: renesas_usb3: validate endpoint index in standard + request handlers (bsc#1012628). +- usb: gadget: f_phonet: fix skb frags[] overflow in + pn_rx_complete() (bsc#1012628). +- usb: gadget: f_ncm: validate minimum block_len in + ncm_unwrap_ntb() (bsc#1012628). +- fbdev: tdfxfb: avoid divide-by-zero on FBIOPUT_VSCREENINFO + (bsc#1012628). +- ALSA: fireworks: bound device-supplied status before string + array lookup (bsc#1012628). +- ALSA: usx2y: us144mkii: fix NULL deref on missing interface 0 + (bsc#1012628). +- bnge: return after auxiliary_device_uninit() in error path + (bsc#1012628). +- drm/vc4: platform_get_irq_byname() returns an int (bsc#1012628). +- NFC: digital: Bounds check NFC-A cascade depth in SDD response + handler (bsc#1012628). +- net: usb: cdc-phonet: fix skb frags[] overflow in rx_complete() + (bsc#1012628). +- HID: core: clamp report_size in s32ton() to avoid undefined + shift (bsc#1012628). +- HID: alps: fix NULL pointer dereference in alps_raw_event() + (bsc#1012628). +- staging: rtl8723bs: initialize le_tmp64 in rtw_BIP_verify() + (bsc#1012628). +- i2c: s3c24xx: check the size of the SMBUS message before using + it (bsc#1012628). +- can: raw: fix ro->uniq use-after-free in raw_rcv() + (bsc#1012628). +- x86/CPU: Fix FPDSS on Zen1 (bsc#1012628). +- nfc: llcp: add missing return after LLCP_CLOSED checks + (bsc#1012628). +- commit a523726 + +------------------------------------------------------------------- +Mon Apr 20 18:41:46 CEST 2026 - [email protected] + +- usb: gadget: f_hid: Add missing error code (git-fixes). +- bcache: fix uninitialized closure object (git-fixes). +- commit dbb12f6 + +------------------------------------------------------------------- +Mon Apr 20 08:31:39 CEST 2026 - [email protected] + +- Update config files. Enable TPS68470 drivers (bsc#1261843) +- commit 9e15f59 + +------------------------------------------------------------------- +Fri Apr 17 12:33:37 CEST 2026 - [email protected] + +- Update config files: (re-)enable CONFIG_TN3270*=y (bsc#1243081) +- commit a9c6a75 + +------------------------------------------------------------------- +Fri Apr 17 10:50:17 CEST 2026 - [email protected] + +- writeback: Fix use after free in inode_switch_wbs_work_fn() + (bsc#1259701). +- commit 5021f62 + +------------------------------------------------------------------- +Mon Apr 13 08:13:43 CEST 2026 - [email protected] + +- Refresh + patches.suse/selftests-bpf-Support-when-CONFIG_VXLAN-m.patch. + Fix upstream status. +- commit 9f6830f + +------------------------------------------------------------------- +Mon Apr 13 08:03:11 CEST 2026 - [email protected] + +- Delete + patches.suse/locking-qspinlock-Save-previous-node-owner-CPU-into-.patch. + This was a debugging aid for bsc#1258936. It is no longer needed. +- commit e54d311 + +------------------------------------------------------------------- +Mon Apr 13 00:18:41 CEST 2026 - [email protected] + +- update to 7.0 final + - refresh configs + - rebase patch patches.suse/vfs-add-super_operations-get_inode_dev +- commit 5844293 + +------------------------------------------------------------------- @@ -593,0 +808,11 @@ +Mon Apr 6 00:50:01 CEST 2026 - [email protected] + +- update to 7.0-rc7 + - refresh configs + - update config for s390 + - CONFIG_DRM_SCHED=n + - CONFIG_FB_DMAMEM_HELPERS=n + - CONFIG_FB_DMAMEM_HELPERS_DEFERRED=n +- commit 4589aa2 + +------------------------------------------------------------------- @@ -1228,0 +1454,4 @@ +- Update config files. + Disable DRM_ACCEL_ARM_ETHOSU on non-ARM kernels. The Ethos-U65/U85 + NPU is only found on ARM systems so there it no point in including + this driver in other kernels. @@ -1246,0 +1476,9 @@ +Mon Mar 30 01:04:28 CEST 2026 - [email protected] + +- update to 7.0-rc6 +- refresh configs +- drop upstreamed patch + - patches.suse/perf-metricgroup-Fix-metricgroup__has_metric_or_grou.patch +- commit 3e993d7 + +------------------------------------------------------------------- @@ -1267,0 +1506,12 @@ +Wed Mar 25 12:22:33 CET 2026 - [email protected] + +- mfd: bcm2835-pm: Add BCM2712 PM device support (jsc#PED-13236). +- commit 3aee44d + +------------------------------------------------------------------- +Wed Mar 25 12:16:18 CET 2026 - [email protected] + +- mfd: bcm2835-pm: Introduce SoC-specific type identifier (jsc#PED-13236). +- commit 3ff8346 + +------------------------------------------------------------------- @@ -1669,0 +1920,7 @@ +Sun Mar 22 23:15:20 CET 2026 - [email protected] + +- update to 7.0-rc5 +- refresh configs +- commit fd8bc21 + +------------------------------------------------------------------- @@ -2374,0 +2632,14 @@ +Tue Mar 17 09:53:45 CET 2026 - [email protected] + +- Use unified maintainers' email address +- commit cfbe674 + +------------------------------------------------------------------- +Sun Mar 15 23:24:48 CET 2026 - [email protected] + +- update to 7.0-rc4 +- Refresh configs + - CONFIG_I3C_OR_I2C=m (or =y) +- commit 6fe07f4 + +------------------------------------------------------------------- @@ -3063 +3334,5 @@ -- commit c5b4bda + (cherry picked from commit c5b4bda2b7408b9f41e59f4864d810545a3e9584) +- Refresh + patches.suse/media-ipu-bridge-Add-upside-down-sensor-DMI-quirk-fo.patch. + Update upstream status. +- commit 2baf4af @@ -3090 +3365,4 @@ -- commit 9f05903 + (cherry picked from commit 9f059031058de3c3d10be404c21b7c0cd7c7b90c) +- media: ipu-bridge: Add upside-down sensor DMI quirk for Dell + XPS 13 9340 and XPS 14 9440 (bsc#1259459). +- commit 33069f3 @@ -3125,0 +3404,2 @@ +- perf metricgroup: Fix metricgroup__has_metric_or_groups + (bsc#1259358). @@ -3128,0 +3409,7 @@ +Mon Mar 9 11:56:41 CET 2026 - [email protected] + +- Refresh patches.rpmify/certs-Replace-openssl-invocation-with-OPENSSL.patch ++++ 215 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes ++++ and /work/SRC/openSUSE:Factory/.kernel-source.new.11940/dtb-aarch64.changes dtb-armv6l.changes: same change dtb-armv7l.changes: same change dtb-riscv64.changes: same change kernel-64kb.changes: same change kernel-default.changes: same change kernel-docs.changes: same change kernel-kvmsmall.changes: same change kernel-lpae.changes: same change kernel-obs-build.changes: same change kernel-obs-qa.changes: same change kernel-pae.changes: same change kernel-source.changes: same change kernel-syms.changes: same change kernel-vanilla.changes: same change kernel-zfcpdump.changes: same change Old: ---- linux-6.19.tar.sign linux-6.19.tar.xz New: ---- linux-7.0.tar.sign linux-7.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dtb-aarch64.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:32.639436811 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:32.643436978 +0200 @@ -16,8 +16,8 @@ # -%define srcversion 6.19 -%define patchversion 6.19.12 +%define srcversion 7.0 +%define patchversion 7.0.1 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -25,9 +25,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,arch-symbols,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: dtb-aarch64 -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif @@ -42,7 +42,7 @@ %define dtbdir /boot/dtb-%kernelrelease -Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz +Source0: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc Source14: series.conf Source16: guards dtb-armv6l.spec: same change dtb-armv7l.spec: same change dtb-riscv64.spec: same change ++++++ kernel-64kb.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:32.811444027 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:32.815444195 +0200 @@ -17,9 +17,9 @@ # needssslcertforbuild -%define srcversion 6.19 -%define patchversion 6.19.12 -%define git_commit c7234f7435aefeda97031bd56ce6912c3fe2a3ce +%define srcversion 7.0 +%define patchversion 7.0.1 +%define git_commit 7cb5b59b438eeb1eff7197a4aa2436724f83737b %define variant %{nil} %define compress_modules zstd %define compress_vmlinux xz @@ -40,9 +40,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,arch-symbols,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-64kb -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif @@ -173,7 +173,7 @@ echo -n "$space$cert" ; space=" " \ done ) -Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz +Source0: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc Source14: series.conf Source16: guards kernel-default.spec: same change ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:32.899447719 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:32.903447887 +0200 @@ -16,9 +16,9 @@ # -%define srcversion 6.19 -%define patchversion 6.19.12 -%define git_commit c7234f7435aefeda97031bd56ce6912c3fe2a3ce +%define srcversion 7.0 +%define patchversion 7.0.1 +%define git_commit 7cb5b59b438eeb1eff7197a4aa2436724f83737b %define variant %{nil} %define build_html 1 %define build_pdf 0 @@ -28,9 +28,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,arch-symbols,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-docs -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif @@ -85,7 +85,7 @@ %endif %endif BuildArch: noarch -Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz +Source0: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc Source14: series.conf Source16: guards ++++++ kernel-kvmsmall.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:32.951449901 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:32.955450069 +0200 @@ -17,9 +17,9 @@ # needssslcertforbuild -%define srcversion 6.19 -%define patchversion 6.19.12 -%define git_commit c7234f7435aefeda97031bd56ce6912c3fe2a3ce +%define srcversion 7.0 +%define patchversion 7.0.1 +%define git_commit 7cb5b59b438eeb1eff7197a4aa2436724f83737b %define variant %{nil} %define compress_modules zstd %define compress_vmlinux xz @@ -40,9 +40,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,arch-symbols,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-kvmsmall -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif @@ -173,7 +173,7 @@ echo -n "$space$cert" ; space=" " \ done ) -Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz +Source0: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc Source14: series.conf Source16: guards kernel-lpae.spec: same change ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:33.035453426 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:33.039453593 +0200 @@ -19,7 +19,7 @@ #!BuildIgnore: post-build-checks -%define patchversion 6.19.12 +%define patchversion 7.0.1 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -38,23 +38,23 @@ %endif %endif %endif -%global kernel_package kernel%kernel_flavor-srchash-c7234f7435aefeda97031bd56ce6912c3fe2a3ce +%global kernel_package kernel%kernel_flavor-srchash-7cb5b59b438eeb1eff7197a4aa2436724f83737b %endif %if 0%{?rhel_version} %global kernel_package kernel %endif Name: kernel-obs-build -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif Summary: package kernel and initrd for OBS VM builds License: GPL-2.0-only Group: SLES -Provides: kernel-obs-build-srchash-c7234f7435aefeda97031bd56ce6912c3fe2a3ce +Provides: kernel-obs-build-srchash-7cb5b59b438eeb1eff7197a4aa2436724f83737b BuildRequires: coreutils BuildRequires: device-mapper BuildRequires: dracut ++++++ kernel-obs-qa.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:33.083455439 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:33.083455439 +0200 @@ -17,15 +17,15 @@ # needsrootforbuild -%define patchversion 6.19.12 +%define patchversion 7.0.1 %define variant %{nil} %include %_sourcedir/kernel-spec-macros Name: kernel-obs-qa -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif @@ -36,7 +36,7 @@ # kernel-obs-build must be also configured as VMinstall, but is required # here as well to avoid that qa and build package build parallel %if ! 0%{?qemu_user_space_build} -BuildRequires: kernel-obs-build-srchash-c7234f7435aefeda97031bd56ce6912c3fe2a3ce +BuildRequires: kernel-obs-build-srchash-7cb5b59b438eeb1eff7197a4aa2436724f83737b %endif BuildRequires: modutils ExclusiveArch: aarch64 armv6hl armv7hl ppc64le riscv64 s390x x86_64 ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:33.131457453 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:33.135457621 +0200 @@ -17,9 +17,9 @@ # needssslcertforbuild -%define srcversion 6.19 -%define patchversion 6.19.12 -%define git_commit c7234f7435aefeda97031bd56ce6912c3fe2a3ce +%define srcversion 7.0 +%define patchversion 7.0.1 +%define git_commit 7cb5b59b438eeb1eff7197a4aa2436724f83737b %define variant %{nil} %define compress_modules zstd %define compress_vmlinux xz @@ -40,9 +40,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,arch-symbols,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-pae -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif @@ -173,7 +173,7 @@ echo -n "$space$cert" ; space=" " \ done ) -Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz +Source0: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc Source14: series.conf Source16: guards ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:33.175459299 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:33.175459299 +0200 @@ -16,9 +16,9 @@ # -%define srcversion 6.19 -%define patchversion 6.19.12 -%define git_commit c7234f7435aefeda97031bd56ce6912c3fe2a3ce +%define srcversion 7.0 +%define patchversion 7.0.1 +%define git_commit 7cb5b59b438eeb1eff7197a4aa2436724f83737b %define variant %{nil} %define gcc_package gcc %define gcc_compiler gcc @@ -28,9 +28,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,arch-symbols,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-source -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif @@ -56,9 +56,9 @@ %define _rpmmacrodir /etc/rpm %endif -Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz -%if "https://www.kernel.org/pub/linux/kernel/v6.x/" != "" -Source1: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.sign +Source0: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%srcversion.tar.xz +%if "https://www.kernel.org/pub/linux/kernel/v7.x/" != "" +Source1: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%srcversion.tar.sign Source2: linux.keyring %endif Source3: kernel-source.rpmlintrc ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:33.215460977 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:33.219461145 +0200 @@ -16,15 +16,15 @@ # -%define git_commit c7234f7435aefeda97031bd56ce6912c3fe2a3ce +%define git_commit 7cb5b59b438eeb1eff7197a4aa2436724f83737b %define variant %{nil} %include %_sourcedir/kernel-spec-macros Name: kernel-syms -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:33.267463159 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:33.271463327 +0200 @@ -17,9 +17,9 @@ # needssslcertforbuild -%define srcversion 6.19 -%define patchversion 6.19.12 -%define git_commit c7234f7435aefeda97031bd56ce6912c3fe2a3ce +%define srcversion 7.0 +%define patchversion 7.0.1 +%define git_commit 7cb5b59b438eeb1eff7197a4aa2436724f83737b %define variant %{nil} %define compress_modules zstd %define compress_vmlinux xz @@ -40,9 +40,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,arch-symbols,check-module-license,splitflist,mergedep,moddep,modflist,kernel-subpackage-build}) Name: kernel-vanilla -Version: 6.19.12 +Version: 7.0.1 %if 0%{?is_kotd} -Release: <RELEASE>.gc7234f7 +Release: <RELEASE>.g7cb5b59 %else Release: 0 %endif @@ -173,7 +173,7 @@ echo -n "$space$cert" ; space=" " \ done ) -Source0: https://www.kernel.org/pub/linux/kernel/v6.x/linux-%srcversion.tar.xz +Source0: https://www.kernel.org/pub/linux/kernel/v7.x/linux-%srcversion.tar.xz Source3: kernel-source.rpmlintrc Source14: series.conf Source16: guards kernel-zfcpdump.spec: same change ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:33.527474067 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:33.531474235 +0200 @@ -1,6 +1,6 @@ -mtime: 1776015454 -commit: c7268608529ca390f3bcf2977362fe7abb50312033deed7b52dff80c61b7b277 +mtime: 1777003467 +commit: f4273a1fdbeaa14cc479e1a79049ec17e8752fba58b6197a28e446c9be0f572d url: https://src.opensuse.org/jirislaby/kernel-source -revision: c7268608529ca390f3bcf2977362fe7abb50312033deed7b52dff80c61b7b277 +revision: f4273a1fdbeaa14cc479e1a79049ec17e8752fba58b6197a28e446c9be0f572d trackingbranch: Kernel/stable ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-04-24 06:04:27.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ config.sh ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:33.803485647 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:33.807485815 +0200 @@ -1,5 +1,5 @@ # The version of the main tarball to use -SRCVERSION=6.19 +SRCVERSION=7.0 # variant of the kernel-source package, either empty or "-rt" VARIANT= # enable kernel module compression ++++++ config.tar.bz2 ++++++ ++++ 8138 lines of diff (skipped) ++++++ linux-6.19.tar.xz -> linux-7.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/kernel-source/linux-6.19.tar.xz /work/SRC/openSUSE:Factory/.kernel-source.new.11940/linux-7.0.tar.xz differ: char 15, line 1 ++++++ patches.kernel.org.tar.bz2 ++++++ ++++ 298656 lines of diff (skipped) ++++++ patches.rpmify.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.rpmify/btf-pahole-j1-option.patch new/patches.rpmify/btf-pahole-j1-option.patch --- old/patches.rpmify/btf-pahole-j1-option.patch 2026-03-05 07:13:19.000000000 +0100 +++ new/patches.rpmify/btf-pahole-j1-option.patch 2026-03-09 12:07:34.000000000 +0100 @@ -16,12 +16,12 @@ --- a/scripts/Makefile.btf +++ b/scripts/Makefile.btf -@@ -14,14 +14,14 @@ endif +@@ -7,14 +7,14 @@ JOBS := $(patsubst -j%,%,$(filter -j%,$(MAKEFLAGS))) - pahole-flags-$(call test-ge, $(pahole-ver), 121) += --btf_gen_floats + ifeq ($(call test-le, $(pahole-ver), 125),y) --pahole-flags-$(call test-ge, $(pahole-ver), 122) += -j$(JOBS) -+pahole-flags-$(call test-ge, $(pahole-ver), 122) += -j1 +-pahole-flags-y += --btf_gen_floats -j$(JOBS) ++pahole-flags-y += --btf_gen_floats -j1 pahole-flags-$(call test-ge, $(pahole-ver), 125) += --skip_encoding_btf_inconsistent_proto --btf_gen_optimized diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.rpmify/certs-Replace-openssl-invocation-with-OPENSSL.patch new/patches.rpmify/certs-Replace-openssl-invocation-with-OPENSSL.patch --- old/patches.rpmify/certs-Replace-openssl-invocation-with-OPENSSL.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.rpmify/certs-Replace-openssl-invocation-with-OPENSSL.patch 2026-03-09 12:07:34.000000000 +0100 @@ -0,0 +1,79 @@ +From: Takashi Iwai <[email protected]> +Subject: [PATCH] certs: Replace openssl invocation with $OPENSSL +Patch-mainline: Not yet, a temporary workaround +References: bsc#1259065 + +This allows us to use another openssl or a dummy-tools script, in case +the build system misses or has an outdated openssl in the standard +path. + +Signed-off-by: Takashi Iwai <[email protected]> +--- + Makefile | 2 ++ + certs/Kconfig | 2 +- + certs/Makefile | 2 +- + 3 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 2b15f0b4a0cb..dd4a1ca4c973 100644 +--- a/Makefile ++++ b/Makefile +@@ -541,6 +541,7 @@ LEX = flex + YACC = bison + AWK = awk + INSTALLKERNEL := installkernel ++OPENSSL = openssl + PERL = perl + PYTHON3 = python3 + CHECK = sparse +@@ -631,6 +632,7 @@ export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD + export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN + export HOSTRUSTC KBUILD_HOSTRUSTFLAGS + export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL ++export OPENSSL + export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX + export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD TAR + export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS KBUILD_PROCMACROLDFLAGS LDFLAGS_MODULE +diff --git a/certs/Kconfig b/certs/Kconfig +index 8e39a80c7abe..25ff9144a968 100644 +--- a/certs/Kconfig ++++ b/certs/Kconfig +@@ -188,7 +188,7 @@ config SYSTEM_BLACKLIST_AUTH_UPDATE + payload. Blacklist keys cannot be removed. + + config OPENSSL_SUPPORTS_ML_DSA +- def_bool $(success, openssl list -key-managers | grep -q ML-DSA-87) ++ def_bool $(success, $(OPENSSL) list -key-managers | grep -q ML-DSA-87) + help + Support for ML-DSA-44/65/87 was added in openssl-3.5, so as long + as older versions are supported, the key types may only be +diff --git a/certs/Makefile b/certs/Makefile +index 3ee1960f9f4a..212baf6a7439 100644 +--- a/certs/Makefile ++++ b/certs/Makefile +@@ -48,7 +48,7 @@ keytype-$(CONFIG_MODULE_SIG_KEY_TYPE_MLDSA_65) := -newkey ml-dsa-65 + keytype-$(CONFIG_MODULE_SIG_KEY_TYPE_MLDSA_87) := -newkey ml-dsa-87 + + quiet_cmd_gen_key = GENKEY $@ +- cmd_gen_key = openssl req -new -nodes -utf8 -$(CONFIG_MODULE_SIG_HASH) -days 36500 \ ++ cmd_gen_key = $(OPENSSL) req -new -nodes -utf8 -$(CONFIG_MODULE_SIG_HASH) -days 36500 \ + -batch -x509 -config $< \ + -outform PEM -out $@ -keyout $@ $(keytype-y) 2>&1 + +diff --git a/scripts/dummy-tools/openssl b/scripts/dummy-tools/openssl +new file mode 100755 +index 000000000000..9dce8cd6517b +--- /dev/null ++++ b/scripts/dummy-tools/openssl +@@ -0,0 +1,8 @@ ++#!/bin/sh ++ ++# called from certs/Kconfig via scripts/openssl_supports_ml_dsa.sh ++if [ x"$1" = x"list" -a x"$2" = x"-key-managers" ]; then ++ echo "ML-DSA-87" ++ exit 0 ++fi ++exit 1 +-- +2.53.0 + ++++++ patches.suse.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/0003-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mode.patch new/patches.suse/0003-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mode.patch --- old/patches.suse/0003-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mode.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/0003-efi-Lock-down-the-kernel-if-booted-in-secure-boot-mode.patch 2026-04-23 07:00:02.000000000 +0200 @@ -27,9 +27,9 @@ #include <linux/root_dev.h> +#include <linux/security.h> #include <linux/static_call.h> + #include <linux/sysfb.h> #include <linux/swiotlb.h> - #include <linux/tboot.h> -@@ -986,6 +987,13 @@ void __init setup_arch(char **cmdline_p) +@@ -995,6 +996,13 @@ void __init setup_arch(char **cmdline_p) if (efi_enabled(EFI_BOOT)) efi_init(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/Restore-kABI-for-NVidia-vGPU-driver.patch new/patches.suse/Restore-kABI-for-NVidia-vGPU-driver.patch --- old/patches.suse/Restore-kABI-for-NVidia-vGPU-driver.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/Restore-kABI-for-NVidia-vGPU-driver.patch 2026-04-23 07:00:02.000000000 +0200 @@ -185,7 +185,7 @@ +mdev_iommu_device: + ret = -ENOMEM; - domain = kzalloc(sizeof(*domain), GFP_KERNEL); + domain = kzalloc_obj(*domain); if (!domain) @@ -2294,7 +2404,7 @@ static int vfio_iommu_type1_attach_group(void *iommu_data, goto out_free_domain; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/Revert-drm-syncobj-Fix-handle-fd-ioctls-with-dirty-st.patch new/patches.suse/Revert-drm-syncobj-Fix-handle-fd-ioctls-with-dirty-st.patch --- old/patches.suse/Revert-drm-syncobj-Fix-handle-fd-ioctls-with-dirty-st.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/Revert-drm-syncobj-Fix-handle-fd-ioctls-with-dirty-st.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,54 +0,0 @@ -From: Maarten Lankhorst <[email protected]> -Date: Thu, 5 Mar 2026 12:37:34 +0100 -Subject: Revert "drm/syncobj: Fix handle <-> fd ioctls with dirty stack" -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Git-commit: ee8ade4d9678a456bb5ea675c270738b250eda68 -Patch-mainline: v7.0-rc3 -References: git-fixes - -This reverts commit 2e3649e237237258a08d75afef96648dd2b379f7. - -The problem occurs when userspace is compiled against new headers -with new members, but don't correctly initialise those new members. - -This is not a kernel problem, and should be fixed in userspace by -correctly zero'ing all members. - -Cc: Rob Clark <[email protected]> -Cc: Julian Orth <[email protected]> -Cc: Christian König <[email protected]> -Cc: Michel Dänzer <[email protected]> -Reviewed-by: Christian König <[email protected]> -Acked-by: Julian Orth <[email protected]> -Link: https://patch.msgid.link/[email protected] -Signed-off-by: Maarten Lankhorst <[email protected]> -Acked-by: Jiri Slaby <[email protected]> ---- - drivers/gpu/drm/drm_syncobj.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/drm_syncobj.c b/drivers/gpu/drm/drm_syncobj.c -index 49eccb43ce63..250734dee928 100644 ---- a/drivers/gpu/drm/drm_syncobj.c -+++ b/drivers/gpu/drm/drm_syncobj.c -@@ -875,7 +875,7 @@ drm_syncobj_handle_to_fd_ioctl(struct drm_device *dev, void *data, - return drm_syncobj_export_sync_file(file_private, args->handle, - point, &args->fd); - -- if (point) -+ if (args->point) - return -EINVAL; - - return drm_syncobj_handle_to_fd(file_private, args->handle, -@@ -909,7 +909,7 @@ drm_syncobj_fd_to_handle_ioctl(struct drm_device *dev, void *data, - args->handle, - point); - -- if (point) -+ if (args->point) - return -EINVAL; - - return drm_syncobj_fd_to_handle(file_private, args->fd, - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/accel-amdxdna-Remove-NPU2-support.patch new/patches.suse/accel-amdxdna-Remove-NPU2-support.patch --- old/patches.suse/accel-amdxdna-Remove-NPU2-support.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/accel-amdxdna-Remove-NPU2-support.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,172 +0,0 @@ -From 3ef93841033edc6359146dccd88d2f7ac8d706d1 Mon Sep 17 00:00:00 2001 -From: Lizhi Hou <[email protected]> -Date: Wed, 17 Dec 2025 11:08:18 -0800 -Subject: [PATCH] accel/amdxdna: Remove NPU2 support -Git-commit: 3ef93841033edc6359146dccd88d2f7ac8d706d1 -Patch-mainline: v7.0-rc1 -References: bsc#1257724 - -NPU2 hardware was never publicly released and is now obsolete. -Remove all remaining NPU2 support from the driver. - -Reviewed-by: Mario Limonciello (AMD) <[email protected]> -Signed-off-by: Lizhi Hou <[email protected]> -Link: https://patch.msgid.link/[email protected] -Acked-by: Takashi Iwai <[email protected]> - ---- - drivers/accel/amdxdna/Makefile | 1 - drivers/accel/amdxdna/amdxdna_pci_drv.c | 1 - drivers/accel/amdxdna/amdxdna_pci_drv.h | 1 - drivers/accel/amdxdna/npu2_regs.c | 115 -------------------------------- - 4 files changed, 118 deletions(-) - delete mode 100644 drivers/accel/amdxdna/npu2_regs.c - ---- a/drivers/accel/amdxdna/Makefile -+++ b/drivers/accel/amdxdna/Makefile -@@ -18,7 +18,6 @@ amdxdna-y := \ - amdxdna_sysfs.o \ - amdxdna_ubuf.o \ - npu1_regs.o \ -- npu2_regs.o \ - npu4_regs.o \ - npu5_regs.o \ - npu6_regs.o ---- a/drivers/accel/amdxdna/amdxdna_pci_drv.c -+++ b/drivers/accel/amdxdna/amdxdna_pci_drv.c -@@ -51,7 +51,6 @@ MODULE_DEVICE_TABLE(pci, pci_ids); - - static const struct amdxdna_device_id amdxdna_ids[] = { - { 0x1502, 0x0, &dev_npu1_info }, -- { 0x17f0, 0x0, &dev_npu2_info }, - { 0x17f0, 0x10, &dev_npu4_info }, - { 0x17f0, 0x11, &dev_npu5_info }, - { 0x17f0, 0x20, &dev_npu6_info }, ---- a/drivers/accel/amdxdna/amdxdna_pci_drv.h -+++ b/drivers/accel/amdxdna/amdxdna_pci_drv.h -@@ -138,7 +138,6 @@ struct amdxdna_client { - - /* Add device info below */ - extern const struct amdxdna_dev_info dev_npu1_info; --extern const struct amdxdna_dev_info dev_npu2_info; - extern const struct amdxdna_dev_info dev_npu4_info; - extern const struct amdxdna_dev_info dev_npu5_info; - extern const struct amdxdna_dev_info dev_npu6_info; ---- a/drivers/accel/amdxdna/npu2_regs.c -+++ /dev/null -@@ -1,115 +0,0 @@ --// SPDX-License-Identifier: GPL-2.0 --/* -- * Copyright (C) 2023-2024, Advanced Micro Devices, Inc. -- */ -- --#include <drm/amdxdna_accel.h> --#include <drm/drm_device.h> --#include <drm/gpu_scheduler.h> --#include <linux/sizes.h> -- --#include "aie2_pci.h" --#include "amdxdna_mailbox.h" --#include "amdxdna_pci_drv.h" -- --/* NPU Public Registers on MpNPUAxiXbar (refer to Diag npu_registers.h) */ --#define MPNPU_PUB_SEC_INTR 0x3010060 --#define MPNPU_PUB_PWRMGMT_INTR 0x3010064 --#define MPNPU_PUB_SCRATCH0 0x301006C --#define MPNPU_PUB_SCRATCH1 0x3010070 --#define MPNPU_PUB_SCRATCH2 0x3010074 --#define MPNPU_PUB_SCRATCH3 0x3010078 --#define MPNPU_PUB_SCRATCH4 0x301007C --#define MPNPU_PUB_SCRATCH5 0x3010080 --#define MPNPU_PUB_SCRATCH6 0x3010084 --#define MPNPU_PUB_SCRATCH7 0x3010088 --#define MPNPU_PUB_SCRATCH8 0x301008C --#define MPNPU_PUB_SCRATCH9 0x3010090 --#define MPNPU_PUB_SCRATCH10 0x3010094 --#define MPNPU_PUB_SCRATCH11 0x3010098 --#define MPNPU_PUB_SCRATCH12 0x301009C --#define MPNPU_PUB_SCRATCH13 0x30100A0 --#define MPNPU_PUB_SCRATCH14 0x30100A4 --#define MPNPU_PUB_SCRATCH15 0x30100A8 --#define MP0_C2PMSG_73 0x3810A24 --#define MP0_C2PMSG_123 0x3810AEC -- --#define MP1_C2PMSG_0 0x3B10900 --#define MP1_C2PMSG_60 0x3B109F0 --#define MP1_C2PMSG_61 0x3B109F4 -- --#define MPNPU_SRAM_X2I_MAILBOX_0 0x3600000 --#define MPNPU_SRAM_X2I_MAILBOX_15 0x361E000 --#define MPNPU_SRAM_X2I_MAILBOX_31 0x363E000 --#define MPNPU_SRAM_I2X_MAILBOX_31 0x363F000 -- --#define MMNPU_APERTURE0_BASE 0x3000000 --#define MMNPU_APERTURE1_BASE 0x3600000 --#define MMNPU_APERTURE3_BASE 0x3810000 --#define MMNPU_APERTURE4_BASE 0x3B10000 -- --/* PCIe BAR Index for NPU2 */ --#define NPU2_REG_BAR_INDEX 0 --#define NPU2_MBOX_BAR_INDEX 0 --#define NPU2_PSP_BAR_INDEX 4 --#define NPU2_SMU_BAR_INDEX 5 --#define NPU2_SRAM_BAR_INDEX 2 --/* Associated BARs and Apertures */ --#define NPU2_REG_BAR_BASE MMNPU_APERTURE0_BASE --#define NPU2_MBOX_BAR_BASE MMNPU_APERTURE0_BASE --#define NPU2_PSP_BAR_BASE MMNPU_APERTURE3_BASE --#define NPU2_SMU_BAR_BASE MMNPU_APERTURE4_BASE --#define NPU2_SRAM_BAR_BASE MMNPU_APERTURE1_BASE -- --static const struct amdxdna_dev_priv npu2_dev_priv = { -- .fw_path = "amdnpu/17f0_00/npu.sbin", -- .protocol_major = 0x6, -- .protocol_minor = 0x6, -- .rt_config = npu4_default_rt_cfg, -- .dpm_clk_tbl = npu4_dpm_clk_table, -- .fw_feature_tbl = npu4_fw_feature_table, -- .col_align = COL_ALIGN_NATURE, -- .mbox_dev_addr = NPU2_MBOX_BAR_BASE, -- .mbox_size = 0, /* Use BAR size */ -- .sram_dev_addr = NPU2_SRAM_BAR_BASE, -- .hwctx_limit = 16, -- .sram_offs = { -- DEFINE_BAR_OFFSET(MBOX_CHANN_OFF, NPU2_SRAM, MPNPU_SRAM_X2I_MAILBOX_0), -- DEFINE_BAR_OFFSET(FW_ALIVE_OFF, NPU2_SRAM, MPNPU_SRAM_X2I_MAILBOX_15), -- }, -- .psp_regs_off = { -- DEFINE_BAR_OFFSET(PSP_CMD_REG, NPU2_PSP, MP0_C2PMSG_123), -- DEFINE_BAR_OFFSET(PSP_ARG0_REG, NPU2_REG, MPNPU_PUB_SCRATCH3), -- DEFINE_BAR_OFFSET(PSP_ARG1_REG, NPU2_REG, MPNPU_PUB_SCRATCH4), -- DEFINE_BAR_OFFSET(PSP_ARG2_REG, NPU2_REG, MPNPU_PUB_SCRATCH9), -- DEFINE_BAR_OFFSET(PSP_INTR_REG, NPU2_PSP, MP0_C2PMSG_73), -- DEFINE_BAR_OFFSET(PSP_STATUS_REG, NPU2_PSP, MP0_C2PMSG_123), -- DEFINE_BAR_OFFSET(PSP_RESP_REG, NPU2_REG, MPNPU_PUB_SCRATCH3), -- }, -- .smu_regs_off = { -- DEFINE_BAR_OFFSET(SMU_CMD_REG, NPU2_SMU, MP1_C2PMSG_0), -- DEFINE_BAR_OFFSET(SMU_ARG_REG, NPU2_SMU, MP1_C2PMSG_60), -- DEFINE_BAR_OFFSET(SMU_INTR_REG, NPU2_SMU, MMNPU_APERTURE4_BASE), -- DEFINE_BAR_OFFSET(SMU_RESP_REG, NPU2_SMU, MP1_C2PMSG_61), -- DEFINE_BAR_OFFSET(SMU_OUT_REG, NPU2_SMU, MP1_C2PMSG_60), -- }, -- .hw_ops = { -- .set_dpm = npu4_set_dpm, -- }, --}; -- --const struct amdxdna_dev_info dev_npu2_info = { -- .reg_bar = NPU2_REG_BAR_INDEX, -- .mbox_bar = NPU2_MBOX_BAR_INDEX, -- .sram_bar = NPU2_SRAM_BAR_INDEX, -- .psp_bar = NPU2_PSP_BAR_INDEX, -- .smu_bar = NPU2_SMU_BAR_INDEX, -- .first_col = 0, -- .dev_mem_buf_shift = 15, /* 32 KiB aligned */ -- .dev_mem_base = AIE2_DEVM_BASE, -- .dev_mem_size = AIE2_DEVM_SIZE, -- .vbnv = "RyzenAI-npu2", -- .device_type = AMDXDNA_DEV_TYPE_KMQ, -- .dev_priv = &npu2_dev_priv, -- .ops = &aie2_ops, /* NPU2 can share NPU1's callback */ --}; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/accel-amdxdna-Remove-amdxdna_flush.patch new/patches.suse/accel-amdxdna-Remove-amdxdna_flush.patch --- old/patches.suse/accel-amdxdna-Remove-amdxdna_flush.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/accel-amdxdna-Remove-amdxdna_flush.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,100 +0,0 @@ -From e8c28e16c3ebd142938aee296032c6b802a5a1d4 Mon Sep 17 00:00:00 2001 -From: Lizhi Hou <[email protected]> -Date: Mon, 15 Dec 2025 19:13:11 -0800 -Subject: [PATCH] accel/amdxdna: Remove amdxdna_flush() -Git-commit: e8c28e16c3ebd142938aee296032c6b802a5a1d4 -Patch-mainline: v7.0-rc1 -References: bsc#1257724 - -amdxdna_flush() was introduced to ensure that the device does not access -a process address space after it has been freed. However, this is no -longer necessary because the driver now increments the mm reference count -when a command is submitted and decrements it only after the command has -completed. This guarantees that the process address space remains valid -for the entire duration of command execution. Remove amdxdna_flush to -simplify the teardown path. - -Reviewed-by: Mario Limonciello (AMD) <[email protected]> -Signed-off-by: Lizhi Hou <[email protected]> -Link: https://patch.msgid.link/[email protected] -Acked-by: Takashi Iwai <[email protected]> - ---- - drivers/accel/amdxdna/amdxdna_pci_drv.c | 29 +++++++++++------------------ - 1 file changed, 11 insertions(+), 18 deletions(-) - ---- a/drivers/accel/amdxdna/amdxdna_pci_drv.c -+++ b/drivers/accel/amdxdna/amdxdna_pci_drv.c -@@ -107,44 +107,39 @@ failed: - return ret; - } - --static void amdxdna_drm_close(struct drm_device *ddev, struct drm_file *filp) -+static void amdxdna_client_cleanup(struct amdxdna_client *client) - { -- struct amdxdna_client *client = filp->driver_priv; -- struct amdxdna_dev *xdna = to_xdna_dev(ddev); -- -- XDNA_DBG(xdna, "closing pid %d", client->pid); -- -+ list_del(&client->node); -+ amdxdna_hwctx_remove_all(client); - xa_destroy(&client->hwctx_xa); - cleanup_srcu_struct(&client->hwctx_srcu); - mutex_destroy(&client->mm_lock); -+ - if (client->dev_heap) - drm_gem_object_put(to_gobj(client->dev_heap)); - - iommu_sva_unbind_device(client->sva); - mmdrop(client->mm); - -- XDNA_DBG(xdna, "pid %d closed", client->pid); - kfree(client); - } - --static int amdxdna_flush(struct file *f, fl_owner_t id) -+static void amdxdna_drm_close(struct drm_device *ddev, struct drm_file *filp) - { -- struct drm_file *filp = f->private_data; - struct amdxdna_client *client = filp->driver_priv; -- struct amdxdna_dev *xdna = client->xdna; -+ struct amdxdna_dev *xdna = to_xdna_dev(ddev); - int idx; - -- XDNA_DBG(xdna, "PID %d flushing...", client->pid); -+ XDNA_DBG(xdna, "closing pid %d", client->pid); -+ - if (!drm_dev_enter(&xdna->ddev, &idx)) -- return 0; -+ return; - - mutex_lock(&xdna->dev_lock); -- list_del_init(&client->node); -- amdxdna_hwctx_remove_all(client); -+ amdxdna_client_cleanup(client); - mutex_unlock(&xdna->dev_lock); - - drm_dev_exit(idx); -- return 0; - } - - static int amdxdna_drm_get_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) -@@ -220,7 +215,6 @@ static const struct file_operations amdx - .owner = THIS_MODULE, - .open = accel_open, - .release = drm_release, -- .flush = amdxdna_flush, - .unlocked_ioctl = drm_ioctl, - .compat_ioctl = drm_compat_ioctl, - .poll = drm_poll, -@@ -336,8 +330,7 @@ static void amdxdna_remove(struct pci_de - client = list_first_entry_or_null(&xdna->client_list, - struct amdxdna_client, node); - while (client) { -- list_del_init(&client->node); -- amdxdna_hwctx_remove_all(client); -+ amdxdna_client_cleanup(client); - - client = list_first_entry_or_null(&xdna->client_list, - struct amdxdna_client, node); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/accel-amdxdna-Update-firmware-version-check-for-late.patch new/patches.suse/accel-amdxdna-Update-firmware-version-check-for-late.patch --- old/patches.suse/accel-amdxdna-Update-firmware-version-check-for-late.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/accel-amdxdna-Update-firmware-version-check-for-late.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,195 +0,0 @@ -From f1eac46fe5f7d4569681a648440d0f416a50c476 Mon Sep 17 00:00:00 2001 -From: Lizhi Hou <[email protected]> -Date: Thu, 18 Dec 2025 17:43:56 -0800 -Subject: [PATCH] accel/amdxdna: Update firmware version check for latest firmware -Git-commit: f1eac46fe5f7d4569681a648440d0f416a50c476 -Patch-mainline: v7.0-rc1 -References: bsc#1257724 - -The latest firmware increases the major version number. Update -aie2_check_protocol() to accept and support the new firmware version. - -Reviewed-by: Mario Limonciello (AMD) <[email protected]> -Signed-off-by: Lizhi Hou <[email protected]> -Link: https://patch.msgid.link/[email protected] -Acked-by: Takashi Iwai <[email protected]> - ---- - drivers/accel/amdxdna/aie2_pci.c | 36 ++++++++----------------------- - drivers/accel/amdxdna/aie2_pci.h | 5 ++--- - drivers/accel/amdxdna/npu1_regs.c | 6 +++--- - drivers/accel/amdxdna/npu4_regs.c | 11 +++++----- - drivers/accel/amdxdna/npu5_regs.c | 2 -- - drivers/accel/amdxdna/npu6_regs.c | 2 -- - 6 files changed, 20 insertions(+), 42 deletions(-) - -diff --git a/drivers/accel/amdxdna/aie2_pci.c b/drivers/accel/amdxdna/aie2_pci.c -index 81a8e4137bfd..181fdbc10dae 100644 ---- a/drivers/accel/amdxdna/aie2_pci.c -+++ b/drivers/accel/amdxdna/aie2_pci.c -@@ -56,41 +56,23 @@ struct mgmt_mbox_chann_info { - static int aie2_check_protocol(struct amdxdna_dev_hdl *ndev, u32 fw_major, u32 fw_minor) - { - const struct aie2_fw_feature_tbl *feature; -- struct amdxdna_dev *xdna = ndev->xdna; -+ bool found = false; - -- /* -- * The driver supported mailbox behavior is defined by -- * ndev->priv->protocol_major and protocol_minor. -- * -- * When protocol_major and fw_major are different, it means driver -- * and firmware are incompatible. -- */ -- if (ndev->priv->protocol_major != fw_major) { -- XDNA_ERR(xdna, "Incompatible firmware protocol major %d minor %d", -- fw_major, fw_minor); -- return -EINVAL; -- } -- -- /* -- * When protocol_minor is greater then fw_minor, that means driver -- * relies on operation the installed firmware does not support. -- */ -- if (ndev->priv->protocol_minor > fw_minor) { -- XDNA_ERR(xdna, "Firmware minor version smaller than supported"); -- return -EINVAL; -- } -- -- for (feature = ndev->priv->fw_feature_tbl; feature && feature->min_minor; -- feature++) { -+ for (feature = ndev->priv->fw_feature_tbl; feature->major; feature++) { -+ if (feature->major != fw_major) -+ continue; - if (fw_minor < feature->min_minor) - continue; - if (feature->max_minor > 0 && fw_minor > feature->max_minor) - continue; - -- set_bit(feature->feature, &ndev->feature_mask); -+ ndev->feature_mask |= feature->features; -+ -+ /* firmware version matches one of the driver support entry */ -+ found = true; - } - -- return 0; -+ return found ? 0 : -EOPNOTSUPP; - } - - static void aie2_dump_chann_info_debug(struct amdxdna_dev_hdl *ndev) -diff --git a/drivers/accel/amdxdna/aie2_pci.h b/drivers/accel/amdxdna/aie2_pci.h -index e1745f07b268..b20a3661078c 100644 ---- a/drivers/accel/amdxdna/aie2_pci.h -+++ b/drivers/accel/amdxdna/aie2_pci.h -@@ -237,7 +237,8 @@ enum aie2_fw_feature { - }; - - struct aie2_fw_feature_tbl { -- enum aie2_fw_feature feature; -+ u64 features; -+ u32 major; - u32 max_minor; - u32 min_minor; - }; -@@ -246,8 +247,6 @@ struct aie2_fw_feature_tbl { - - struct amdxdna_dev_priv { - const char *fw_path; -- u64 protocol_major; -- u64 protocol_minor; - const struct rt_config *rt_config; - const struct dpm_clk_freq *dpm_clk_tbl; - const struct aie2_fw_feature_tbl *fw_feature_tbl; -diff --git a/drivers/accel/amdxdna/npu1_regs.c b/drivers/accel/amdxdna/npu1_regs.c -index ebc6e2802297..6f36a27b5a02 100644 ---- a/drivers/accel/amdxdna/npu1_regs.c -+++ b/drivers/accel/amdxdna/npu1_regs.c -@@ -6,6 +6,7 @@ - #include <drm/amdxdna_accel.h> - #include <drm/drm_device.h> - #include <drm/gpu_scheduler.h> -+#include <linux/bits.h> - #include <linux/sizes.h> - - #include "aie2_pci.h" -@@ -65,14 +66,13 @@ const struct dpm_clk_freq npu1_dpm_clk_table[] = { - }; - - static const struct aie2_fw_feature_tbl npu1_fw_feature_table[] = { -- { .feature = AIE2_NPU_COMMAND, .min_minor = 8 }, -+ { .major = 5, .min_minor = 7 }, -+ { .features = BIT_U64(AIE2_NPU_COMMAND), .min_minor = 8 }, - { 0 } - }; - - static const struct amdxdna_dev_priv npu1_dev_priv = { - .fw_path = "amdnpu/1502_00/npu.sbin", -- .protocol_major = 0x5, -- .protocol_minor = 0x7, - .rt_config = npu1_default_rt_cfg, - .dpm_clk_tbl = npu1_dpm_clk_table, - .fw_feature_tbl = npu1_fw_feature_table, -diff --git a/drivers/accel/amdxdna/npu4_regs.c b/drivers/accel/amdxdna/npu4_regs.c -index a62234fd266d..a8d6f76dde5f 100644 ---- a/drivers/accel/amdxdna/npu4_regs.c -+++ b/drivers/accel/amdxdna/npu4_regs.c -@@ -6,6 +6,7 @@ - #include <drm/amdxdna_accel.h> - #include <drm/drm_device.h> - #include <drm/gpu_scheduler.h> -+#include <linux/bits.h> - #include <linux/sizes.h> - - #include "aie2_pci.h" -@@ -88,16 +89,16 @@ const struct dpm_clk_freq npu4_dpm_clk_table[] = { - }; - - const struct aie2_fw_feature_tbl npu4_fw_feature_table[] = { -- { .feature = AIE2_NPU_COMMAND, .min_minor = 15 }, -- { .feature = AIE2_PREEMPT, .min_minor = 12 }, -- { .feature = AIE2_TEMPORAL_ONLY, .min_minor = 12 }, -+ { .major = 6, .min_minor = 12 }, -+ { .features = BIT_U64(AIE2_NPU_COMMAND), .major = 6, .min_minor = 15 }, -+ { .features = BIT_U64(AIE2_PREEMPT), .major = 6, .min_minor = 12 }, -+ { .features = BIT_U64(AIE2_TEMPORAL_ONLY), .major = 6, .min_minor = 12 }, -+ { .features = GENMASK_ULL(AIE2_TEMPORAL_ONLY, AIE2_NPU_COMMAND), .major = 7 }, - { 0 } - }; - - static const struct amdxdna_dev_priv npu4_dev_priv = { - .fw_path = "amdnpu/17f0_10/npu.sbin", -- .protocol_major = 0x6, -- .protocol_minor = 12, - .rt_config = npu4_default_rt_cfg, - .dpm_clk_tbl = npu4_dpm_clk_table, - .fw_feature_tbl = npu4_fw_feature_table, -diff --git a/drivers/accel/amdxdna/npu5_regs.c b/drivers/accel/amdxdna/npu5_regs.c -index 131080652ef0..c0a35cfd886c 100644 ---- a/drivers/accel/amdxdna/npu5_regs.c -+++ b/drivers/accel/amdxdna/npu5_regs.c -@@ -64,8 +64,6 @@ - - static const struct amdxdna_dev_priv npu5_dev_priv = { - .fw_path = "amdnpu/17f0_11/npu.sbin", -- .protocol_major = 0x6, -- .protocol_minor = 12, - .rt_config = npu4_default_rt_cfg, - .dpm_clk_tbl = npu4_dpm_clk_table, - .fw_feature_tbl = npu4_fw_feature_table, -diff --git a/drivers/accel/amdxdna/npu6_regs.c b/drivers/accel/amdxdna/npu6_regs.c -index 1f71285655b2..1fb07df99186 100644 ---- a/drivers/accel/amdxdna/npu6_regs.c -+++ b/drivers/accel/amdxdna/npu6_regs.c -@@ -64,8 +64,6 @@ - - static const struct amdxdna_dev_priv npu6_dev_priv = { - .fw_path = "amdnpu/17f0_10/npu.sbin", -- .protocol_major = 0x6, -- .protocol_minor = 12, - .rt_config = npu4_default_rt_cfg, - .dpm_clk_tbl = npu4_dpm_clk_table, - .fw_feature_tbl = npu4_fw_feature_table, --- -2.52.0 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/bcache-fix-uninitialized-closure-object.patch new/patches.suse/bcache-fix-uninitialized-closure-object.patch --- old/patches.suse/bcache-fix-uninitialized-closure-object.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/bcache-fix-uninitialized-closure-object.patch 2026-04-23 07:00:02.000000000 +0200 @@ -0,0 +1,40 @@ +From: Mingzhe Zou <[email protected]> +Date: Fri, 3 Apr 2026 12:21:35 +0800 +Subject: bcache: fix uninitialized closure object +Git-commit: 20a8e451ec1c7e99060b1bbaaad03ce88c39ddb8 +Patch-mainline: v7.1-rc1 +References: git-fixes + +In the previous patch ("bcache: fix cached_dev.sb_bio use-after-free and +crash"), we adopted a simple modification suggestion from AI to fix the +use-after-free. + +But in actual testing, we found an extreme case where the device is +stopped before calling bch_write_bdev_super(). + +At this point, struct closure sb_write has not been initialized yet. +For this patch, we ensure that sb_bio has been completed via +sb_write_mutex. + +Signed-off-by: Mingzhe Zou <[email protected]> +Signed-off-by: Coly Li <[email protected]> +Link: https://patch.msgid.link/[email protected] +Fixes: fec114a98b87 ("bcache: fix cached_dev.sb_bio use-after-free and crash") +Signed-off-by: Jens Axboe <[email protected]> +Acked-by: Jiri Slaby <[email protected]> +--- + drivers/md/bcache/super.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/md/bcache/super.c ++++ b/drivers/md/bcache/super.c +@@ -1378,7 +1378,8 @@ static CLOSURE_CALLBACK(cached_dev_free) + * The sb_bio is embedded in struct cached_dev, so we must + * ensure no I/O is in progress. + */ +- closure_sync(&dc->sb_write); ++ down(&dc->sb_write_mutex); ++ up(&dc->sb_write_mutex); + + if (dc->sb_disk) + folio_put(virt_to_folio(dc->sb_disk)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-provide-super_operations-get_inode_dev new/patches.suse/btrfs-provide-super_operations-get_inode_dev --- old/patches.suse/btrfs-provide-super_operations-get_inode_dev 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/btrfs-provide-super_operations-get_inode_dev 2026-04-23 07:00:02.000000000 +0200 @@ -9,14 +9,14 @@ Signed-off-by: Jeff Mahoney <[email protected]> --- - fs/btrfs/super.c | 6 ++++++ + fs/btrfs/super.c | 6 ++++++ 1 file changed, 6 insertions(+) --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c -@@ -2485,6 +2485,11 @@ static void btrfs_shutdown(struct super_ +@@ -2495,6 +2495,11 @@ static int btrfs_show_stats(struct seq_file *seq, struct dentry *root) + return 0; } - #endif +static dev_t btrfs_get_inode_dev(const struct inode *inode) +{ @@ -26,7 +26,7 @@ static const struct super_operations btrfs_super_ops = { .drop_inode = btrfs_drop_inode, .evict_inode = btrfs_evict_inode, -@@ -2504,6 +2509,7 @@ static const struct super_operations btr +@@ -2515,6 +2520,7 @@ static const struct super_operations btrfs_super_ops = { .remove_bdev = btrfs_remove_bdev, .shutdown = btrfs_shutdown, #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/iwlwifi-declare-missing-firmware-files.patch new/patches.suse/iwlwifi-declare-missing-firmware-files.patch --- old/patches.suse/iwlwifi-declare-missing-firmware-files.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/iwlwifi-declare-missing-firmware-files.patch 2026-04-23 07:00:02.000000000 +0200 @@ -15,24 +15,24 @@ Signed-off-by: Takashi Iwai <[email protected]> --- - drivers/net/wireless/intel/iwlwifi/cfg/6000.c | 3 +++ - drivers/net/wireless/intel/iwlwifi/cfg/bz.c | 5 +++++ - drivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c | 8 ++++++++ - drivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c | 5 +++++ + drivers/net/wireless/intel/iwlwifi/cfg/6000.c | 3 +++ + drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c | 5 +++++ + drivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c | 8 ++++++++ + drivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c | 5 +++++ 4 files changed, 21 insertions(+) --- a/drivers/net/wireless/intel/iwlwifi/cfg/6000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/6000.c -@@ -355,3 +355,6 @@ MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE( +@@ -355,3 +355,6 @@ MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6030_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); + +// FIXME: extra due to the missing firmware files +MODULE_FIRMWARE("iwlwifi-6000-4.ucode"); ---- a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c -+++ b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c -@@ -113,3 +113,8 @@ IWL_CORE_FW(IWL_BZ_B_HR_B_FW_PRE, IWL_BZ +--- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c ++++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c +@@ -69,3 +69,8 @@ IWL_CORE_FW(IWL_BZ_B_HR_B_FW_PRE, 100); // FIXME: no 101 ucode released IWL_CORE_FW(IWL_GL_B_FM_B_FW_PRE, IWL_BZ_UCODE_CORE_MAX); IWL_CORE_FW(IWL_GL_C_FM_C_FW_PRE, IWL_BZ_UCODE_CORE_MAX); @@ -43,7 +43,7 @@ +MODULE_FIRMWARE("iwlwifi-gl-c0-fm-c0-98.ucode"); --- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-gf.c -@@ -83,3 +83,11 @@ MODULE_FIRMWARE(IWL_BZ_A_GF_A_MODULE_FIR +@@ -83,3 +83,11 @@ MODULE_FIRMWARE(IWL_BZ_A_GF_A_MODULE_FIRMWARE(IWL_GF_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_BZ_A_GF4_A_MODULE_FIRMWARE(IWL_GF_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_SC_A_GF_A_MODULE_FIRMWARE(IWL_GF_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_SC_A_GF4_A_MODULE_FIRMWARE(IWL_GF_UCODE_API_MAX)); @@ -57,7 +57,7 @@ +MODULE_FIRMWARE("iwlwifi-ty-a0-gf-a0-89.ucode"); --- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-hr.c -@@ -87,3 +87,8 @@ MODULE_FIRMWARE(IWL_MA_B_HR_B_FW_MODULE_ +@@ -87,3 +87,8 @@ MODULE_FIRMWARE(IWL_MA_B_HR_B_FW_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_BZ_A_HR_B_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_SC_A_HR_A_FW_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_SC_A_HR_B_FW_MODULE_FIRMWARE(IWL_HR_UCODE_API_MAX)); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/locking-qspinlock-Save-previous-node-owner-CPU-into-.patch new/patches.suse/locking-qspinlock-Save-previous-node-owner-CPU-into-.patch --- old/patches.suse/locking-qspinlock-Save-previous-node-owner-CPU-into-.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/locking-qspinlock-Save-previous-node-owner-CPU-into-.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,107 +0,0 @@ -From: Waiman Long <[email protected]> -Date: Fri, 3 May 2024 22:41:06 -0400 -Subject: locking/qspinlock: Save previous node & owner CPU into mcs_spinlock -References: bsc#1258936 -Patch-mainline: never, under debugging - -When examining a contended spinlock in a crash dump, we can only find -out the tail CPU in the MCS wait queue. There is no simple way to find -out what other CPUs are waiting for the spinlock and which CPU is the -lock owner. - -Make it easier to figure out these information by saving previous node -data into the mcs_spinlock structure. This will allow us to reconstruct -the MCS wait queue from tail to head. In order not to expand the size -of mcs_spinlock, the original count field is split into two 16-bit -chunks. The first chunk is for count and the second one is the new -prev_node value. - - bits 0-1 : qnode index - bits 2-15: CPU number + 1 - -This prev_node value may be truncated if there are 16k or more CPUs in -the system. - -The locked value in the queue head is also repurposed to hold an encoded -qspinlock owner CPU number when acquiring the lock in the qspinlock -slowpath of an contended lock. - -This lock owner information will not be available when the lock is -acquired directly in the fast path or in the pending code path. There -is no easy way around that. - -These changes should make analysis of a contended spinlock in a crash -dump easier. - -Signed-off-by: Waiman Long <[email protected]> -Signed-off-by: Peter Zijlstra (Intel) <[email protected]> -Link: https://patch.msgid.link/[email protected] -Signed-off-by: Jiri Slaby <[email protected]> ---- - include/asm-generic/mcs_spinlock.h | 5 +++-- - kernel/locking/mcs_spinlock.h | 8 +++++++- - kernel/locking/qspinlock.c | 8 ++++++++ - 3 files changed, 18 insertions(+), 3 deletions(-) - ---- a/include/asm-generic/mcs_spinlock.h -+++ b/include/asm-generic/mcs_spinlock.h -@@ -3,8 +3,9 @@ - - struct mcs_spinlock { - struct mcs_spinlock *next; -- int locked; /* 1 if lock acquired */ -- int count; /* nesting count, see qspinlock.c */ -+ int locked; /* non-zero if lock acquired */ -+ short count; /* nesting count, see qspinlock.c */ -+ short prev_node; /* encoded previous node value */ - }; - - /* ---- a/kernel/locking/mcs_spinlock.h -+++ b/kernel/locking/mcs_spinlock.h -@@ -13,6 +13,12 @@ - #ifndef __LINUX_MCS_SPINLOCK_H - #define __LINUX_MCS_SPINLOCK_H - -+/* -+ * Save an encoded version of the current MCS lock owner CPU to the -+ * mcs_spinlock structure of the next lock owner. -+ */ -+#define MCS_LOCKED (smp_processor_id() + 1) -+ - #include <asm/mcs_spinlock.h> - - #ifndef arch_mcs_spin_lock_contended -@@ -34,7 +40,7 @@ - * unlocking. - */ - #define arch_mcs_spin_unlock_contended(l) \ -- smp_store_release((l), 1) -+ smp_store_release((l), MCS_LOCKED) - #endif - - /* ---- a/kernel/locking/qspinlock.c -+++ b/kernel/locking/qspinlock.c -@@ -250,6 +250,7 @@ pv_queue: - - node->locked = 0; - node->next = NULL; -+ node->prev_node = 0; - pv_init_node(node); - - /* -@@ -278,6 +279,13 @@ pv_queue: - next = NULL; - - /* -+ * The prev_node value is saved for crash dump analysis purpose only, -+ * it is not used within the qspinlock code. The encoded node value -+ * may be truncated if there are 16k or more CPUs in the system. -+ */ -+ node->prev_node = old >> _Q_TAIL_IDX_OFFSET; -+ -+ /* - * if there was a previous node; link it and wait until reaching the - * head of the waitqueue. - */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/mfd-bcm2835-pm-Add-BCM2712-PM-device-support.patch new/patches.suse/mfd-bcm2835-pm-Add-BCM2712-PM-device-support.patch --- old/patches.suse/mfd-bcm2835-pm-Add-BCM2712-PM-device-support.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/mfd-bcm2835-pm-Add-BCM2712-PM-device-support.patch 2026-04-23 07:00:02.000000000 +0200 @@ -4,7 +4,7 @@ Git-commit: 5849d8afe131012bfefaee34dde87fe5c82ddce0 Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git Patch-mainline: Queued in subsystem maintainer repository -References: PED-13236 +References: jsc#PED-13236 The BCM2712 SoC includes a power management block that serves as the power domain for the V3D graphics block. Unlike other PM blocks in diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/mfd-bcm2835-pm-Introduce-SoC-specific-type-identifier.patch new/patches.suse/mfd-bcm2835-pm-Introduce-SoC-specific-type-identifier.patch --- old/patches.suse/mfd-bcm2835-pm-Introduce-SoC-specific-type-identifier.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/mfd-bcm2835-pm-Introduce-SoC-specific-type-identifier.patch 2026-04-23 07:00:02.000000000 +0200 @@ -4,7 +4,7 @@ Git-commit: a1c5073dac90aa5cbf187697401d9b3eff2bc269 Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git Patch-mainline: Queued in subsystem maintainer repository -References: PED-13236 +References: jsc#PED-13236 Power management blocks across the BCM2835 family share a common base but require variant-specific handling. For instance, the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/selftests-bpf-Support-when-CONFIG_VXLAN-m.patch new/patches.suse/selftests-bpf-Support-when-CONFIG_VXLAN-m.patch --- old/patches.suse/selftests-bpf-Support-when-CONFIG_VXLAN-m.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/selftests-bpf-Support-when-CONFIG_VXLAN-m.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,98 +0,0 @@ -From: Alan Maguire <[email protected]> -Date: Thu, 15 Jan 2026 16:34:57 +0000 -Subject: selftests/bpf: Support when CONFIG_VXLAN=m -Patch-mainline: Queued in subsystem maintainer repository -Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git -Git-commit: 47d440d0a5bb822f3f4e4b2479246da5efb765e6 -References: git-fixes - -If CONFIG_VXLAN is 'm', struct vxlanhdr will not be in vmlinux.h. -Add a ___local variant to support cases where vxlan is a module. - -Fixes: 8517b1abe5ea ("selftests/bpf: Integrate test_tc_tunnel.sh tests into test_progs") -Signed-off-by: Alan Maguire <[email protected]> -Signed-off-by: Andrii Nakryiko <[email protected]> -Link: https://lore.kernel.org/bpf/[email protected] -Acked-by: Ricardo B. Marlière <[email protected]> ---- - .../selftests/bpf/progs/test_tc_tunnel.c | 21 ++++++++++++------- - 1 file changed, 13 insertions(+), 8 deletions(-) - -diff --git a/tools/testing/selftests/bpf/progs/test_tc_tunnel.c b/tools/testing/selftests/bpf/progs/test_tc_tunnel.c -index 7330c61b5730..7376df405a6b 100644 ---- a/tools/testing/selftests/bpf/progs/test_tc_tunnel.c -+++ b/tools/testing/selftests/bpf/progs/test_tc_tunnel.c -@@ -23,7 +23,12 @@ static const int cfg_udp_src = 20000; - (((__u64)len & BPF_ADJ_ROOM_ENCAP_L2_MASK) \ - << BPF_ADJ_ROOM_ENCAP_L2_SHIFT) - --#define L2_PAD_SZ (sizeof(struct vxlanhdr) + ETH_HLEN) -+struct vxlanhdr___local { -+ __be32 vx_flags; -+ __be32 vx_vni; -+}; -+ -+#define L2_PAD_SZ (sizeof(struct vxlanhdr___local) + ETH_HLEN) - - #define UDP_PORT 5555 - #define MPLS_OVER_UDP_PORT 6635 -@@ -154,7 +159,7 @@ static __always_inline int __encap_ipv4(struct __sk_buff *skb, __u8 encap_proto, - l2_len = ETH_HLEN; - if (ext_proto & EXTPROTO_VXLAN) { - udp_dst = VXLAN_UDP_PORT; -- l2_len += sizeof(struct vxlanhdr); -+ l2_len += sizeof(struct vxlanhdr___local); - } else - udp_dst = ETH_OVER_UDP_PORT; - break; -@@ -195,12 +200,12 @@ static __always_inline int __encap_ipv4(struct __sk_buff *skb, __u8 encap_proto, - flags |= BPF_F_ADJ_ROOM_ENCAP_L2_ETH; - - if (ext_proto & EXTPROTO_VXLAN) { -- struct vxlanhdr *vxlan_hdr = (struct vxlanhdr *)l2_hdr; -+ struct vxlanhdr___local *vxlan_hdr = (struct vxlanhdr___local *)l2_hdr; - - vxlan_hdr->vx_flags = VXLAN_FLAGS; - vxlan_hdr->vx_vni = VXLAN_VNI; - -- l2_hdr += sizeof(struct vxlanhdr); -+ l2_hdr += sizeof(struct vxlanhdr___local); - } - - if (bpf_skb_load_bytes(skb, 0, l2_hdr, ETH_HLEN)) -@@ -285,7 +290,7 @@ static __always_inline int __encap_ipv6(struct __sk_buff *skb, __u8 encap_proto, - l2_len = ETH_HLEN; - if (ext_proto & EXTPROTO_VXLAN) { - udp_dst = VXLAN_UDP_PORT; -- l2_len += sizeof(struct vxlanhdr); -+ l2_len += sizeof(struct vxlanhdr___local); - } else - udp_dst = ETH_OVER_UDP_PORT; - break; -@@ -325,12 +330,12 @@ static __always_inline int __encap_ipv6(struct __sk_buff *skb, __u8 encap_proto, - flags |= BPF_F_ADJ_ROOM_ENCAP_L2_ETH; - - if (ext_proto & EXTPROTO_VXLAN) { -- struct vxlanhdr *vxlan_hdr = (struct vxlanhdr *)l2_hdr; -+ struct vxlanhdr___local *vxlan_hdr = (struct vxlanhdr___local *)l2_hdr; - - vxlan_hdr->vx_flags = VXLAN_FLAGS; - vxlan_hdr->vx_vni = VXLAN_VNI; - -- l2_hdr += sizeof(struct vxlanhdr); -+ l2_hdr += sizeof(struct vxlanhdr___local); - } - - if (bpf_skb_load_bytes(skb, 0, l2_hdr, ETH_HLEN)) -@@ -639,7 +644,7 @@ static int decap_internal(struct __sk_buff *skb, int off, int len, char proto) - olen += ETH_HLEN; - break; - case VXLAN_UDP_PORT: -- olen += ETH_HLEN + sizeof(struct vxlanhdr); -+ olen += ETH_HLEN + sizeof(struct vxlanhdr___local); - break; - } - break; --- -2.53.0 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/usb-gadget-f_hid-Add-missing-error-code.patch new/patches.suse/usb-gadget-f_hid-Add-missing-error-code.patch --- old/patches.suse/usb-gadget-f_hid-Add-missing-error-code.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/usb-gadget-f_hid-Add-missing-error-code.patch 2026-04-23 07:00:02.000000000 +0200 @@ -0,0 +1,40 @@ +From: Ethan Tidmore <[email protected]> +Date: Thu, 2 Apr 2026 13:00:08 -0500 +Subject: usb: gadget: f_hid: Add missing error code +Git-commit: 2c863dbbeac7b919d4634ad886978a6731916de3 +Patch-mainline: v7.1-rc1 +References: git-fixes + +Currently in cdev_alloc() error path no error code is assigned. + +Assign error code '-ENOMEM'. + +Detected by Smatch: +drivers/usb/gadget/function/f_hid.c:1291 hidg_bind() +warn: missing error code 'status' + +Fixes: 81ebd43cc0d6d ("usb: gadget: f_hid: don't call cdev_init while cdev in use") +Signed-off-by: Ethan Tidmore <[email protected]> +Acked-by: Peter Korsgaard <[email protected]> +Reviewed-by: Michael Zimmermann <[email protected]> +Link: https://patch.msgid.link/[email protected] +Signed-off-by: Greg Kroah-Hartman <[email protected]> +Acked-by: Jiri Slaby <[email protected]> +--- + drivers/usb/gadget/function/f_hid.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/usb/gadget/function/f_hid.c ++++ b/drivers/usb/gadget/function/f_hid.c +@@ -1278,8 +1278,10 @@ static int hidg_bind(struct usb_configur + + /* create char device */ + hidg->cdev = cdev_alloc(); +- if (!hidg->cdev) ++ if (!hidg->cdev) { ++ status = -ENOMEM; + goto fail_free_all; ++ } + hidg->cdev->ops = &f_hidg_fops; + + status = cdev_device_add(hidg->cdev, &hidg->dev); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/usb-typec-ucsi-skip-connector-validation-before-init.patch new/patches.suse/usb-typec-ucsi-skip-connector-validation-before-init.patch --- old/patches.suse/usb-typec-ucsi-skip-connector-validation-before-init.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/usb-typec-ucsi-skip-connector-validation-before-init.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,43 +0,0 @@ -From: Nathan Rebello <[email protected]> -Date: Tue, 7 Apr 2026 02:39:58 -0400 -Subject: usb: typec: ucsi: skip connector validation before init -Git-commit: 5a1140404cbf7ba40137dfb1fb96893aa9a67d68 -Patch-mainline: v7.0 or v7.0-rc8 (next release) -References: git-fixes - -Notifications can arrive before ucsi_init() has populated -ucsi->cap.num_connectors via GET_CAPABILITY. At that point -num_connectors is still 0, causing all valid connector numbers to be -incorrectly rejected as bogus. - -Skip the bounds check when num_connectors is 0 (not yet initialized). -Pre-init notifications are already handled safely by the early-event -guard in ucsi_connector_change(). - -Reported-by: Takashi Iwai <[email protected]> -Fixes: d2d8c17ac01a ("usb: typec: ucsi: validate connector number in ucsi_notify_common()") -Cc: [email protected] -Signed-off-by: Nathan Rebello <[email protected]> -Tested-by: Takashi Iwai <[email protected]> -Link: https://patch.msgid.link/[email protected] -Signed-off-by: Greg Kroah-Hartman <[email protected]> -Acked-by: Jiri Slaby <[email protected]> ---- - drivers/usb/typec/ucsi/ucsi.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/usb/typec/ucsi/ucsi.c b/drivers/usb/typec/ucsi/ucsi.c -index 8333bdaf5566..46262ee0d192 100644 ---- a/drivers/usb/typec/ucsi/ucsi.c -+++ b/drivers/usb/typec/ucsi/ucsi.c -@@ -44,7 +44,8 @@ void ucsi_notify_common(struct ucsi *ucsi, u32 cci) - return; - - if (UCSI_CCI_CONNECTOR(cci)) { -- if (UCSI_CCI_CONNECTOR(cci) <= ucsi->cap.num_connectors) -+ if (!ucsi->cap.num_connectors || -+ UCSI_CCI_CONNECTOR(cci) <= ucsi->cap.num_connectors) - ucsi_connector_change(ucsi, UCSI_CCI_CONNECTOR(cci)); - else - dev_err(ucsi->dev, "bogus connector number in CCI: %lu\n", - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/vfs-add-super_operations-get_inode_dev new/patches.suse/vfs-add-super_operations-get_inode_dev --- old/patches.suse/vfs-add-super_operations-get_inode_dev 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/vfs-add-super_operations-get_inode_dev 2026-04-23 07:00:02.000000000 +0200 @@ -30,7 +30,7 @@ fs/proc_namespace.c | 3 ++- fs/stat.c | 2 +- include/linux/fs.h | 8 ++++++++ - include/linux/fs/super_types.h | 1 + + include/linux/fs/super_types.h | 2 ++ include/trace/events/filelock.h | 8 ++++---- include/trace/events/filemap.h | 6 +++--- include/trace/events/writeback.h | 2 +- @@ -43,11 +43,11 @@ net/unix/diag.c | 2 +- security/tomoyo/condition.c | 2 +- security/tomoyo/realpath.c | 1 + - 26 files changed, 58 insertions(+), 44 deletions(-) + 26 files changed, 59 insertions(+), 44 deletions(-) --- a/fs/eventpoll.c +++ b/fs/eventpoll.c -@@ -1084,7 +1084,7 @@ static void ep_show_fdinfo(struct seq_fi +@@ -1088,7 +1088,7 @@ static void ep_show_fdinfo(struct seq_fi epi->ffd.fd, epi->event.events, (long long)epi->event.data, (long long)epi->ffd.file->f_pos, @@ -96,7 +96,7 @@ __entry->length = iomap_length(iter); --- a/fs/locks.c +++ b/fs/locks.c -@@ -220,12 +220,13 @@ static void +@@ -230,12 +230,13 @@ static void locks_check_ctx_lists(struct inode *inode) { struct file_lock_context *ctx = inode->i_flctx; @@ -111,7 +111,7 @@ inode->i_ino); locks_dump_ctx_list(&ctx->flc_flock, "FLOCK"); locks_dump_ctx_list(&ctx->flc_posix, "POSIX"); -@@ -238,13 +239,14 @@ locks_check_ctx_file_list(struct file *f +@@ -248,13 +249,14 @@ locks_check_ctx_file_list(struct file *f { struct file_lock_core *flc; struct inode *inode = file_inode(filp); @@ -128,7 +128,7 @@ flc->flc_owner, flc->flc_flags, flc->flc_type, flc->flc_pid); } -@@ -2866,8 +2868,8 @@ static void lock_get_status(struct seq_f +@@ -2897,8 +2899,8 @@ static void lock_get_status(struct seq_f if (inode) { /* userspace relies on this representation of dev_t */ seq_printf(f, "%d %02x:%02x:%lu ", pid, @@ -152,7 +152,7 @@ --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c -@@ -2881,10 +2881,11 @@ static void nfs4_show_fname(struct seq_f +@@ -2887,10 +2887,11 @@ static void nfs4_show_fname(struct seq_f static void nfs4_show_superblock(struct seq_file *s, struct nfsd_file *f) { struct inode *inode = file_inode(f->nf_file); @@ -168,7 +168,7 @@ --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c -@@ -1240,7 +1240,7 @@ static int wait_for_concurrent_writes(st +@@ -1260,7 +1260,7 @@ static int wait_for_concurrent_writes(st int err = 0; if (atomic_read(&inode->i_writecount) > 1 @@ -177,7 +177,7 @@ dprintk("nfsd: write defer %d\n", task_pid_nr(current)); msleep(10); dprintk("nfsd: write resume %d\n", task_pid_nr(current)); -@@ -1251,7 +1251,7 @@ static int wait_for_concurrent_writes(st +@@ -1271,7 +1271,7 @@ static int wait_for_concurrent_writes(st err = vfs_fsync(file, 0); } last_ino = inode->i_ino; @@ -228,7 +228,7 @@ ino = inode->i_ino; pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT; } -@@ -717,8 +717,8 @@ static int do_procmap_query(struct mm_st +@@ -718,8 +718,8 @@ static int do_procmap_query(struct mm_st const struct inode *inode = file_user_inode(vma->vm_file); karg.vma_offset = ((__u64)vma->vm_pgoff) << PAGE_SHIFT; @@ -279,7 +279,7 @@ stat->nlink = inode->i_nlink; --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -3606,4 +3606,12 @@ static inline bool extensible_ioctl_vali +@@ -3645,4 +3645,12 @@ static inline bool extensible_ioctl_vali return true; } @@ -294,10 +294,11 @@ #endif /* _LINUX_FS_H */ --- a/include/linux/fs/super_types.h +++ b/include/linux/fs/super_types.h -@@ -124,6 +124,7 @@ struct super_operations { - */ - int (*remove_bdev)(struct super_block *sb, struct block_device *bdev); - void (*shutdown)(struct super_block *sb); +@@ -127,6 +127,8 @@ struct super_operations { + + /* Report a filesystem error */ + void (*report_error)(const struct fserror_event *event); ++ + dev_t (*get_inode_dev)(const struct inode *); }; @@ -371,7 +372,7 @@ file->f_mapping->host->i_rdev; --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h -@@ -837,7 +837,7 @@ DECLARE_EVENT_CLASS(writeback_inode_temp +@@ -836,7 +836,7 @@ DECLARE_EVENT_CLASS(writeback_inode_temp ), TP_fast_assign( @@ -382,7 +383,7 @@ __entry->mode = inode->i_mode; --- a/init/do_mounts.c +++ b/init/do_mounts.c -@@ -169,7 +169,7 @@ static int __init do_mount_root(const ch +@@ -162,7 +162,7 @@ static int __init do_mount_root(const ch init_chdir("/root"); s = current->fs->pwd.dentry->d_sb; @@ -433,7 +434,7 @@ return audit_mark_compare(mark, ino, dev); --- a/kernel/auditsc.c +++ b/kernel/auditsc.c -@@ -2246,7 +2246,7 @@ static void audit_copy_inode(struct audi +@@ -2223,7 +2223,7 @@ static void audit_copy_inode(struct audi struct inode *inode, unsigned int flags) { name->ino = inode->i_ino; @@ -442,7 +443,7 @@ name->mode = inode->i_mode; name->uid = inode->i_uid; name->gid = inode->i_gid; -@@ -2318,7 +2318,7 @@ void __audit_inode(struct filename *name +@@ -2295,7 +2295,7 @@ void __audit_inode(struct filename *name if (n->ino) { /* valid inode number, use that for the comparison */ if (n->ino != inode->i_ino || @@ -451,7 +452,7 @@ continue; } else if (n->name) { /* inode number has not been set, check the name */ -@@ -2424,7 +2424,7 @@ void __audit_inode_child(struct inode *p +@@ -2401,7 +2401,7 @@ void __audit_inode_child(struct inode *p /* look for a parent entry first */ if (!found_parent && (n->type == AUDIT_TYPE_PARENT || n->type == AUDIT_TYPE_UNKNOWN) && @@ -462,7 +463,7 @@ found_parent = n; --- a/kernel/events/core.c +++ b/kernel/events/core.c -@@ -9433,7 +9433,7 @@ static void perf_event_mmap_event(struct +@@ -9730,7 +9730,7 @@ static void perf_event_mmap_event(struct goto cpy_name; } inode = file_user_inode(vma->vm_file); @@ -484,15 +485,15 @@ return -EINVAL; --- a/net/unix/diag.c +++ b/net/unix/diag.c -@@ -33,7 +33,7 @@ static int sk_diag_dump_vfs(struct sock +@@ -36,7 +36,7 @@ static int sk_diag_dump_vfs(struct sock + dentry = unix_sk(sk)->path.dentry; if (dentry) { - struct unix_diag_vfs uv = { - .udiag_vfs_ino = d_backing_inode(dentry)->i_ino, -- .udiag_vfs_dev = dentry->d_sb->s_dev, -+ .udiag_vfs_dev = inode_get_dev(d_backing_inode(dentry)), - }; - - return nla_put(nlskb, UNIX_DIAG_VFS, sizeof(uv), &uv); + uv.udiag_vfs_ino = d_backing_inode(dentry)->i_ino; +- uv.udiag_vfs_dev = dentry->d_sb->s_dev; ++ uv.udiag_vfs_dev = inode_get_dev(d_backing_inode(dentry)); + have_vfs = true; + } + unix_state_unlock(sk); --- a/security/tomoyo/condition.c +++ b/security/tomoyo/condition.c @@ -743,7 +743,7 @@ void tomoyo_get_attributes(struct tomoyo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/wifi-iwlwifi-Add-missing-firmware-info-for-bz-b0-mod.patch new/patches.suse/wifi-iwlwifi-Add-missing-firmware-info-for-bz-b0-mod.patch --- old/patches.suse/wifi-iwlwifi-Add-missing-firmware-info-for-bz-b0-mod.patch 2026-04-12 19:36:53.000000000 +0200 +++ new/patches.suse/wifi-iwlwifi-Add-missing-firmware-info-for-bz-b0-mod.patch 2026-04-23 07:00:02.000000000 +0200 @@ -15,12 +15,12 @@ Signed-off-by: Takashi Iwai <[email protected]> --- - drivers/net/wireless/intel/iwlwifi/cfg/bz.c | 7 +++++++ + drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c | 7 +++++++ 1 file changed, 7 insertions(+) ---- a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c -+++ b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c -@@ -22,6 +22,9 @@ +--- a/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c ++++ b/drivers/net/wireless/intel/iwlwifi/cfg/rf-fm.c +@@ -8,6 +8,9 @@ #define IWL_BZ_A_FM_B_FW_PRE "iwlwifi-bz-a0-fm-b0" #define IWL_BZ_A_FM_C_FW_PRE "iwlwifi-bz-a0-fm-c0" #define IWL_BZ_A_FM4_B_FW_PRE "iwlwifi-bz-a0-fm4-b0" @@ -30,7 +30,7 @@ #define IWL_GL_B_FM_B_FW_PRE "iwlwifi-gl-b0-fm-b0" #define IWL_GL_C_FM_C_FW_PRE "iwlwifi-gl-c0-fm-c0" -@@ -104,5 +107,9 @@ const struct iwl_mac_cfg iwl_gl_mac_cfg +@@ -60,5 +63,9 @@ const char iwl_be401_name[] = "Intel(R) Wi-Fi 7 BE401 320MHz"; IWL_CORE_FW(IWL_BZ_A_FM_B_FW_PRE, IWL_BZ_UCODE_CORE_MAX); IWL_CORE_FW(IWL_BZ_A_FM_C_FW_PRE, IWL_BZ_UCODE_CORE_MAX); IWL_CORE_FW(IWL_BZ_A_FM4_B_FW_PRE, IWL_BZ_UCODE_CORE_MAX); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/writeback-Fix-use-after-free-in-inode_switch_wbs_wor.patch new/patches.suse/writeback-Fix-use-after-free-in-inode_switch_wbs_wor.patch --- old/patches.suse/writeback-Fix-use-after-free-in-inode_switch_wbs_wor.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/writeback-Fix-use-after-free-in-inode_switch_wbs_wor.patch 2026-04-23 07:00:02.000000000 +0200 @@ -0,0 +1,103 @@ +From: Jan Kara <[email protected]> +Date: Mon, 13 Apr 2026 11:36:19 +0200 +Subject: writeback: Fix use after free in inode_switch_wbs_work_fn() +References: bsc#1259701 +Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git +Git-commit: af423cdba49c66b2bc49f20e97c7eeaed7933387 +Patch-mainline: Queued in subsystem maintainer repo + +inode_switch_wbs_work_fn() has a loop like: + + wb_get(new_wb); + while (1) { + list = llist_del_all(&new_wb->switch_wbs_ctxs); + /* Nothing to do? */ + if (!list) + break; + ... process the items ... + } + +Now adding of items to the list looks like: + +wb_queue_isw() + if (llist_add(&isw->list, &wb->switch_wbs_ctxs)) + queue_work(isw_wq, &wb->switch_work); + +Because inode_switch_wbs_work_fn() loops when processing isw items, it +can happen that wb->switch_work is pending while wb->switch_wbs_ctxs is +empty. This is a problem because in that case wb can get freed (no isw +items -> no wb reference) while the work is still pending causing +use-after-free issues. + +We cannot just fix this by cancelling work when freeing wb because that +could still trigger problematic 0 -> 1 transitions on wb refcount due to +wb_get() in inode_switch_wbs_work_fn(). It could be all handled with +more careful code but that seems unnecessarily complex so let's avoid +that until it is proven that the looping actually brings practical +benefit. Just remove the loop from inode_switch_wbs_work_fn() instead. +That way when wb_queue_isw() queues work, we are guaranteed we have +added the first item to wb->switch_wbs_ctxs and nobody is going to +remove it (and drop the wb reference it holds) until the queued work +runs. + +Fixes: e1b849cfa6b6 ("writeback: Avoid contention on wb->list_lock when switching inodes") +CC: [email protected] +Signed-off-by: Jan Kara <[email protected]> +Link: https://patch.msgid.link/[email protected] +Acked-by: Tejun Heo <[email protected]> +Signed-off-by: Christian Brauner <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + fs/fs-writeback.c | 36 +++++++++++++++++++----------------- + 1 file changed, 19 insertions(+), 17 deletions(-) + +--- a/fs/fs-writeback.c ++++ b/fs/fs-writeback.c +@@ -570,28 +570,30 @@ void inode_switch_wbs_work_fn(struct wor + struct inode_switch_wbs_context *isw, *next_isw; + struct llist_node *list; + ++ list = llist_del_all(&new_wb->switch_wbs_ctxs); + /* +- * Grab out reference to wb so that it cannot get freed under us ++ * Nothing to do? That would be a problem as references held by isw ++ * items protect wb from freeing... ++ */ ++ if (WARN_ON_ONCE(!list)) ++ return; ++ ++ /* ++ * Grab our reference to wb so that it cannot get freed under us + * after we process all the isw items. + */ + wb_get(new_wb); +- while (1) { +- list = llist_del_all(&new_wb->switch_wbs_ctxs); +- /* Nothing to do? */ +- if (!list) +- break; +- /* +- * In addition to synchronizing among switchers, I_WB_SWITCH +- * tells the RCU protected stat update paths to grab the i_page +- * lock so that stat transfer can synchronize against them. +- * Let's continue after I_WB_SWITCH is guaranteed to be +- * visible. +- */ +- synchronize_rcu(); ++ /* ++ * In addition to synchronizing among switchers, I_WB_SWITCH ++ * tells the RCU protected stat update paths to grab the i_page ++ * lock so that stat transfer can synchronize against them. ++ * Let's continue after I_WB_SWITCH is guaranteed to be ++ * visible. ++ */ ++ synchronize_rcu(); + +- llist_for_each_entry_safe(isw, next_isw, list, list) +- process_inode_switch_wbs(new_wb, isw); +- } ++ llist_for_each_entry_safe(isw, next_isw, list, list) ++ process_inode_switch_wbs(new_wb, isw); + wb_put(new_wb); + } + ++++++ series.conf ++++++ ++++ 3418 lines (skipped) ++++ between /work/SRC/openSUSE:Factory/kernel-source/series.conf ++++ and /work/SRC/openSUSE:Factory/.kernel-source.new.11940/series.conf ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.XwkyqS/_old 2026-04-28 11:55:38.131667231 +0200 +++ /var/tmp/diff_new_pack.XwkyqS/_new 2026-04-28 11:55:38.171668909 +0200 @@ -1,4 +1,4 @@ -2026-04-12 17:36:53 +0000 -GIT Revision: c7234f7435aefeda97031bd56ce6912c3fe2a3ce +2026-04-24 04:01:30 +0000 +GIT Revision: 7cb5b59b438eeb1eff7197a4aa2436724f83737b GIT Branch: stable
