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
 

Reply via email to