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 2024-01-26 22:46:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kernel-source (Old)
 and      /work/SRC/openSUSE:Factory/.kernel-source.new.1815 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kernel-source"

Fri Jan 26 22:46:50 2024 rev:718 rq:1141663 version:6.7.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes        
2024-01-23 22:55:04.290061819 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new.1815/dtb-aarch64.changes      
2024-01-26 22:46:57.883544336 +0100
@@ -1,0 +2,84 @@
+Fri Jan 26 07:27:41 CET 2024 - jsl...@suse.cz
+
+- rpm/constraints.in: add static multibuild packages
+  Commit 841012b049a5 (rpm/mkspec: use kernel-source: prefix for
+  constraints on multibuild) added "kernel-source:" prefix to the
+  dynamically generated kernels. But there are also static ones like
+  kernel-docs. Those fail to build as the constraints are still not
+  applied.
+  So add the prefix also to the static ones.
+  Note kernel-docs-rt is given kernel-source-rt prefix. I am not sure it
+  will ever be multibuilt...
+- commit c2e0681
+
+-------------------------------------------------------------------
+Thu Jan 25 12:41:57 CET 2024 - msucha...@suse.de
+
+- Revert "Limit kernel-source build to architectures for which the kernel 
binary"
+  This reverts commit 08a9e44c00758b5f3f3b641830ab6affff041132.
+  The fix for bsc#1108281 directly causes bsc#1218768, revert.
+- commit 2943b8a
+
+-------------------------------------------------------------------
+Thu Jan 25 12:39:11 CET 2024 - msucha...@suse.de
+
+- mkspec: Include constraints for both multibuild and plain package always
+  There is no need to check for multibuild flag, the constraints can be
+  always generated for both cases.
+- commit 308ea09
+
+-------------------------------------------------------------------
+Thu Jan 25 11:53:37 CET 2024 - jsl...@suse.cz
+
+- rpm/mkspec: use kernel-source: prefix for constraints on multibuild
+  Otherwise the constraints are not applied with multibuild enabled.
+- commit 841012b
+
+-------------------------------------------------------------------
+Wed Jan 24 14:40:23 CET 2024 - jsl...@suse.cz
+
+- rpm/kernel-source.rpmlintrc: add action-ebpf
+  Upstream commit a79d8ba734bd (selftests: tc-testing: remove buildebpf
+  plugin) added this precompiled binary blob. Adapt rpmlintrc for
+  kernel-source.
+- commit b5ccb33
+
+-------------------------------------------------------------------
+Tue Jan 23 12:39:45 CET 2024 - ti...@suse.de
+
+- scripts/tar-up.sh: don't add spurious entry from kernel-sources.changes.old
+  The previous change added the manual entry from kernel-sources.change.old
+  to old_changelog.txt unnecessarily.  Let's fix it.
+- commit fb033e8
+
+-------------------------------------------------------------------
+Tue Jan 23 07:35:27 CET 2024 - jsl...@suse.cz
+
+- rpm/kernel-docs.spec.in: fix build with 6.8
+  Since upstream commit f061c9f7d058 (Documentation: Document each netlink
+  family), the build needs python yaml.
+- commit 6a7ece3
+
+-------------------------------------------------------------------
+Mon Jan 22 08:46:41 CET 2024 - jsl...@suse.cz
+
+- futex: Prevent the reuse of stale pi_state (bsc#1218841).
+  Update upstream status (Queued in subsystem maintainer repository).
+- commit a3ee207
+
+-------------------------------------------------------------------
+Mon Jan 22 08:40:52 CET 2024 - jsl...@suse.cz
+
+- Refresh
+  patches.rpmify/media-solo6x10-replace-max-a-min-b-c-by-clamp-b-a-c.patch.
+  Update usptream status.
+- commit 589bdfa
+
+-------------------------------------------------------------------
+Sun Jan 21 12:27:18 CET 2024 - col...@suse.de
+
+- Update config files, enable CONFIG_IMA_DISABLE_HTABLE in all archs for
+  Tumbleweed as SLE15-SP6 kernel does (bsc#1218400).
+- commit 020caa6
+
+-------------------------------------------------------------------
@@ -546,0 +631,6 @@
+Wed Jan  3 11:44:52 CET 2024 - msucha...@suse.de
+
+- rpm/config.sh: Enable multibuild.
+- commit 7b72f91
+
+-------------------------------------------------------------------
@@ -5708 +5798 @@
-- commit 06e7b0d
+- commit d8da3f8
dtb-armv6l.changes: same change
dtb-armv7l.changes: same change
dtb-riscv64.changes: same change
kernel-64kb.changes: same change
kernel-debug.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

New:
----
  _multibuild

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ dtb-aarch64.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.271846420 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.271846420 +0100
@@ -27,7 +27,7 @@
 Name:           dtb-aarch64
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif

dtb-armv6l.spec: same change
dtb-armv7l.spec: same change
dtb-riscv64.spec: same change
++++++ kernel-64kb.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.395850885 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.395850885 +0100
@@ -19,7 +19,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define compress_modules zstd
 %define compress_vmlinux xz
@@ -115,7 +115,7 @@
 Group:          System/Kernel
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif

++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.435852326 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.439852470 +0100
@@ -19,7 +19,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define compress_modules zstd
 %define compress_vmlinux xz
@@ -115,7 +115,7 @@
 Group:          System/Kernel
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif
@@ -299,7 +299,7 @@
 NoSource:       120
 NoSource:       121
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  aarch64 %ix86 ppc64le powerpc64le x86_64
+ExclusiveArch:  aarch64 %ix86 ppc64le x86_64
 %else
 ExclusiveArch:  do_not_build
 %endif

++++++ kernel-default.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.467853478 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.471853622 +0100
@@ -19,7 +19,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define compress_modules zstd
 %define compress_vmlinux xz
@@ -115,7 +115,7 @@
 Group:          System/Kernel
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif
@@ -299,7 +299,7 @@
 NoSource:       120
 NoSource:       121
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc64le powerpc64le riscv64 
s390x x86_64
+ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc64le riscv64 s390x x86_64
 %else
 ExclusiveArch:  do_not_build
 %endif

++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.495854487 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.499854631 +0100
@@ -18,7 +18,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define build_html 1
 %define build_pdf 0
@@ -33,7 +33,7 @@
 Group:          Documentation/Man
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif
@@ -52,6 +52,7 @@
 BuildRequires:  graphviz-gnome
 %if ! 0%{?suse_version} || 0%{?suse_version} > 1500
 BuildRequires:  python3-base
+BuildRequires:  python3-PyYAML
 BuildRequires:  python3-Sphinx
 BuildRequires:  texlive-amscls
 %else
@@ -86,7 +87,6 @@
 Provides:       %name = %version-%source_rel
 Provides:       %name-srchash-%git_commit
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  noarch %ix86 aarch64 armv6hl armv7hl ppc64le powerpc64le 
riscv64 s390x x86_64
 BuildArch:      noarch
 %else
 ExclusiveArch:  do_not_build

++++++ kernel-kvmsmall.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.527855639 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.531855783 +0100
@@ -19,7 +19,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define compress_modules zstd
 %define compress_vmlinux xz
@@ -115,7 +115,7 @@
 Group:          System/Kernel
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif
@@ -299,7 +299,7 @@
 NoSource:       120
 NoSource:       121
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  aarch64 ppc64le powerpc64le x86_64
+ExclusiveArch:  aarch64 ppc64le x86_64
 %else
 ExclusiveArch:  do_not_build
 %endif

++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.559856792 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.563856936 +0100
@@ -19,7 +19,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define compress_modules zstd
 %define compress_vmlinux xz
@@ -115,7 +115,7 @@
 Group:          System/Kernel
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif

++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.603858376 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.603858376 +0100
@@ -44,7 +44,7 @@
 %endif
 %endif
 %endif
-BuildRequires:  
kernel%kernel_flavor-srchash-4959dd8dad49eb4f1644953682e53c1d966d6eb3
+BuildRequires:  
kernel%kernel_flavor-srchash-6aca25404404e4f72fa252563503b29fe5828cca
 
 %if 0%{?rhel_version}
 BuildRequires:  kernel
@@ -52,7 +52,7 @@
 %endif
 
 %if ! 0%{?is_kotd} || %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  aarch64 armv6hl armv7hl ppc64le powerpc64le riscv64 s390x 
x86_64
+ExclusiveArch:  aarch64 armv6hl armv7hl ppc64le riscv64 s390x x86_64
 %else
 ExclusiveArch:  do_not_build
 %endif
@@ -62,7 +62,7 @@
 Group:          SLES
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif

++++++ kernel-obs-qa.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.643859817 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.643859817 +0100
@@ -29,7 +29,7 @@
 BuildRequires:  kernel-obs-build
 BuildRequires:  modutils
 %if ! 0%{?is_kotd} || %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  aarch64 armv6hl armv7hl ppc64le powerpc64le riscv64 s390x 
x86_64
+ExclusiveArch:  aarch64 armv6hl armv7hl ppc64le riscv64 s390x x86_64
 %else
 ExclusiveArch:  do_not_build
 %endif
@@ -38,7 +38,7 @@
 Group:          SLES
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif

++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.679861114 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.683861258 +0100
@@ -19,7 +19,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define compress_modules zstd
 %define compress_vmlinux xz
@@ -115,7 +115,7 @@
 Group:          System/Kernel
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif

++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.731862986 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.735863130 +0100
@@ -18,7 +18,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 
 %include %_sourcedir/kernel-spec-macros
@@ -33,7 +33,7 @@
 Name:           kernel-source
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif
@@ -123,7 +123,6 @@
 Source120:      kabi.tar.bz2
 Source121:      sysctl.tar.bz2
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  noarch %ix86 aarch64 armv6hl armv7hl ppc64le powerpc64le 
riscv64 s390x x86_64
 BuildArch:      noarch
 %else
 ExclusiveArch:  do_not_build

++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.775864571 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.779864714 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 
 %include %_sourcedir/kernel-spec-macros
@@ -28,7 +28,7 @@
 Version:        6.7.1
 %if %using_buildservice
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif
@@ -42,7 +42,7 @@
 %ifarch aarch64
 Requires:       kernel-64kb-devel = %version-%source_rel
 %endif
-%ifarch aarch64 armv6hl armv7hl %ix86 ppc64le powerpc64le riscv64 s390x x86_64
+%ifarch aarch64 armv6hl armv7hl %ix86 ppc64le riscv64 s390x x86_64
 Requires:       kernel-default-devel = %version-%source_rel
 %endif
 %ifarch armv7hl
@@ -58,7 +58,7 @@
 Source:         README.KSYMS
 Requires:       kernel-devel%variant = %version-%source_rel
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  %ix86 aarch64 armv6hl armv7hl ppc64le powerpc64le riscv64 
s390x x86_64
+ExclusiveArch:  %ix86 aarch64 armv6hl armv7hl ppc64le riscv64 s390x x86_64
 %else
 ExclusiveArch:  do_not_build
 %endif

++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.811865867 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.811865867 +0100
@@ -19,7 +19,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define compress_modules zstd
 %define compress_vmlinux xz
@@ -115,7 +115,7 @@
 Group:          System/Kernel
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif
@@ -299,7 +299,7 @@
 NoSource:       120
 NoSource:       121
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc64le powerpc64le riscv64 
s390x x86_64
+ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc64le riscv64 s390x x86_64
 %else
 ExclusiveArch:  do_not_build
 %endif

++++++ kernel-zfcpdump.spec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.843867020 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.847867164 +0100
@@ -19,7 +19,7 @@
 
 %define srcversion 6.7
 %define patchversion 6.7.1
-%define git_commit 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+%define git_commit 6aca25404404e4f72fa252563503b29fe5828cca
 %define variant %{nil}
 %define compress_modules zstd
 %define compress_vmlinux xz
@@ -115,7 +115,7 @@
 Group:          System/Kernel
 Version:        6.7.1
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g4959dd8
+Release:        <RELEASE>.g6aca254
 %else
 Release:        0
 %endif

++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:06.979871918 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:06.979871918 +0100
@@ -3,13 +3,21 @@
   <overwrite>
     <conditions>
 <package>kernel-64kb</package>
+<package>kernel-source:kernel-64kb</package>
 <package>kernel-debug</package>
+<package>kernel-source:kernel-debug</package>
 <package>kernel-default</package>
+<package>kernel-source:kernel-default</package>
 <package>kernel-kvmsmall</package>
+<package>kernel-source:kernel-kvmsmall</package>
 <package>kernel-lpae</package>
+<package>kernel-source:kernel-lpae</package>
 <package>kernel-pae</package>
+<package>kernel-source:kernel-pae</package>
 <package>kernel-vanilla</package>
+<package>kernel-source:kernel-vanilla</package>
 <package>kernel-zfcpdump</package>
+<package>kernel-source:kernel-zfcpdump</package>
     </conditions>
     <hardware>
       <disk>
@@ -25,6 +33,7 @@
   <overwrite>
     <conditions>
       <package>kernel-syzkaller</package>
+      <package>kernel-source:kernel-syzkaller</package>
     </conditions>
     <hardware>
       <physicalmemory>
@@ -53,6 +62,8 @@
     <conditions>
       <package>kernel-docs</package>
       <package>kernel-docs-rt</package>
+      <package>kernel-source:kernel-docs</package>
+      <package>kernel-source-rt:kernel-docs-rt</package>
     </conditions>
     <hardware>
       <physicalmemory>
@@ -67,13 +78,21 @@
       <arch>armv7l</arch>
       <arch>armv6l</arch>
 <package>kernel-64kb</package>
+<package>kernel-source:kernel-64kb</package>
 <package>kernel-debug</package>
+<package>kernel-source:kernel-debug</package>
 <package>kernel-default</package>
+<package>kernel-source:kernel-default</package>
 <package>kernel-kvmsmall</package>
+<package>kernel-source:kernel-kvmsmall</package>
 <package>kernel-lpae</package>
+<package>kernel-source:kernel-lpae</package>
 <package>kernel-pae</package>
+<package>kernel-source:kernel-pae</package>
 <package>kernel-vanilla</package>
+<package>kernel-source:kernel-vanilla</package>
 <package>kernel-zfcpdump</package>
+<package>kernel-source:kernel-zfcpdump</package>
     </conditions>
     <hardware>
       <disk>
@@ -87,13 +106,21 @@
     <conditions>
       <arch>s390x</arch>
 <package>kernel-64kb</package>
+<package>kernel-source:kernel-64kb</package>
 <package>kernel-debug</package>
+<package>kernel-source:kernel-debug</package>
 <package>kernel-default</package>
+<package>kernel-source:kernel-default</package>
 <package>kernel-kvmsmall</package>
+<package>kernel-source:kernel-kvmsmall</package>
 <package>kernel-lpae</package>
+<package>kernel-source:kernel-lpae</package>
 <package>kernel-pae</package>
+<package>kernel-source:kernel-pae</package>
 <package>kernel-vanilla</package>
+<package>kernel-source:kernel-vanilla</package>
 <package>kernel-zfcpdump</package>
+<package>kernel-source:kernel-zfcpdump</package>
     </conditions>
     <hardware>
       <disk>
@@ -111,13 +138,21 @@
       <arch>i586</arch>
       <arch>x86_64</arch>
 <package>kernel-64kb</package>
+<package>kernel-source:kernel-64kb</package>
 <package>kernel-debug</package>
+<package>kernel-source:kernel-debug</package>
 <package>kernel-default</package>
+<package>kernel-source:kernel-default</package>
 <package>kernel-kvmsmall</package>
+<package>kernel-source:kernel-kvmsmall</package>
 <package>kernel-lpae</package>
+<package>kernel-source:kernel-lpae</package>
 <package>kernel-pae</package>
+<package>kernel-source:kernel-pae</package>
 <package>kernel-vanilla</package>
+<package>kernel-source:kernel-vanilla</package>
 <package>kernel-zfcpdump</package>
+<package>kernel-source:kernel-zfcpdump</package>
     </conditions>
     <hardware>
       <jobs>8</jobs>
@@ -131,13 +166,21 @@
       <arch>ppc64</arch>
       <arch>ppc64le</arch>
 <package>kernel-64kb</package>
+<package>kernel-source:kernel-64kb</package>
 <package>kernel-debug</package>
+<package>kernel-source:kernel-debug</package>
 <package>kernel-default</package>
+<package>kernel-source:kernel-default</package>
 <package>kernel-kvmsmall</package>
+<package>kernel-source:kernel-kvmsmall</package>
 <package>kernel-lpae</package>
+<package>kernel-source:kernel-lpae</package>
 <package>kernel-pae</package>
+<package>kernel-source:kernel-pae</package>
 <package>kernel-vanilla</package>
+<package>kernel-source:kernel-vanilla</package>
 <package>kernel-zfcpdump</package>
+<package>kernel-source:kernel-zfcpdump</package>
     </conditions>
     <hardware>
       <jobs>4</jobs>
@@ -151,13 +194,21 @@
       <arch>armv6l</arch>
       <arch>armv7l</arch>
 <package>kernel-64kb</package>
+<package>kernel-source:kernel-64kb</package>
 <package>kernel-debug</package>
+<package>kernel-source:kernel-debug</package>
 <package>kernel-default</package>
+<package>kernel-source:kernel-default</package>
 <package>kernel-kvmsmall</package>
+<package>kernel-source:kernel-kvmsmall</package>
 <package>kernel-lpae</package>
+<package>kernel-source:kernel-lpae</package>
 <package>kernel-pae</package>
+<package>kernel-source:kernel-pae</package>
 <package>kernel-vanilla</package>
+<package>kernel-source:kernel-vanilla</package>
 <package>kernel-zfcpdump</package>
+<package>kernel-source:kernel-zfcpdump</package>
     </conditions>
     <hardware>
       <jobs>2</jobs>
@@ -182,13 +233,21 @@
       <arch>aarch64</arch>
       <arch>x86_64</arch>
 <package>kernel-64kb</package>
+<package>kernel-source:kernel-64kb</package>
 <package>kernel-debug</package>
+<package>kernel-source:kernel-debug</package>
 <package>kernel-default</package>
+<package>kernel-source:kernel-default</package>
 <package>kernel-kvmsmall</package>
+<package>kernel-source:kernel-kvmsmall</package>
 <package>kernel-lpae</package>
+<package>kernel-source:kernel-lpae</package>
 <package>kernel-pae</package>
+<package>kernel-source:kernel-pae</package>
 <package>kernel-vanilla</package>
+<package>kernel-source:kernel-vanilla</package>
 <package>kernel-zfcpdump</package>
+<package>kernel-source:kernel-zfcpdump</package>
     </conditions>
     <hardware>
       <disk>
@@ -202,13 +261,21 @@
     <conditions>
       <arch>riscv64</arch>
 <package>kernel-64kb</package>
+<package>kernel-source:kernel-64kb</package>
 <package>kernel-debug</package>
+<package>kernel-source:kernel-debug</package>
 <package>kernel-default</package>
+<package>kernel-source:kernel-default</package>
 <package>kernel-kvmsmall</package>
+<package>kernel-source:kernel-kvmsmall</package>
 <package>kernel-lpae</package>
+<package>kernel-source:kernel-lpae</package>
 <package>kernel-pae</package>
+<package>kernel-source:kernel-pae</package>
 <package>kernel-vanilla</package>
+<package>kernel-source:kernel-vanilla</package>
 <package>kernel-zfcpdump</package>
+<package>kernel-source:kernel-zfcpdump</package>
     </conditions>
     <hardware>
       <disk>
@@ -222,6 +289,7 @@
       <arch>i586</arch>
       <arch>x86_64</arch>
       <package>kernel-obs-qa</package>
+      <package>kernel-source:kernel-obs-qa</package>
     </conditions>
     <sandbox>kvm</sandbox>
   </overwrite>
@@ -231,6 +299,7 @@
       <arch>i586</arch>
       <arch>x86_64</arch>
       <package>kernel-obs-qa-xen</package>
+      <package>kernel-source:kernel-obs-qa-xen</package>
     </conditions>
     <sandbox>xen</sandbox>
   </overwrite>

++++++ _multibuild ++++++
<multibuild>
        <package>kernel-syms</package>
        <package>kernel-obs-qa</package>
        <package>kernel-vanilla</package>
        <package>kernel-docs</package>
        <package>kernel-kvmsmall</package>
        <package>kernel-default</package>
        <package>kernel-zfcpdump</package>
        <package>kernel-obs-build</package>
        <package>kernel-lpae</package>
        <package>kernel-64kb</package>
        <package>kernel-pae</package>
        <package>dtb-aarch64</package>
        <package>dtb-armv6l</package>
        <package>dtb-armv7l</package>
        <package>kernel-debug</package>
        <package>dtb-riscv64</package>
</multibuild>

++++++ config.sh ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:07.151878112 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:07.167878688 +0100
@@ -7,6 +7,8 @@
 COMPRESS_VMLINUX="xz"
 # Compile binary devicetrees on master and stable branches.
 BUILD_DTBS="Yes"
+# Generate a _multibuild file
+MULTIBUILD="Yes"
 # Use new style livepatch package names
 LIVEPATCH=livepatch
 # buildservice projects to build the kernel against

++++++ config.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/config/arm64/default new/config/arm64/default
--- old/config/arm64/default    2024-01-07 22:02:40.000000000 +0100
+++ new/config/arm64/default    2024-01-22 10:24:11.000000000 +0100
@@ -10772,9 +10772,9 @@
 # end of Generic IOMMU Pagetable Support
 
 # CONFIG_IOMMU_DEBUGFS is not set
-# CONFIG_IOMMU_DEFAULT_DMA_STRICT is not set
+CONFIG_IOMMU_DEFAULT_DMA_STRICT=y
 # CONFIG_IOMMU_DEFAULT_DMA_LAZY is not set
-CONFIG_IOMMU_DEFAULT_PASSTHROUGH=y
+# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set
 CONFIG_OF_IOMMU=y
 CONFIG_IOMMU_DMA=y
 CONFIG_IOMMU_SVA=y
@@ -12767,7 +12767,7 @@
 CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
 CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
 CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
-# CONFIG_IMA_DISABLE_HTABLE is not set
+CONFIG_IMA_DISABLE_HTABLE=y
 CONFIG_EVM=y
 CONFIG_EVM_ATTR_FSUUID=y
 CONFIG_EVM_ADD_XATTRS=y
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/config/armv6hl/default new/config/armv6hl/default
--- old/config/armv6hl/default  2024-01-07 22:02:40.000000000 +0100
+++ new/config/armv6hl/default  2024-01-22 10:24:11.000000000 +0100
@@ -8561,7 +8561,7 @@
 # CONFIG_IMA_LOAD_X509 is not set
 CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
 CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
-# CONFIG_IMA_DISABLE_HTABLE is not set
+CONFIG_IMA_DISABLE_HTABLE=y
 CONFIG_EVM=y
 CONFIG_EVM_ATTR_FSUUID=y
 CONFIG_EVM_ADD_XATTRS=y
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/config/armv7hl/default new/config/armv7hl/default
--- old/config/armv7hl/default  2024-01-07 22:02:40.000000000 +0100
+++ new/config/armv7hl/default  2024-01-22 10:24:11.000000000 +0100
@@ -12045,7 +12045,7 @@
 # CONFIG_IMA_LOAD_X509 is not set
 CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
 CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
-# CONFIG_IMA_DISABLE_HTABLE is not set
+CONFIG_IMA_DISABLE_HTABLE=y
 CONFIG_EVM=y
 CONFIG_EVM_ATTR_FSUUID=y
 CONFIG_EVM_ADD_XATTRS=y
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/config/i386/pae new/config/i386/pae
--- old/config/i386/pae 2024-01-07 22:02:40.000000000 +0100
+++ new/config/i386/pae 2024-01-22 10:24:11.000000000 +0100
@@ -10614,7 +10614,7 @@
 CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
 CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
 # CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
-# CONFIG_IMA_DISABLE_HTABLE is not set
+CONFIG_IMA_DISABLE_HTABLE=y
 CONFIG_EVM=y
 CONFIG_EVM_ATTR_FSUUID=y
 CONFIG_EVM_ADD_XATTRS=y
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/config/riscv64/default new/config/riscv64/default
--- old/config/riscv64/default  2024-01-07 22:02:40.000000000 +0100
+++ new/config/riscv64/default  2024-01-22 10:24:11.000000000 +0100
@@ -9870,7 +9870,7 @@
 # CONFIG_IMA_LOAD_X509 is not set
 CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
 CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
-# CONFIG_IMA_DISABLE_HTABLE is not set
+CONFIG_IMA_DISABLE_HTABLE=y
 CONFIG_EVM=y
 CONFIG_EVM_ATTR_FSUUID=y
 CONFIG_EVM_ADD_XATTRS=y
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/config/s390x/default new/config/s390x/default
--- old/config/s390x/default    2024-01-07 22:02:40.000000000 +0100
+++ new/config/s390x/default    2024-01-22 10:24:11.000000000 +0100
@@ -4216,7 +4216,7 @@
 CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
 CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
 # CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set
-# CONFIG_IMA_DISABLE_HTABLE is not set
+CONFIG_IMA_DISABLE_HTABLE=y
 CONFIG_EVM=y
 CONFIG_EVM_ATTR_FSUUID=y
 CONFIG_EVM_ADD_XATTRS=y
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/config/x86_64/default new/config/x86_64/default
--- old/config/x86_64/default   2024-01-07 22:02:40.000000000 +0100
+++ new/config/x86_64/default   2024-01-22 10:24:11.000000000 +0100
@@ -10583,7 +10583,7 @@
 CONFIG_IMA_MEASURE_ASYMMETRIC_KEYS=y
 CONFIG_IMA_QUEUE_EARLY_BOOT_KEYS=y
 CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT=y
-# CONFIG_IMA_DISABLE_HTABLE is not set
+CONFIG_IMA_DISABLE_HTABLE=y
 CONFIG_EVM=y
 CONFIG_EVM_ATTR_FSUUID=y
 CONFIG_EVM_ADD_XATTRS=y

++++++ constraints.in ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:07.847903178 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:07.863903754 +0100
@@ -18,6 +18,7 @@
   <overwrite>
     <conditions>
       <package>kernel-syzkaller</package>
+      <package>kernel-source:kernel-syzkaller</package>
     </conditions>
     <hardware>
       <physicalmemory>
@@ -46,6 +47,8 @@
     <conditions>
       <package>kernel-docs</package>
       <package>kernel-docs-rt</package>
+      <package>kernel-source:kernel-docs</package>
+      <package>kernel-source-rt:kernel-docs-rt</package>
     </conditions>
     <hardware>
       <physicalmemory>
@@ -166,6 +169,7 @@
       <arch>i586</arch>
       <arch>x86_64</arch>
       <package>kernel-obs-qa</package>
+      <package>kernel-source:kernel-obs-qa</package>
     </conditions>
     <sandbox>kvm</sandbox>
   </overwrite>
@@ -175,6 +179,7 @@
       <arch>i586</arch>
       <arch>x86_64</arch>
       <package>kernel-obs-qa-xen</package>
+      <package>kernel-source:kernel-obs-qa-xen</package>
     </conditions>
     <sandbox>xen</sandbox>
   </overwrite>

++++++ kernel-docs.spec.in ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:08.055910668 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:08.059910812 +0100
@@ -52,6 +52,7 @@
 BuildRequires:  graphviz-gnome
 %if ! 0%{?suse_version} || 0%{?suse_version} > 1500
 BuildRequires:  python3-base
+BuildRequires:  python3-PyYAML
 BuildRequires:  python3-Sphinx
 BuildRequires:  texlive-amscls
 %else
@@ -86,7 +87,6 @@
 Provides:       %name = %version-%source_rel
 Provides:       %name-srchash-%git_commit
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  noarch @ARCHS@
 BuildArch:      noarch
 %else
 ExclusiveArch:  do_not_build

++++++ kernel-source.rpmlintrc ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:08.315920032 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:08.339920897 +0100
@@ -10,4 +10,6 @@
 addFilter("hidden-file-or-dir /usr/src/linux-.*-obj/.*/.config")
 addFilter("hidden-file-or-dir 
/usr/src/linux-.*-obj/.*/.kernel-binary.spec.buildenv")
 addFilter("hidden-file-or-dir /boot/\..*\.hmac")
+# a precompiled eBPF test
+addFilter("arch-independent-package-contains-binary-or-object 
/usr/src/linux-.*/.*/action-ebpf")
 

++++++ kernel-source.spec.in ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:08.519927379 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:08.547928387 +0100
@@ -123,7 +123,6 @@
 Source120:      kabi.tar.bz2
 Source121:      sysctl.tar.bz2
 %if ! 0%{?is_kotd} || ! %{?is_kotd_qa}%{!?is_kotd_qa:0}
-ExclusiveArch:  noarch @ARCHS@
 BuildArch:      noarch
 %else
 ExclusiveArch:  do_not_build



++++++ mkspec ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:09.355957486 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:09.383958495 +0100
@@ -196,13 +196,11 @@
        );
 }
 # kernel-source.spec
-do_spec('source', "kernel-source$variant.spec", %macros,
-               ARCHS => $all_archs);
+do_spec('source', "kernel-source$variant.spec", %macros);
 
 if ($variant eq "") {
        # kernel-docs.spec
-       do_spec('docs', "kernel-docs$variant.spec", %macros,
-               ARCHS => $all_archs);
+       do_spec('docs', "kernel-docs$variant.spec", %macros);
 }
 
 # kernel-syms.spec
@@ -262,7 +260,7 @@
 
 # _constraints
 {
-       my @packages = map { "<package>kernel-$_</package>" } sort 
keys(%flavor_archs);
+       my @packages = map { 
"<package>kernel-$_</package>\n<package>kernel-source:kernel-$_</package>" } 
sort keys(%flavor_archs);
        my $packages = join("\n", @packages);
        do_spec('constraints', "_constraints",
                BINARY_PACKAGES_XML => $packages);
@@ -473,8 +471,6 @@
        my $arch = shift;
        return "\%ix86" if $arch eq "i386";
        return "aarch64" if $arch eq "arm64";
-       # ppc64le src rpms are built as powerpc64le
-       return "ppc64le powerpc64le" if $arch eq "ppc64le";
        return $arch;
 }
 


++++++ patches.rpmify.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.rpmify/media-solo6x10-replace-max-a-min-b-c-by-clamp-b-a-c.patch 
new/patches.rpmify/media-solo6x10-replace-max-a-min-b-c-by-clamp-b-a-c.patch
--- 
old/patches.rpmify/media-solo6x10-replace-max-a-min-b-c-by-clamp-b-a-c.patch    
    2024-01-19 07:57:28.000000000 +0100
+++ 
new/patches.rpmify/media-solo6x10-replace-max-a-min-b-c-by-clamp-b-a-c.patch    
    2024-01-22 08:40:52.000000000 +0100
@@ -1,15 +1,19 @@
 From: Aurelien Jarno <aurel...@aurel32.net>
 Date: Sat, 13 Jan 2024 19:33:31 +0100
 Subject: media: solo6x10: replace max(a, min(b, c)) by clamp(b, a, c)
-Patch-mainline: submitted 20240113183334.1690740-1-aurel...@aurel32.net
+Git-commit: 31e97d7c9ae3de072d7b424b2cf706a03ec10720
+Patch-mainline: 6.8-rc1
 References: fix build and make it faster
 
 This patch replaces max(a, min(b, c)) by clamp(b, a, c) in the solo6x10
-driver. This improves the readability and more importantly, for the
+driver.  This improves the readability and more importantly, for the
 solo6x10-p2m.c file, this reduces on my system (x86-64, gcc 13):
-- the preprocessed size from 121 MiB to 4.5 MiB;
-- the build CPU time from 46.8 s to 1.6 s;
-- the build memory from 2786 MiB to 98MiB.
+
+ - the preprocessed size from 121 MiB to 4.5 MiB;
+
+ - the build CPU time from 46.8 s to 1.6 s;
+
+ - the build memory from 2786 MiB to 98MiB.
 
 In fine, this allows this relatively simple C file to be built on a
 32-bit system.
@@ -21,6 +25,7 @@
 Signed-off-by: Aurelien Jarno <aurel...@aurel32.net>
 Reviewed-by: David Laight <david.lai...@aculab.com>
 Reviewed-by: Hans Verkuil <hverkuil-ci...@xs4all.nl>
+Signed-off-by: Linus Torvalds <torva...@linux-foundation.org>
 Signed-off-by: Jiri Slaby <jsl...@suse.cz>
 ---
  drivers/media/pci/solo6x10/solo6x10-offsets.h |   10 +++++-----

++++++ patches.suse.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.suse/futex-Avoid-reusing-outdated-pi_state.patch 
new/patches.suse/futex-Avoid-reusing-outdated-pi_state.patch
--- old/patches.suse/futex-Avoid-reusing-outdated-pi_state.patch        
2024-01-19 07:46:51.000000000 +0100
+++ new/patches.suse/futex-Avoid-reusing-outdated-pi_state.patch        
2024-01-22 08:46:41.000000000 +0100
@@ -1,75 +1,88 @@
 From: Sebastian Andrzej Siewior <bige...@linutronix.de>
 Date: Thu, 18 Jan 2024 12:54:51 +0100
-Subject: futex: Avoid reusing outdated pi_state.
-Patch-mainline: submitted 20240118115451.0tkd_...@linutronix.de
+Subject: futex: Prevent the reuse of stale pi_state
+Git-repo: 
https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git#locking/urgent
+Git-commit: e626cb02ee8399fd42c415e542d031d185783903
+Patch-mainline: Queued in subsystem maintainer repository
 References: bsc#1218841
 
-Jiri Slaby reported a futex state inconsistency resulting in -EINVAL
-during a lock operation for a PI futex. A requirement is that the lock
-process is interrupted by a timeout or signal:
-
-T1 Owns the futex in userland.
-
-T2 Tries to acquire the futex in kernel (futex_lock_pi()). Allocates a
-   pi_state and attaches itself to it.
-
-T2 Times out and removes its rt_waiter from the rt_mutex.
-
-T1 Unlocks the futex (futex_unlock_pi()). Finds a futex_q but no
-   rt_waiter. Unlocks the futex (do_uncontended) and makes it available
-   to userland.
-
-T3 Acquires the futex in userland.
-
-T4 Tries to acquire the futex in kernel (futex_lock_pi()). Finds the
-   existing futex_q and tries to attach itself to the existing pi_state.
-   This (attach_to_pi_state()) fails with -EINVAL because uval contains
-   the pid of T3 but pi_state points to T1.
-
-We must not unlock the futex and make it available for userland as long
-as there is still an existing state in kernel. It can be used by further
-futex_lock_pi() caller and observe inconsistent state.
-
-The lock can not be handed over to T1 because it already gave up and
-started to clean up.
-All futex_q entries point to the same pi_state and the pi_mutex has no
-waiters. A waiter can not be enqueued because hb->lock +
-pi_mutex.wait_lock is acquired (by the unlock operation) and the same
-ordering is used by futex_lock_pi() during locking.
-
-Remove all futex_q entries from the hb list which point to the futex if
-no waiter has been observed in the futex_unlock_pi() path. This closes
-the race window by removing all pointer to the previous in-kernel state.
-
-The leaving futex_lock_pi() caller can clean up the pi-state once it
-acquires hb->lock. During the process futex_unqueue_pi() must remove
-the futex_q item from the hb list only if not yet happened.
+Jiri Slaby reported a futex state inconsistency resulting in -EINVAL during
+a lock operation for a PI futex. It requires that the a lock process is
+interrupted by a timeout or signal:
+
+  T1 Owns the futex in user space.
+
+  T2 Tries to acquire the futex in kernel (futex_lock_pi()). Allocates a
+     pi_state and attaches itself to it.
+
+  T2 Times out and removes its rt_waiter from the rt_mutex. Drops the
+     rtmutex lock and tries to acquire the hash bucket lock to remove
+     the futex_q. The lock is contended and T2 schedules out.
+
+  T1 Unlocks the futex (futex_unlock_pi()). Finds a futex_q but no
+     rt_waiter. Unlocks the futex (do_uncontended) and makes it available
+     to user space.
+
+  T3 Acquires the futex in user space.
+
+  T4 Tries to acquire the futex in kernel (futex_lock_pi()). Finds the
+     existing futex_q of T2 and tries to attach itself to the existing
+     pi_state.  This (attach_to_pi_state()) fails with -EINVAL because uval
+     contains the TID of T3 but pi_state points to T1.
+
+It's incorrect to unlock the futex and make it available for user space to
+acquire as long as there is still an existing state attached to it in the
+kernel.
+
+T1 cannot hand over the futex to T2 because T2 already gave up and started
+to clean up and is blocked on the hash bucket lock, so T2's futex_q with
+the pi_state pointing to T1 is still queued.
+
+T2 observes the futex_q, but ignores it as there is no waiter on the
+corresponding rt_mutex and takes the uncontended path which allows the
+subsequent caller of futex_lock_pi() (T4) to observe that stale state.
+
+To prevent this the unlock path must dequeue all futex_q entries which
+point to the same pi_state when there is no waiter on the rt mutex. This
+requires obviously to make the dequeue conditional in the locking path to
+prevent a double dequeue. With that it's guaranteed that user space cannot
+observe an uncontended futex which has kernel state attached.
 
 Fixes: fbeb558b0dd0d ("futex/pi: Fix recursive rt_mutex waiter state")
 Reported-by: Jiri Slaby <jirisl...@kernel.org>
-Closes: 
https://lore.kernel.org/all/4611bcf2-44d0-4c34-9b84-17406f881...@kernel.org
 Signed-off-by: Sebastian Andrzej Siewior <bige...@linutronix.de>
+Signed-off-by: Thomas Gleixner <t...@linutronix.de>
 Tested-by: Jiri Slaby <jirisl...@kernel.org>
+Link: https://lore.kernel.org/r/20240118115451.0tkd_...@linutronix.de
+Closes: 
https://lore.kernel.org/all/4611bcf2-44d0-4c34-9b84-17406f881...@kernel.org
 Signed-off-by: Jiri Slaby <jsl...@suse.cz>
 ---
- kernel/futex/core.c |    7 ++++++-
+ kernel/futex/core.c |   15 ++++++++++++---
  kernel/futex/pi.c   |   11 ++++++++---
- 2 files changed, 14 insertions(+), 4 deletions(-)
+ 2 files changed, 20 insertions(+), 6 deletions(-)
 
 --- a/kernel/futex/core.c
 +++ b/kernel/futex/core.c
-@@ -628,10 +628,15 @@ retry:
+@@ -626,12 +626,21 @@ retry:
+ }
+ 
  /*
-  * PI futexes can not be requeued and must remove themselves from the
-  * hash bucket. The hash bucket lock (i.e. lock_ptr) is held.
-+ * If the lock was not acquired (due to timeout or signal) then the rt_waiter
-+ * is removed before futex_q is. If this is observed by unlocker then it will
-+ * remove futex_q from the hash bucket list. Thefore the removal here is
-+ * optional.
+- * PI futexes can not be requeued and must remove themselves from the
+- * hash bucket. The hash bucket lock (i.e. lock_ptr) is held.
++ * PI futexes can not be requeued and must remove themselves from the hash
++ * bucket. The hash bucket lock (i.e. lock_ptr) is held.
   */
  void futex_unqueue_pi(struct futex_q *q)
  {
 -      __futex_unqueue(q);
++      /*
++       * If the lock was not acquired (due to timeout or signal) then the
++       * rt_waiter is removed before futex_q is. If this is observed by
++       * an unlocker after dropping the rtmutex wait lock and before
++       * acquiring the hash bucket lock, then the unlocker dequeues the
++       * futex_q from the hash bucket list to guarantee consistent state
++       * vs. userspace. Therefore the dequeue here must be conditional.
++       */
 +      if (!plist_node_empty(&q->list))
 +              __futex_unqueue(q);
  
@@ -91,8 +104,8 @@
                 * waiters even though futex thinks there are, then the waiter
 -               * is leaving and the uncontended path is safe to take.
 +               * is leaving. The entry needs to be removed from the list so a
-+               * new futex_lock_pi() is not using this outdated PI-state while
-+               * the futex is available in userland again.
++               * new futex_lock_pi() is not using this stale PI-state while
++               * the futex is available in user space again.
 +               * There can be more than one task on its way out so it needs
 +               * to retry.
                 */

++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.hf8DyH/_old  2024-01-26 22:47:10.267990331 +0100
+++ /var/tmp/diff_new_pack.hf8DyH/_new  2024-01-26 22:47:10.271990475 +0100
@@ -1,4 +1,4 @@
-2024-01-20 15:39:39 +0000
-GIT Revision: 4959dd8dad49eb4f1644953682e53c1d966d6eb3
+2024-01-26 06:32:58 +0000
+GIT Revision: 6aca25404404e4f72fa252563503b29fe5828cca
 GIT Branch: stable
 

Reply via email to