Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2017-11-07 09:57:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kernel-source (Old) and /work/SRC/openSUSE:Factory/.kernel-source.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source" Tue Nov 7 09:57:12 2017 rev:387 rq:538906 version:4.13.11 Changes: -------- --- /work/SRC/openSUSE:Factory/kernel-source/dtb-aarch64.changes 2017-10-30 21:18:03.892113310 +0100 +++ /work/SRC/openSUSE:Factory/.kernel-source.new/dtb-aarch64.changes 2017-11-07 09:57:15.899898361 +0100 @@ -1,0 +2,120 @@ +Fri Nov 3 23:20:30 CET 2017 - [email protected] + +- mac80211: don't compare TKIP TX MIC key in reinstall prevention + (bsc#1066472). +- commit a2a7106 + +------------------------------------------------------------------- +Fri Nov 3 23:20:05 CET 2017 - [email protected] + +- mac80211: use constant time comparison with keys (bsc#1066471). +- commit e2a3d57 + +------------------------------------------------------------------- +Thu Nov 2 20:06:49 CET 2017 - [email protected] + +- Linux 4.13.11 (bnc#1012628). +- powerpc/xive: Fix the size of the cpumask used in + xive_find_target_in_mask() (bnc#1012628). +- regulator: fan53555: fix I2C device ids (bnc#1012628). +- ipsec: Fix aborted xfrm policy dump crash (bnc#1012628). +- cfg80211: fix connect/disconnect edge cases (bnc#1012628). +- can: kvaser_usb: Ignore CMD_FLUSH_QUEUE_REPLY messages + (bnc#1012628). +- can: kvaser_usb: Correct return value in printout (bnc#1012628). +- can: sun4i: fix loopback mode (bnc#1012628). +- drm/i915/perf: fix perf enable/disable ioctls with 32bits + userspace (bnc#1012628). +- drm/amd/powerplay: fix uninitialized variable (bnc#1012628). +- x86/cpu/AMD: Apply the Erratum 688 fix when the BIOS doesn't + (bnc#1012628). +- scsi: sg: Re-fix off by one in sg_fill_request_table() + (bnc#1012628). +- scsi: qla2xxx: Initialize Work element before requesting IRQs + (bnc#1012628). +- scsi: aacraid: Fix controller initialization failure + (bnc#1012628). +- scsi: zfcp: fix erp_action use-before-initialize in REC action + trace (bnc#1012628). +- assoc_array: Fix a buggy node-splitting case (bnc#1012628). +- SMB3: Validate negotiate request must always be signed + (bnc#1012628). +- Fix encryption labels and lengths for SMB3.1.1 (bnc#1012628). +- Input: gtco - fix potential out-of-bound access (bnc#1012628). +- Input: elan_i2c - add ELAN0611 to the ACPI table (bnc#1012628). +- CIFS: Fix NULL pointer deref on SMB2_tcon() failure + (bnc#1012628). +- cifs: Select all required crypto modules (bnc#1012628). +- xen: fix booting ballooned down hvm guest (bnc#1012628). +- xen/gntdev: avoid out of bounds access in case of partial + gntdev_mmap() (bnc#1012628). +- fuse: fix READDIRPLUS skipping an entry (bnc#1012628). +- ovl: do not cleanup unsupported index entries (bnc#1012628). +- ovl: handle ENOENT on index lookup (bnc#1012628). +- ovl: fix EIO from lookup of non-indexed upper (bnc#1012628). +- ovl: add NULL check in ovl_alloc_inode (bnc#1012628). +- spi: armada-3700: Fix failing commands with quad-SPI + (bnc#1012628). +- spi: bcm-qspi: Fix use after free in bcm_qspi_probe() in error + path (bnc#1012628). +- spi: a3700: Return correct value on timeout detection + (bnc#1012628). +- spi: uapi: spidev: add missing ioctl header (bnc#1012628). +- nbd: handle interrupted sendmsg with a sndtimeo set + (bnc#1012628). +- s390/kvm: fix detection of guest machine checks (bnc#1012628). +- KVM: PPC: Book3S: Protect kvmppc_gpa_to_ua() with SRCU + (bnc#1012628). +- KVM: PPC: Book3S HV: POWER9 more doorbell fixes (bnc#1012628). +- KVM: PPC: Fix oops when checking KVM_CAP_PPC_HTM (bnc#1012628). +- Fix tracing sample code warning (bnc#1012628). +- ceph: unlock dangling spinlock in try_flush_caps() + (bnc#1012628). +- ALSA: hda - fix headset mic problem for Dell machines with + alc236 (bnc#1012628). +- ALSA: hda/realtek - Add support for ALC236/ALC3204 + (bnc#1012628). +- nvme-fc: fix iowait hang (bnc#1012628). +- workqueue: replace pool->manager_arb mutex with a flag + (bnc#1012628). +- commit 5a48675 + +------------------------------------------------------------------- +Mon Oct 30 21:43:06 CET 2017 - [email protected] + +- REVERT: md/bitmap: copy correct data for bitmap super + (bsc#1062597). +- commit 9d89d99 + +------------------------------------------------------------------- +Mon Oct 30 13:34:26 CET 2017 - [email protected] + +- x86/unwind: Show function name+offset in ORC error messages + (bnc#1058115). +- x86/entry: Fix idtentry unwind hint (bnc#1058115). +- objtool: Fix memory leak in decode_instructions() (bnc#1058115). +- x86/unwind: Disable unwinder warnings on 32-bit (bnc#1058115). +- x86/unwind: Align stack pointer in unwinder dump (bnc#1058115). +- x86/unwind: Use MSB for frame pointer encoding on 32-bit + (bnc#1058115). +- x86/unwind: Fix dereference of untrusted pointer (bnc#1058115). +- x86/kvm: Move kvm_fastop_exception to .fixup section + (bnc#1058115). +- objtool: Upgrade libelf-devel warning to error for + CONFIG_ORC_UNWINDER (bnc#1058115). +- kprobes/x86: Set up frame pointer in kprobe trampoline + (bnc#1058115). +- objtool: Support unoptimized frame pointer setup (bnc#1058115). +- objtool: Skip unreachable warnings for GCC 4.4 and older + (bnc#1058115). +- commit dd8c5e5 + +------------------------------------------------------------------- +Sun Oct 29 08:26:08 CET 2017 - [email protected] + +- x86/unwind: Show function name+offset in ORC error messages + (bnc#1058115). +- x86/entry: Fix idtentry unwind hint (bnc#1058115). +- commit 951f578 + +------------------------------------------------------------------- @@ -324,0 +445,15 @@ +Fri Oct 13 17:40:41 CEST 2017 - [email protected] + +- Revert "rpm/constraints.in: Lower default disk space requirement from 25G to 24G" + This reverts commit 406abda1467c038842febffe264faae1fa2e3c1d. + ok, did not wait long enough to see the failure. +- commit ed99981 + +------------------------------------------------------------------- +Fri Oct 13 17:28:55 CEST 2017 - [email protected] + +- rpm/constraints.in: Lower default disk space requirement from 25G to 24G + 25G is rejected by the build service on ARM. +- commit 406abda + +------------------------------------------------------------------- @@ -632,0 +768,7 @@ +Fri Oct 6 16:12:33 CEST 2017 - [email protected] + +- rpm/kernel-binary.spec.in: add the kernel-binary dependencies to + kernel-binary-base (bsc#1060333). +- commit 955681c + +------------------------------------------------------------------- @@ -1300,0 +1443,7 @@ + +------------------------------------------------------------------- +Sun Sep 24 21:20:35 CEST 2017 - [email protected] + +- rpm/kernel-binary.spec.in: only rewrite modules.dep if non-zero in size + (bsc#1056979). +- commit 75691fd dtb-armv6l.changes: same change dtb-armv7l.changes: same change kernel-64kb.changes: same change kernel-debug.changes: same change kernel-default.changes: same change kernel-docs.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-syzkaller.changes: same change kernel-vanilla.changes: same change kernel-zfcpdump.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dtb-aarch64.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.039095070 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.043094924 +0100 @@ -17,7 +17,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -29,9 +29,9 @@ %(chmod +x %_sourcedir/{guards,apply-patches,check-for-config-changes,group-source-files.pl,split-modules,modversions,kabi.pl,mkspec,compute-PATCHVERSION.sh,arch-symbols,log.sh,try-disable-staging-driver,compress-vmlinux.sh,mkspec-dtb}) Name: dtb-aarch64 -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif dtb-armv6l.spec: same change dtb-armv7l.spec: same change ++++++ kernel-64kb.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.131091732 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.135091587 +0100 @@ -18,7 +18,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: Kernel with 64kb PAGE_SIZE License: GPL-2.0 Group: System/Kernel -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif @@ -97,12 +97,12 @@ # owned by multiple packages now. The dependency is not correct wrt openSUSE # 11.2 - 11.4, but we primarily care about the supported upgrade path. Obsoletes: %name-base < 3.1 +Recommends: kernel-firmware # The following is copied to the -base subpackage as well # BEGIN COMMON DEPS Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -122,9 +122,6 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release -# END COMMON DEPS -# Do not install p-b and mkinitrd for the install check, the %post script is -# able to handle this #!BuildIgnore: perl-Bootloader mkinitrd distribution-release # Remove some packages that are installed automatically by the build system, # but are not needed to build the kernel @@ -160,6 +157,9 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel +# END COMMON DEPS +# Do not install p-b and mkinitrd for the install check, the %post script is +# able to handle this %obsolete_rebuilds %name Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz Source2: source-post.sh @@ -804,6 +804,7 @@ # checksums. As the file is not included in the resulting RPM, it's # pointless to rely on its contents. Replacing by zeros to make the # checksums always the same for several builds of the same package. + test -s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep && \ dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=`stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep` count=1 res=0 @@ -965,7 +966,6 @@ Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -985,6 +985,41 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release +#!BuildIgnore: perl-Bootloader mkinitrd distribution-release +# Remove some packages that are installed automatically by the build system, +# but are not needed to build the kernel +#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools m4 udev insserv + +%ifarch s390 s390x +%if %build_vanilla && 0%{?suse_version} < 1130 +BuildRequires: dwarfextract +%endif +%endif +%ifarch %arm +BuildRequires: u-boot-tools +%endif + +Obsoletes: microcode_ctl + +# Force bzip2 instead of lzma compression to +# 1) allow install on older dist versions, and +# 2) decrease build times (bsc#962356) +%define _binary_payload w9.bzdio +# Do not recompute the build-id of vmlinux in find-debuginfo.sh (bsc#964063) +%define _no_recompute_build_ids 1 +# dead network if installed on SLES10, otherwise it will work (mostly) +Conflicts: sysfsutils < 2.0 +Conflicts: apparmor-profiles <= 2.1 +Conflicts: apparmor-parser < 2.3 +# root-lvm only works with newer udevs +Conflicts: udev < 118 +Conflicts: lvm2 < 2.02.33 +# Interface to hv_kvp_daemon changed +Conflicts: hyper-v < 4 +%ifarch %ix86 +Conflicts: libc.so.6()(64bit) +%endif +Provides: kernel = %version-%source_rel %obsolete_rebuilds %name-base %ifarch %ix86 ++++++ kernel-debug.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.171090281 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.171090281 +0100 @@ -18,7 +18,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: A Debug Version of the Kernel License: GPL-2.0 Group: System/Kernel -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif @@ -97,12 +97,12 @@ # owned by multiple packages now. The dependency is not correct wrt openSUSE # 11.2 - 11.4, but we primarily care about the supported upgrade path. Obsoletes: %name-base < 3.1 +Recommends: kernel-firmware # The following is copied to the -base subpackage as well # BEGIN COMMON DEPS Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -122,9 +122,6 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release -# END COMMON DEPS -# Do not install p-b and mkinitrd for the install check, the %post script is -# able to handle this #!BuildIgnore: perl-Bootloader mkinitrd distribution-release # Remove some packages that are installed automatically by the build system, # but are not needed to build the kernel @@ -161,14 +158,17 @@ %endif Provides: kernel = %version-%source_rel %ifarch ppc64 -Provides: kernel-kdump = 2.6.28 -Obsoletes: kernel-kdump <= 2.6.28 -%endif -%ifarch ppc64 Provides: kernel-kdump-base = 2.6.28 Obsoletes: kernel-kdump-base <= 2.6.28 %endif +# END COMMON DEPS +# Do not install p-b and mkinitrd for the install check, the %post script is +# able to handle this %obsolete_rebuilds %name +%ifarch ppc64 +Provides: kernel-kdump = 2.6.28 +Obsoletes: kernel-kdump <= 2.6.28 +%endif Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz Source2: source-post.sh Source3: kernel-source.rpmlintrc @@ -810,6 +810,7 @@ # checksums. As the file is not included in the resulting RPM, it's # pointless to rely on its contents. Replacing by zeros to make the # checksums always the same for several builds of the same package. + test -s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep && \ dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=`stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep` count=1 res=0 @@ -971,7 +972,6 @@ Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -991,6 +991,45 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release +#!BuildIgnore: perl-Bootloader mkinitrd distribution-release +# Remove some packages that are installed automatically by the build system, +# but are not needed to build the kernel +#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools m4 udev insserv + +%ifarch s390 s390x +%if %build_vanilla && 0%{?suse_version} < 1130 +BuildRequires: dwarfextract +%endif +%endif +%ifarch %arm +BuildRequires: u-boot-tools +%endif + +Obsoletes: microcode_ctl + +# Force bzip2 instead of lzma compression to +# 1) allow install on older dist versions, and +# 2) decrease build times (bsc#962356) +%define _binary_payload w9.bzdio +# Do not recompute the build-id of vmlinux in find-debuginfo.sh (bsc#964063) +%define _no_recompute_build_ids 1 +# dead network if installed on SLES10, otherwise it will work (mostly) +Conflicts: sysfsutils < 2.0 +Conflicts: apparmor-profiles <= 2.1 +Conflicts: apparmor-parser < 2.3 +# root-lvm only works with newer udevs +Conflicts: udev < 118 +Conflicts: lvm2 < 2.02.33 +# Interface to hv_kvp_daemon changed +Conflicts: hyper-v < 4 +%ifarch %ix86 +Conflicts: libc.so.6()(64bit) +%endif +Provides: kernel = %version-%source_rel +%ifarch ppc64 +Provides: kernel-kdump-base = 2.6.28 +Obsoletes: kernel-kdump-base <= 2.6.28 +%endif %ifarch ppc64 Provides: kernel-kdump-base = 2.6.28 ++++++ kernel-default.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.191089556 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.195089410 +0100 @@ -18,7 +18,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: The Standard Kernel License: GPL-2.0 Group: System/Kernel -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif @@ -97,12 +97,12 @@ # owned by multiple packages now. The dependency is not correct wrt openSUSE # 11.2 - 11.4, but we primarily care about the supported upgrade path. Obsoletes: %name-base < 3.1 +Recommends: kernel-firmware # The following is copied to the -base subpackage as well # BEGIN COMMON DEPS Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -122,9 +122,6 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release -# END COMMON DEPS -# Do not install p-b and mkinitrd for the install check, the %post script is -# able to handle this #!BuildIgnore: perl-Bootloader mkinitrd distribution-release # Remove some packages that are installed automatically by the build system, # but are not needed to build the kernel @@ -161,6 +158,34 @@ %endif Provides: kernel = %version-%source_rel %ifarch %ix86 +Provides: kernel-trace-base = 3.13 +Obsoletes: kernel-trace-base <= 3.13 +%endif +%ifarch ppc64 +Provides: kernel-kdump-base = 2.6.28 +Obsoletes: kernel-kdump-base <= 2.6.28 +%endif +%ifarch s390x +Provides: kernel-trace-base = 3.13 +Obsoletes: kernel-trace-base <= 3.13 +%endif +%ifarch x86_64 +Provides: kernel-trace-base = 3.13 +Obsoletes: kernel-trace-base <= 3.13 +Provides: kernel-bigsmp-base = 3.1 +Obsoletes: kernel-bigsmp-base <= 3.1 +Provides: kernel-desktop-base = 4.3 +Obsoletes: kernel-desktop-base <= 4.3 +Provides: kernel-xen-base = 4.4 +Obsoletes: kernel-xen-base <= 4.4 +Provides: kernel-ec2-base = 4.4 +Obsoletes: kernel-ec2-base <= 4.4 +%endif +# END COMMON DEPS +# Do not install p-b and mkinitrd for the install check, the %post script is +# able to handle this +%obsolete_rebuilds %name +%ifarch %ix86 Provides: kernel-smp = 2.6.17 Obsoletes: kernel-smp <= 2.6.17 Provides: kernel-trace = 3.13 @@ -188,31 +213,6 @@ Provides: kernel-ec2 = 4.4 Obsoletes: kernel-ec2 <= 4.4 %endif -%ifarch %ix86 -Provides: kernel-trace-base = 3.13 -Obsoletes: kernel-trace-base <= 3.13 -%endif -%ifarch ppc64 -Provides: kernel-kdump-base = 2.6.28 -Obsoletes: kernel-kdump-base <= 2.6.28 -%endif -%ifarch s390x -Provides: kernel-trace-base = 3.13 -Obsoletes: kernel-trace-base <= 3.13 -%endif -%ifarch x86_64 -Provides: kernel-trace-base = 3.13 -Obsoletes: kernel-trace-base <= 3.13 -Provides: kernel-bigsmp-base = 3.1 -Obsoletes: kernel-bigsmp-base <= 3.1 -Provides: kernel-desktop-base = 4.3 -Obsoletes: kernel-desktop-base <= 4.3 -Provides: kernel-xen-base = 4.4 -Obsoletes: kernel-xen-base <= 4.4 -Provides: kernel-ec2-base = 4.4 -Obsoletes: kernel-ec2-base <= 4.4 -%endif -%obsolete_rebuilds %name Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz Source2: source-post.sh Source3: kernel-source.rpmlintrc @@ -853,6 +853,7 @@ # checksums. As the file is not included in the resulting RPM, it's # pointless to rely on its contents. Replacing by zeros to make the # checksums always the same for several builds of the same package. + test -s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep && \ dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=`stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep` count=1 res=0 @@ -1014,7 +1015,6 @@ Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -1034,6 +1034,65 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release +#!BuildIgnore: perl-Bootloader mkinitrd distribution-release +# Remove some packages that are installed automatically by the build system, +# but are not needed to build the kernel +#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools m4 udev insserv + +%ifarch s390 s390x +%if %build_vanilla && 0%{?suse_version} < 1130 +BuildRequires: dwarfextract +%endif +%endif +%ifarch %arm +BuildRequires: u-boot-tools +%endif + +Obsoletes: microcode_ctl + +# Force bzip2 instead of lzma compression to +# 1) allow install on older dist versions, and +# 2) decrease build times (bsc#962356) +%define _binary_payload w9.bzdio +# Do not recompute the build-id of vmlinux in find-debuginfo.sh (bsc#964063) +%define _no_recompute_build_ids 1 +# dead network if installed on SLES10, otherwise it will work (mostly) +Conflicts: sysfsutils < 2.0 +Conflicts: apparmor-profiles <= 2.1 +Conflicts: apparmor-parser < 2.3 +# root-lvm only works with newer udevs +Conflicts: udev < 118 +Conflicts: lvm2 < 2.02.33 +# Interface to hv_kvp_daemon changed +Conflicts: hyper-v < 4 +%ifarch %ix86 +Conflicts: libc.so.6()(64bit) +%endif +Provides: kernel = %version-%source_rel +%ifarch %ix86 +Provides: kernel-trace-base = 3.13 +Obsoletes: kernel-trace-base <= 3.13 +%endif +%ifarch ppc64 +Provides: kernel-kdump-base = 2.6.28 +Obsoletes: kernel-kdump-base <= 2.6.28 +%endif +%ifarch s390x +Provides: kernel-trace-base = 3.13 +Obsoletes: kernel-trace-base <= 3.13 +%endif +%ifarch x86_64 +Provides: kernel-trace-base = 3.13 +Obsoletes: kernel-trace-base <= 3.13 +Provides: kernel-bigsmp-base = 3.1 +Obsoletes: kernel-bigsmp-base <= 3.1 +Provides: kernel-desktop-base = 4.3 +Obsoletes: kernel-desktop-base <= 4.3 +Provides: kernel-xen-base = 4.4 +Obsoletes: kernel-xen-base <= 4.4 +Provides: kernel-ec2-base = 4.4 +Obsoletes: kernel-ec2-base <= 4.4 +%endif %ifarch %ix86 Provides: kernel-trace-base = 3.13 ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.219088540 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.223088394 +0100 @@ -17,7 +17,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -31,9 +31,9 @@ Summary: Kernel Documentation License: GPL-2.0 Group: Documentation/Man -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif ++++++ kernel-lpae.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.267086799 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.271086653 +0100 @@ -18,7 +18,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: Kernel for LPAE enabled systems License: GPL-2.0 Group: System/Kernel -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif @@ -97,12 +97,12 @@ # owned by multiple packages now. The dependency is not correct wrt openSUSE # 11.2 - 11.4, but we primarily care about the supported upgrade path. Obsoletes: %name-base < 3.1 +Recommends: kernel-firmware # The following is copied to the -base subpackage as well # BEGIN COMMON DEPS Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -122,9 +122,6 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release -# END COMMON DEPS -# Do not install p-b and mkinitrd for the install check, the %post script is -# able to handle this #!BuildIgnore: perl-Bootloader mkinitrd distribution-release # Remove some packages that are installed automatically by the build system, # but are not needed to build the kernel @@ -160,6 +157,9 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel +# END COMMON DEPS +# Do not install p-b and mkinitrd for the install check, the %post script is +# able to handle this %obsolete_rebuilds %name Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz Source2: source-post.sh @@ -802,6 +802,7 @@ # checksums. As the file is not included in the resulting RPM, it's # pointless to rely on its contents. Replacing by zeros to make the # checksums always the same for several builds of the same package. + test -s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep && \ dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=`stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep` count=1 res=0 @@ -963,7 +964,6 @@ Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -983,6 +983,41 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release +#!BuildIgnore: perl-Bootloader mkinitrd distribution-release +# Remove some packages that are installed automatically by the build system, +# but are not needed to build the kernel +#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools m4 udev insserv + +%ifarch s390 s390x +%if %build_vanilla && 0%{?suse_version} < 1130 +BuildRequires: dwarfextract +%endif +%endif +%ifarch %arm +BuildRequires: u-boot-tools +%endif + +Obsoletes: microcode_ctl + +# Force bzip2 instead of lzma compression to +# 1) allow install on older dist versions, and +# 2) decrease build times (bsc#962356) +%define _binary_payload w9.bzdio +# Do not recompute the build-id of vmlinux in find-debuginfo.sh (bsc#964063) +%define _no_recompute_build_ids 1 +# dead network if installed on SLES10, otherwise it will work (mostly) +Conflicts: sysfsutils < 2.0 +Conflicts: apparmor-profiles <= 2.1 +Conflicts: apparmor-parser < 2.3 +# root-lvm only works with newer udevs +Conflicts: udev < 118 +Conflicts: lvm2 < 2.02.33 +# Interface to hv_kvp_daemon changed +Conflicts: hyper-v < 4 +%ifarch %ix86 +Conflicts: libc.so.6()(64bit) +%endif +Provides: kernel = %version-%source_rel %obsolete_rebuilds %name-base %ifarch %ix86 ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.295085783 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.295085783 +0100 @@ -19,7 +19,7 @@ #!BuildIgnore: post-build-checks -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %define vanilla_only 0 @@ -57,9 +57,9 @@ Summary: package kernel and initrd for OBS VM builds License: GPL-2.0 Group: SLES -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif ++++++ kernel-obs-qa.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.323084767 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.327084622 +0100 @@ -17,7 +17,7 @@ # needsrootforbuild -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %include %_sourcedir/kernel-spec-macros @@ -36,9 +36,9 @@ Summary: Basic QA tests for the kernel License: GPL-2.0 Group: SLES -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.355083606 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.355083606 +0100 @@ -18,7 +18,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: Kernel with PAE Support License: GPL-2.0 Group: System/Kernel -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif @@ -97,12 +97,12 @@ # owned by multiple packages now. The dependency is not correct wrt openSUSE # 11.2 - 11.4, but we primarily care about the supported upgrade path. Obsoletes: %name-base < 3.1 +Recommends: kernel-firmware # The following is copied to the -base subpackage as well # BEGIN COMMON DEPS Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -122,9 +122,6 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release -# END COMMON DEPS -# Do not install p-b and mkinitrd for the install check, the %post script is -# able to handle this #!BuildIgnore: perl-Bootloader mkinitrd distribution-release # Remove some packages that are installed automatically by the build system, # but are not needed to build the kernel @@ -161,6 +158,20 @@ %endif Provides: kernel = %version-%source_rel %ifarch %ix86 +Provides: kernel-vmi-base = 2.6.38 +Obsoletes: kernel-vmi-base <= 2.6.38 +Provides: kernel-desktop-base = 4.3 +Obsoletes: kernel-desktop-base <= 4.3 +Provides: kernel-xen-base = 4.4 +Obsoletes: kernel-xen-base <= 4.4 +Provides: kernel-ec2-base = 4.4 +Obsoletes: kernel-ec2-base <= 4.4 +%endif +# END COMMON DEPS +# Do not install p-b and mkinitrd for the install check, the %post script is +# able to handle this +%obsolete_rebuilds %name +%ifarch %ix86 Provides: kernel-bigsmp = 2.6.17 Obsoletes: kernel-bigsmp <= 2.6.17 Provides: kernel-vmi = 2.6.38 @@ -172,17 +183,6 @@ Provides: kernel-ec2 = 4.4 Obsoletes: kernel-ec2 <= 4.4 %endif -%ifarch %ix86 -Provides: kernel-vmi-base = 2.6.38 -Obsoletes: kernel-vmi-base <= 2.6.38 -Provides: kernel-desktop-base = 4.3 -Obsoletes: kernel-desktop-base <= 4.3 -Provides: kernel-xen-base = 4.4 -Obsoletes: kernel-xen-base <= 4.4 -Provides: kernel-ec2-base = 4.4 -Obsoletes: kernel-ec2-base <= 4.4 -%endif -%obsolete_rebuilds %name Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz Source2: source-post.sh Source3: kernel-source.rpmlintrc @@ -830,6 +830,7 @@ # checksums. As the file is not included in the resulting RPM, it's # pointless to rely on its contents. Replacing by zeros to make the # checksums always the same for several builds of the same package. + test -s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep && \ dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=`stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep` count=1 res=0 @@ -991,7 +992,6 @@ Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -1011,6 +1011,51 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release +#!BuildIgnore: perl-Bootloader mkinitrd distribution-release +# Remove some packages that are installed automatically by the build system, +# but are not needed to build the kernel +#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools m4 udev insserv + +%ifarch s390 s390x +%if %build_vanilla && 0%{?suse_version} < 1130 +BuildRequires: dwarfextract +%endif +%endif +%ifarch %arm +BuildRequires: u-boot-tools +%endif + +Obsoletes: microcode_ctl + +# Force bzip2 instead of lzma compression to +# 1) allow install on older dist versions, and +# 2) decrease build times (bsc#962356) +%define _binary_payload w9.bzdio +# Do not recompute the build-id of vmlinux in find-debuginfo.sh (bsc#964063) +%define _no_recompute_build_ids 1 +# dead network if installed on SLES10, otherwise it will work (mostly) +Conflicts: sysfsutils < 2.0 +Conflicts: apparmor-profiles <= 2.1 +Conflicts: apparmor-parser < 2.3 +# root-lvm only works with newer udevs +Conflicts: udev < 118 +Conflicts: lvm2 < 2.02.33 +# Interface to hv_kvp_daemon changed +Conflicts: hyper-v < 4 +%ifarch %ix86 +Conflicts: libc.so.6()(64bit) +%endif +Provides: kernel = %version-%source_rel +%ifarch %ix86 +Provides: kernel-vmi-base = 2.6.38 +Obsoletes: kernel-vmi-base <= 2.6.38 +Provides: kernel-desktop-base = 4.3 +Obsoletes: kernel-desktop-base <= 4.3 +Provides: kernel-xen-base = 4.4 +Obsoletes: kernel-xen-base <= 4.4 +Provides: kernel-ec2-base = 4.4 +Obsoletes: kernel-ec2-base <= 4.4 +%endif %ifarch %ix86 Provides: kernel-vmi-base = 2.6.38 ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.375082880 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.379082735 +0100 @@ -18,7 +18,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %define vanilla_only 0 @@ -30,9 +30,9 @@ Summary: The Linux Kernel Sources License: GPL-2.0 Group: Development/Sources -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.407081720 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.407081720 +0100 @@ -24,10 +24,10 @@ Summary: Kernel Symbol Versions (modversions) License: GPL-2.0 Group: Development/Sources -Version: 4.13.10 +Version: 4.13.11 %if %using_buildservice %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif ++++++ kernel-syzkaller.spec ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.427080994 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.427080994 +0100 @@ -18,7 +18,7 @@ %define srcversion 4.13 -%define patchversion 4.13.10 +%define patchversion 4.13.11 %define variant %{nil} %define vanilla_only 0 @@ -58,9 +58,9 @@ Summary: Kernel used for fuzzing by syzkaller License: GPL-2.0 Group: System/Kernel -Version: 4.13.10 +Version: 4.13.11 %if 0%{?is_kotd} -Release: <RELEASE>.gdb36cf8 +Release: <RELEASE>.g0526da3 %else Release: 0 %endif @@ -97,12 +97,12 @@ # owned by multiple packages now. The dependency is not correct wrt openSUSE # 11.2 - 11.4, but we primarily care about the supported upgrade path. Obsoletes: %name-base < 3.1 +Recommends: kernel-firmware # The following is copied to the -base subpackage as well # BEGIN COMMON DEPS Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -122,9 +122,6 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release -# END COMMON DEPS -# Do not install p-b and mkinitrd for the install check, the %post script is -# able to handle this #!BuildIgnore: perl-Bootloader mkinitrd distribution-release # Remove some packages that are installed automatically by the build system, # but are not needed to build the kernel @@ -160,6 +157,9 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel +# END COMMON DEPS +# Do not install p-b and mkinitrd for the install check, the %post script is +# able to handle this %obsolete_rebuilds %name Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz Source2: source-post.sh @@ -803,6 +803,7 @@ # checksums. As the file is not included in the resulting RPM, it's # pointless to rely on its contents. Replacing by zeros to make the # checksums always the same for several builds of the same package. + test -s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep && \ dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=`stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep` count=1 res=0 @@ -964,7 +965,6 @@ Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -984,6 +984,41 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release +#!BuildIgnore: perl-Bootloader mkinitrd distribution-release +# Remove some packages that are installed automatically by the build system, +# but are not needed to build the kernel +#!BuildIgnore: autoconf automake gettext-runtime libtool cvs gettext-tools m4 udev insserv + +%ifarch s390 s390x +%if %build_vanilla && 0%{?suse_version} < 1130 +BuildRequires: dwarfextract +%endif +%endif +%ifarch %arm +BuildRequires: u-boot-tools +%endif + +Obsoletes: microcode_ctl + +# Force bzip2 instead of lzma compression to +# 1) allow install on older dist versions, and +# 2) decrease build times (bsc#962356) +%define _binary_payload w9.bzdio +# Do not recompute the build-id of vmlinux in find-debuginfo.sh (bsc#964063) +%define _no_recompute_build_ids 1 +# dead network if installed on SLES10, otherwise it will work (mostly) +Conflicts: sysfsutils < 2.0 +Conflicts: apparmor-profiles <= 2.1 +Conflicts: apparmor-parser < 2.3 +# root-lvm only works with newer udevs +Conflicts: udev < 118 +Conflicts: lvm2 < 2.02.33 +# Interface to hv_kvp_daemon changed +Conflicts: hyper-v < 4 +%ifarch %ix86 +Conflicts: libc.so.6()(64bit) +%endif +Provides: kernel = %version-%source_rel %obsolete_rebuilds %name-base %ifarch %ix86 kernel-vanilla.spec: same change kernel-zfcpdump.spec: same change ++++++ kernel-binary.spec.in ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:38.859065322 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:38.859065322 +0100 @@ -97,12 +97,12 @@ # owned by multiple packages now. The dependency is not correct wrt openSUSE # 11.2 - 11.4, but we primarily care about the supported upgrade path. Obsoletes: %name-base < 3.1 +Recommends: kernel-firmware # The following is copied to the -base subpackage as well # BEGIN COMMON DEPS Requires(pre): coreutils awk # For /usr/lib/module-init-tools/weak-modules2 Requires(post): suse-module-tools -Recommends: kernel-firmware # For depmod (modutils is a dependency provided by both module-init-tools and # kmod-compat) Requires(post): modutils @@ -122,9 +122,6 @@ # Install the package providing /etc/SuSE-release early enough, so that # the grub entry has correct title (bnc#757565) Requires(post): distribution-release -# END COMMON DEPS -# Do not install p-b and mkinitrd for the install check, the %post script is -# able to handle this #!BuildIgnore: perl-Bootloader mkinitrd distribution-release # Remove some packages that are installed automatically by the build system, # but are not needed to build the kernel @@ -160,9 +157,12 @@ Conflicts: libc.so.6()(64bit) %endif Provides: kernel = %version-%source_rel -@PROVIDES_OBSOLETES@ @PROVIDES_OBSOLETES_BASE@ +# END COMMON DEPS +# Do not install p-b and mkinitrd for the install check, the %post script is +# able to handle this %obsolete_rebuilds %name +@PROVIDES_OBSOLETES@ @SOURCES@ BuildRoot: %{_tmppath}/%{name}-%{version}-build ExclusiveArch: @ARCHS@ @@ -681,6 +681,7 @@ # checksums. As the file is not included in the resulting RPM, it's # pointless to rely on its contents. Replacing by zeros to make the # checksums always the same for several builds of the same package. + test -s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep && \ dd if=/dev/zero of=%buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep ibs=`stat -c%s %buildroot/lib/modules/%kernelrelease-%build_flavor/modules.dep` count=1 res=0 ++++++ patches.fixes.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0002-md-bitmap-copy-correct-data-for-bitmap-super.patch new/patches.fixes/0002-md-bitmap-copy-correct-data-for-bitmap-super.patch --- old/patches.fixes/0002-md-bitmap-copy-correct-data-for-bitmap-super.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/0002-md-bitmap-copy-correct-data-for-bitmap-super.patch 2017-11-03 23:20:30.000000000 +0100 @@ -0,0 +1,53 @@ +From: NeilBrown <[email protected]> +Subject: REVERT: md/bitmap: copy correct data for bitmap super +Patch-mainline: not yet, under discussion. +References: bsc#1062597 + +The below patch fixes a problem with badly-configured RAID5 +and introduces a problem on arch with 64K PAGE_SIZE. +So revert it. A better fix is comming + +x-From: Shaohua Li <[email protected]> +x-Date: Thu, 17 Aug 2017 10:35:11 -0700 +x-Subject: [PATCH] md/bitmap: copy correct data for bitmap super +x-Git-commit: 8031c3ddc70ab93099e7d1814382dba39f57b43e +x-Patch-mainline: md/4.14 + +raid5 cache could write bitmap superblock before bitmap superblock is +initialized. The bitmap superblock is less than 512B. The current code will +only copy the superblock to a new page and write the whole 512B, which will +zero the the data after the superblock. Unfortunately the data could include +bitmap, which we should preserve. The patch will make superblock read do 4k +chunk and we always copy the 4k data to new page, so the superblock write will +old data to disk and we don't change the bitmap. + +Reported-by: Song Liu <[email protected]> +Reviewed-by: Song Liu <[email protected]> +Cc: [email protected] (4.10+) +Signed-off-by: Shaohua Li <[email protected]> +Acked-by: NeilBrown <[email protected]> + +--- + drivers/md/bitmap.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/md/bitmap.c ++++ b/drivers/md/bitmap.c +@@ -625,7 +625,7 @@ re_read: + err = read_sb_page(bitmap->mddev, + offset, + sb_page, +- 0, PAGE_SIZE); ++ 0, sizeof(bitmap_super_t)); + } + if (err) + return err; +@@ -2123,7 +2123,7 @@ int bitmap_resize(struct bitmap *bitmap, + if (store.sb_page && bitmap->storage.sb_page) + memcpy(page_address(store.sb_page), + page_address(bitmap->storage.sb_page), +- PAGE_SIZE); ++ sizeof(bitmap_super_t)); + bitmap_file_unmap(&bitmap->storage); + bitmap->storage = store; + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/mac80211-don-t-compare-TKIP-TX-MIC-key-in-reinstall-.patch new/patches.fixes/mac80211-don-t-compare-TKIP-TX-MIC-key-in-reinstall-.patch --- old/patches.fixes/mac80211-don-t-compare-TKIP-TX-MIC-key-in-reinstall-.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/mac80211-don-t-compare-TKIP-TX-MIC-key-in-reinstall-.patch 2017-11-03 23:20:30.000000000 +0100 @@ -0,0 +1,83 @@ +From 82e83650178d1388d030f83ad4959e14fc029bb3 Mon Sep 17 00:00:00 2001 +From: Johannes Berg <[email protected]> +Date: Tue, 24 Oct 2017 21:12:13 +0200 +Subject: [PATCH] mac80211: don't compare TKIP TX MIC key in reinstall + prevention +Git-commit: cfbb0d90a7abb289edc91833d0905931f8805f12 +Patch-mainline: v4.14-rc7 +References: bsc#1066472 + +For the reinstall prevention, the code I had added compares the +whole key. It turns out though that iwlwifi firmware doesn't +provide the TKIP TX MIC key as it's not needed in client mode, +and thus the comparison will always return false. + +For client mode, thus always zero out the TX MIC key part before +doing the comparison in order to avoid accepting the reinstall +of the key with identical encryption and RX MIC key, but not the +same TX MIC key (since the supplicant provides the real one.) + +Fixes: fdf7cb4185b6 ("mac80211: accept key reinstall without changing anything") +Signed-off-by: Johannes Berg <[email protected]> +Signed-off-by: Luis R. Rodriguez <[email protected]> +--- + net/mac80211/key.c | 36 ++++++++++++++++++++++++++++++++++-- + 1 file changed, 34 insertions(+), 2 deletions(-) + +diff --git a/net/mac80211/key.c b/net/mac80211/key.c +index 11db78c73d11..c49b078aec1a 100644 +--- a/net/mac80211/key.c ++++ b/net/mac80211/key.c +@@ -610,6 +610,39 @@ void ieee80211_key_free_unused(struct ieee80211_key *key) + ieee80211_key_free_common(key); + } + ++static bool ieee80211_key_identical(struct ieee80211_sub_if_data *sdata, ++ struct ieee80211_key *old, ++ struct ieee80211_key *new) ++{ ++ u8 tkip_old[WLAN_KEY_LEN_TKIP], tkip_new[WLAN_KEY_LEN_TKIP]; ++ u8 *tk_old, *tk_new; ++ ++ if (!old || new->conf.keylen != old->conf.keylen) ++ return false; ++ ++ tk_old = old->conf.key; ++ tk_new = new->conf.key; ++ ++ /* ++ * In station mode, don't compare the TX MIC key, as it's never used ++ * and offloaded rekeying may not care to send it to the host. This ++ * is the case in iwlwifi, for example. ++ */ ++ if (sdata->vif.type == NL80211_IFTYPE_STATION && ++ new->conf.cipher == WLAN_CIPHER_SUITE_TKIP && ++ new->conf.keylen == WLAN_KEY_LEN_TKIP && ++ !(new->conf.flags & IEEE80211_KEY_FLAG_PAIRWISE)) { ++ memcpy(tkip_old, tk_old, WLAN_KEY_LEN_TKIP); ++ memcpy(tkip_new, tk_new, WLAN_KEY_LEN_TKIP); ++ memset(tkip_old + NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY, 0, 8); ++ memset(tkip_new + NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY, 0, 8); ++ tk_old = tkip_old; ++ tk_new = tkip_new; ++ } ++ ++ return !crypto_memneq(tk_old, tk_new, new->conf.keylen); ++} ++ + int ieee80211_key_link(struct ieee80211_key *key, + struct ieee80211_sub_if_data *sdata, + struct sta_info *sta) +@@ -635,8 +668,7 @@ int ieee80211_key_link(struct ieee80211_key *key, + * Silently accept key re-installation without really installing the + * new version of the key to avoid nonce reuse or replay issues. + */ +- if (old_key && key->conf.keylen == old_key->conf.keylen && +- !crypto_memneq(key->conf.key, old_key->conf.key, key->conf.keylen)) { ++ if (ieee80211_key_identical(sdata, old_key, key)) { + ieee80211_key_free_unused(key); + ret = 0; + goto out; +-- +2.14.2 + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/mac80211-use-constant-time-comparison-with-keys.patch new/patches.fixes/mac80211-use-constant-time-comparison-with-keys.patch --- old/patches.fixes/mac80211-use-constant-time-comparison-with-keys.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/mac80211-use-constant-time-comparison-with-keys.patch 2017-11-03 23:20:30.000000000 +0100 @@ -0,0 +1,42 @@ +From d3c6716f6aac38a998d66e849a931f155c66f57b Mon Sep 17 00:00:00 2001 +From: "Jason A. Donenfeld" <[email protected]> +Date: Tue, 17 Oct 2017 20:32:07 +0200 +Subject: [PATCH] mac80211: use constant time comparison with keys +Git-commit: 2bdd713b92a9cade239d3c7d15205a09f556624d +Patch-mainline: v4.14-rc7 +References: bsc#1066471 + +Otherwise we risk leaking information via timing side channel. + +Fixes: fdf7cb4185b6 ("mac80211: accept key reinstall without changing anything") +Signed-off-by: Jason A. Donenfeld <[email protected]> +Signed-off-by: Johannes Berg <[email protected]> +Signed-off-by: Luis R. Rodriguez <[email protected]> +--- + net/mac80211/key.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/net/mac80211/key.c b/net/mac80211/key.c +index bd653379eedb..11db78c73d11 100644 +--- a/net/mac80211/key.c ++++ b/net/mac80211/key.c +@@ -19,6 +19,7 @@ + #include <linux/slab.h> + #include <linux/export.h> + #include <net/mac80211.h> ++#include <crypto/algapi.h> + #include <asm/unaligned.h> + #include "ieee80211_i.h" + #include "driver-ops.h" +@@ -635,7 +636,7 @@ int ieee80211_key_link(struct ieee80211_key *key, + * new version of the key to avoid nonce reuse or replay issues. + */ + if (old_key && key->conf.keylen == old_key->conf.keylen && +- !memcmp(key->conf.key, old_key->conf.key, key->conf.keylen)) { ++ !crypto_memneq(key->conf.key, old_key->conf.key, key->conf.keylen)) { + ieee80211_key_free_unused(key); + ret = 0; + goto out; +-- +2.14.2 + ++++++ patches.kernel.org.tar.bz2 ++++++ ++++ 3220 lines of diff (skipped) ++++++ patches.suse.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/kprobes-x86-Set-up-frame-pointer-in-kprobe-trampolin.patch new/patches.suse/kprobes-x86-Set-up-frame-pointer-in-kprobe-trampolin.patch --- old/patches.suse/kprobes-x86-Set-up-frame-pointer-in-kprobe-trampolin.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/kprobes-x86-Set-up-frame-pointer-in-kprobe-trampolin.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,73 @@ +From: Josh Poimboeuf <[email protected]> +Date: Tue, 3 Oct 2017 08:51:43 -0500 +Subject: kprobes/x86: Set up frame pointer in kprobe trampoline +Git-commit: ee213fc72fd67d0988525af501534f4cb924d1e9 +Patch-mainline: v4.14-rc5 +References: bnc#1058115 + +Richard Weinberger saw an unwinder warning when running bcc's opensnoop: + + WARNING: kernel stack frame pointer at ffff99ef4076bea0 in opensnoop:2008 has bad value 0000000000000008 + unwind stack type:0 next_sp: (null) mask:0x2 graph_idx:0 + ... + ffff99ef4076be88: ffff99ef4076bea0 (0xffff99ef4076bea0) + ffff99ef4076be90: ffffffffac442721 (optimized_callback +0x81/0x90) + ... + +A lockdep stack trace was initiated from inside a kprobe handler, when +the unwinder noticed a bad frame pointer on the stack. The bad frame +pointer is related to the fact that the kprobe optprobe trampoline +doesn't save the frame pointer before calling into optimized_callback(). + +Reported-and-tested-by: Richard Weinberger <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Acked-by: Masami Hiramatsu <[email protected]> +Cc: Ananth N Mavinakayanahalli <[email protected]> +Cc: Anil S Keshavamurthy <[email protected]> +Cc: David S . Miller <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Link: http://lkml.kernel.org/r/7aef2f8ecd75c2f505ef9b80490412262cf4a44c.1507038547.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + arch/x86/kernel/kprobes/common.h | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +--- a/arch/x86/kernel/kprobes/common.h ++++ b/arch/x86/kernel/kprobes/common.h +@@ -3,6 +3,15 @@ + + /* Kprobes and Optprobes common header */ + ++#include <asm/asm.h> ++ ++#ifdef CONFIG_FRAME_POINTER ++# define SAVE_RBP_STRING " push %" _ASM_BP "\n" \ ++ " mov %" _ASM_SP ", %" _ASM_BP "\n" ++#else ++# define SAVE_RBP_STRING " push %" _ASM_BP "\n" ++#endif ++ + #ifdef CONFIG_X86_64 + #define SAVE_REGS_STRING \ + /* Skip cs, ip, orig_ax. */ \ +@@ -17,7 +26,7 @@ + " pushq %r10\n" \ + " pushq %r11\n" \ + " pushq %rbx\n" \ +- " pushq %rbp\n" \ ++ SAVE_RBP_STRING \ + " pushq %r12\n" \ + " pushq %r13\n" \ + " pushq %r14\n" \ +@@ -48,7 +57,7 @@ + " pushl %es\n" \ + " pushl %ds\n" \ + " pushl %eax\n" \ +- " pushl %ebp\n" \ ++ SAVE_RBP_STRING \ + " pushl %edi\n" \ + " pushl %esi\n" \ + " pushl %edx\n" \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/objtool-Fix-memory-leak-in-decode_instructions.patch new/patches.suse/objtool-Fix-memory-leak-in-decode_instructions.patch --- old/patches.suse/objtool-Fix-memory-leak-in-decode_instructions.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/objtool-Fix-memory-leak-in-decode_instructions.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,51 @@ +From: Kamalesh Babulal <[email protected]> +Date: Thu, 19 Oct 2017 11:27:24 -0500 +Subject: objtool: Fix memory leak in decode_instructions() +Git-commit: b703798386fb7288d5a995bd2284a984a5e24f3c +Patch-mainline: v4.14-rc6 +References: bnc#1058115 + +When an error occurs before adding an allocated insn to the list, free +it before returning. + +Signed-off-by: Kamalesh Babulal <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Link: http://lkml.kernel.org/r/336da800bf6070eae11f4e0a3b9ca64c27658114.1508430423.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + tools/objtool/check.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +--- a/tools/objtool/check.c ++++ b/tools/objtool/check.c +@@ -267,12 +267,13 @@ static int decode_instructions(struct ob + &insn->immediate, + &insn->stack_op); + if (ret) +- return ret; ++ goto err; + + if (!insn->type || insn->type > INSN_LAST) { + WARN_FUNC("invalid instruction type %d", + insn->sec, insn->offset, insn->type); +- return -1; ++ ret = -1; ++ goto err; + } + + hash_add(file->insn_hash, &insn->hash, insn->offset); +@@ -296,6 +297,10 @@ static int decode_instructions(struct ob + } + + return 0; ++ ++err: ++ free(insn); ++ return ret; + } + + /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/objtool-Skip-unreachable-warnings-for-GCC-4.4-and-ol.patch new/patches.suse/objtool-Skip-unreachable-warnings-for-GCC-4.4-and-ol.patch --- old/patches.suse/objtool-Skip-unreachable-warnings-for-GCC-4.4-and-ol.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/objtool-Skip-unreachable-warnings-for-GCC-4.4-and-ol.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,40 @@ +From: Josh Poimboeuf <[email protected]> +Date: Wed, 27 Sep 2017 17:34:23 -0500 +Subject: objtool: Skip unreachable warnings for GCC 4.4 and older +Git-commit: da541b20021c781f8b65492eeaee824e729599eb +Patch-mainline: v4.14-rc3 +References: bnc#1058115 + +The kbuild bot occasionally reports warnings like: + + drivers/scsi/pcmcia/aha152x_core.o: warning: objtool: seldo_run()+0x130: unreachable instruction + +These warnings are always with GCC 4.4. That version of GCC sometimes +places unreachable instructions after calls to noreturn functions. + +The unreachable warnings aren't very important anyway. Just ignore them +for old versions of GCC. + +Reported-by: kbuild test robot <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Link: http://lkml.kernel.org/r/bc89b807d965b98ec18a0bb94f96a594bd58f2f2.1506551639.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + scripts/Makefile.build | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/scripts/Makefile.build ++++ b/scripts/Makefile.build +@@ -266,6 +266,8 @@ objtool_args += --no-fp + endif + ifdef CONFIG_GCOV_KERNEL + objtool_args += --no-unreachable ++else ++objtool_args += $(call cc-ifversion, -lt, 0405, --no-unreachable) + endif + + # 'OBJECT_FILES_NON_STANDARD := y': skip objtool checking for a directory diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/objtool-Support-unoptimized-frame-pointer-setup.patch new/patches.suse/objtool-Support-unoptimized-frame-pointer-setup.patch --- old/patches.suse/objtool-Support-unoptimized-frame-pointer-setup.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/objtool-Support-unoptimized-frame-pointer-setup.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,65 @@ +From: Josh Poimboeuf <[email protected]> +Date: Wed, 27 Sep 2017 10:36:38 -0500 +Subject: objtool: Support unoptimized frame pointer setup +Git-commit: 607a4029d439cdfa258aff5da32bb9cd6ed1a66d +Patch-mainline: v4.14-rc3 +References: bnc#1058115 + +Arnd Bergmann reported a bunch of warnings like: + + crypto/jitterentropy.o: warning: objtool: jent_fold_time()+0x3b: call without frame pointer save/setup + crypto/jitterentropy.o: warning: objtool: jent_stuck()+0x1d: call without frame pointer save/setup + crypto/jitterentropy.o: warning: objtool: jent_unbiased_bit()+0x15: call without frame pointer save/setup + crypto/jitterentropy.o: warning: objtool: jent_read_entropy()+0x32: call without frame pointer save/setup + crypto/jitterentropy.o: warning: objtool: jent_entropy_collector_free()+0x19: call without frame pointer save/setup + +and + + arch/x86/events/core.o: warning: objtool: collect_events uses BP as a scratch register + arch/x86/events/core.o: warning: objtool: events_ht_sysfs_show()+0x22: call without frame pointer save/setup + +With certain rare configurations, GCC sometimes sets up the frame +pointer with: + + lea (%rsp),%rbp + +instead of: + + mov %rsp,%rbp + +The instructions are equivalent, so treat the former like the latter. + +Reported-by: Arnd Bergmann <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Link: http://lkml.kernel.org/r/a468af8b28a69b83fffc6d7668be9b6fcc873699.1506526584.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + tools/objtool/arch/x86/decode.c | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +--- a/tools/objtool/arch/x86/decode.c ++++ b/tools/objtool/arch/x86/decode.c +@@ -284,11 +284,16 @@ int arch_decode_instruction(struct elf * + case 0x8d: + if (sib == 0x24 && rex_w && !rex_b && !rex_x) { + +- /* lea disp(%rsp), reg */ + *type = INSN_STACK; +- op->src.type = OP_SRC_ADD; ++ if (!insn.displacement.value) { ++ /* lea (%rsp), reg */ ++ op->src.type = OP_SRC_REG; ++ } else { ++ /* lea disp(%rsp), reg */ ++ op->src.type = OP_SRC_ADD; ++ op->src.offset = insn.displacement.value; ++ } + op->src.reg = CFI_SP; +- op->src.offset = insn.displacement.value; + op->dest.type = OP_DEST_REG; + op->dest.reg = op_to_cfi_reg[modrm_reg][rex_r]; + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/objtool-Upgrade-libelf-devel-warning-to-error-for-CO.patch new/patches.suse/objtool-Upgrade-libelf-devel-warning-to-error-for-CO.patch --- old/patches.suse/objtool-Upgrade-libelf-devel-warning-to-error-for-CO.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/objtool-Upgrade-libelf-devel-warning-to-error-for-CO.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,39 @@ +From: Josh Poimboeuf <[email protected]> +Date: Tue, 3 Oct 2017 20:10:36 -0500 +Subject: objtool: Upgrade libelf-devel warning to error for + CONFIG_ORC_UNWINDER +Git-commit: 3dd40cb320fee7c23b574ab821ce140ccd1281c9 +Patch-mainline: v4.14-rc5 +References: bnc#1058115 + +With CONFIG_ORC_UNWINDER, if the user doesn't have libelf-devel +installed, and they don't see the make warning, their ORC unwinder will +be silently broken. Upgrade the warning to an error. + +Reported-and-tested-by: Borislav Petkov <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Link: http://lkml.kernel.org/r/d9dfc39fb8240998820f9efb233d283a1ee96084.1507079417.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + Makefile | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/Makefile ++++ b/Makefile +@@ -938,7 +938,11 @@ ifdef CONFIG_STACK_VALIDATION + ifeq ($(has_libelf),1) + objtool_target := tools/objtool FORCE + else +- $(warning "Cannot use CONFIG_STACK_VALIDATION, please install libelf-dev, libelf-devel or elfutils-libelf-devel") ++ ifdef CONFIG_ORC_UNWINDER ++ $(error "Cannot generate ORC metadata for CONFIG_ORC_UNWINDER=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel") ++ else ++ $(warning "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel") ++ endif + SKIP_STACK_VALIDATION := 1 + export SKIP_STACK_VALIDATION + endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/x86-entry-Fix-idtentry-unwind-hint.patch new/patches.suse/x86-entry-Fix-idtentry-unwind-hint.patch --- old/patches.suse/x86-entry-Fix-idtentry-unwind-hint.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/x86-entry-Fix-idtentry-unwind-hint.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,41 @@ +From: Josh Poimboeuf <[email protected]> +Date: Fri, 20 Oct 2017 11:21:33 -0500 +Subject: x86/entry: Fix idtentry unwind hint +Git-commit: 98990a33b77dda9babf91cb235654f6729e5702e +Patch-mainline: v4.14-rc7 +References: bnc#1058115 + +This fixes the following ORC warning in the 'int3' entry code: + + WARNING: can't dereference iret registers at ffff8801c5f17fe0 for ip ffffffff95f0d94b + +The ORC metadata had the wrong stack offset for the iret registers. + +Their location on the stack is dependent on whether the exception has an +error code. + +Reported-and-tested-by: Andrei Vagin <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Andy Lutomirski <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Fixes: 8c1f75587a18 ("x86/entry/64: Add unwind hint annotations") +Link: http://lkml.kernel.org/r/931d57f0551ed7979d5e7e05370d445c8e5137f8.1508516398.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + arch/x86/entry/entry_64.S | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/x86/entry/entry_64.S ++++ b/arch/x86/entry/entry_64.S +@@ -831,7 +831,7 @@ apicinterrupt IRQ_WORK_VECTOR irq_work + + .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1 + ENTRY(\sym) +- UNWIND_HINT_IRET_REGS offset=8 ++ UNWIND_HINT_IRET_REGS offset=\has_error_code*8 + + /* Sanity check */ + .if \shift_ist != -1 && \paranoid == 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/x86-kvm-Move-kvm_fastop_exception-to-.fixup-section.patch new/patches.suse/x86-kvm-Move-kvm_fastop_exception-to-.fixup-section.patch --- old/patches.suse/x86-kvm-Move-kvm_fastop_exception-to-.fixup-section.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/x86-kvm-Move-kvm_fastop_exception-to-.fixup-section.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,47 @@ +From: Josh Poimboeuf <[email protected]> +Date: Wed, 4 Oct 2017 10:39:05 -0500 +Subject: x86/kvm: Move kvm_fastop_exception to .fixup section +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +Git-commit: f26e60167d8b5b1c67b3efd4cb5672da446bdb0e +Patch-mainline: v4.14-rc4 +References: bnc#1058115 + +When compiling the kernel with the '-frecord-gcc-switches' flag, objtool +complains: + + arch/x86/kvm/emulate.o: warning: objtool: .GCC.command.line+0x0: special: can't find new instruction + +And also the kernel fails to link. + +The problem is that the 'kvm_fastop_exception' code gets placed into the +throwaway '.GCC.command.line' section instead of '.text'. + +Exception fixup code is conventionally placed in the '.fixup' section, +so put it there where it belongs. + +Reported-and-tested-by: Guenter Roeck <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Reviewed-by: Paolo Bonzini <[email protected]> +Signed-off-by: Radim Krčmář <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + arch/x86/kvm/emulate.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +--- a/arch/x86/kvm/emulate.c ++++ b/arch/x86/kvm/emulate.c +@@ -424,8 +424,10 @@ static int fastop(struct x86_emulate_ctx + #op " %al \n\t" \ + FOP_RET + +-asm(".global kvm_fastop_exception \n" +- "kvm_fastop_exception: xor %esi, %esi; ret"); ++asm(".pushsection .fixup, \"ax\"\n" ++ ".global kvm_fastop_exception \n" ++ "kvm_fastop_exception: xor %esi, %esi; ret\n" ++ ".popsection"); + + FOP_START(setcc) + FOP_SETCC(seto) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/x86-unwind-Align-stack-pointer-in-unwinder-dump.patch new/patches.suse/x86-unwind-Align-stack-pointer-in-unwinder-dump.patch --- old/patches.suse/x86-unwind-Align-stack-pointer-in-unwinder-dump.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/x86-unwind-Align-stack-pointer-in-unwinder-dump.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,48 @@ +From: Josh Poimboeuf <[email protected]> +Date: Mon, 9 Oct 2017 20:20:04 -0500 +Subject: x86/unwind: Align stack pointer in unwinder dump +Git-commit: 99bd28a49b150e4b938313a63b5532d95ba77885 +Patch-mainline: v4.14-rc5 +References: bnc#1058115 + +When printing the unwinder dump, the stack pointer could be unaligned, +for one of two reasons: + +- stack corruption; or + +- GCC created an unaligned stack. + +There's no way for the unwinder to tell the difference between the two, +so we have to assume one or the other. GCC unaligned stacks are very +rare, and have only been spotted before GCC 5. Presumably, if we're +doing an unwinder stack dump, stack corruption is more likely than a +GCC unaligned stack. So always align the stack before starting the +dump. + +Reported-and-tested-by: Tetsuo Handa <[email protected]> +Reported-and-tested-by: Fengguang Wu <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Byungchul Park <[email protected]> +Cc: LKP <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Link: http://lkml.kernel.org/r/2f540c515946ab09ed267e1a1d6421202a0cce08.1507597785.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + arch/x86/kernel/unwind_frame.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/arch/x86/kernel/unwind_frame.c ++++ b/arch/x86/kernel/unwind_frame.c +@@ -44,7 +44,8 @@ static void unwind_dump(struct unwind_st + state->stack_info.type, state->stack_info.next_sp, + state->stack_mask, state->graph_idx); + +- for (sp = state->orig_sp; sp; sp = PTR_ALIGN(stack_info.next_sp, sizeof(long))) { ++ for (sp = PTR_ALIGN(state->orig_sp, sizeof(long)); sp; ++ sp = PTR_ALIGN(stack_info.next_sp, sizeof(long))) { + if (get_stack_info(sp, state->task, &stack_info, &visit_mask)) + break; + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/x86-unwind-Disable-unwinder-warnings-on-32-bit.patch new/patches.suse/x86-unwind-Disable-unwinder-warnings-on-32-bit.patch --- old/patches.suse/x86-unwind-Disable-unwinder-warnings-on-32-bit.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/x86-unwind-Disable-unwinder-warnings-on-32-bit.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,41 @@ +From: Josh Poimboeuf <[email protected]> +Date: Mon, 9 Oct 2017 20:20:05 -0500 +Subject: x86/unwind: Disable unwinder warnings on 32-bit +Git-commit: d4a2d031dd42f9594107d317e2a9a0c6d73ad46b +Patch-mainline: v4.14-rc5 +References: bnc#1058115 + +x86-32 doesn't have stack validation, so in most cases it doesn't make +sense to warn about bad frame pointers. + +Reported-by: Tetsuo Handa <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Byungchul Park <[email protected]> +Cc: Fengguang Wu <[email protected]> +Cc: LKP <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Link: http://lkml.kernel.org/r/a69658760800bf281e6353248c23e0fa0acf5230.1507597785.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + arch/x86/kernel/unwind_frame.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/arch/x86/kernel/unwind_frame.c ++++ b/arch/x86/kernel/unwind_frame.c +@@ -357,6 +357,13 @@ bad_address: + state->regs->sp < (unsigned long)task_pt_regs(state->task)) + goto the_end; + ++ /* ++ * There are some known frame pointer issues on 32-bit. Disable ++ * unwinder warnings on 32-bit until it gets objtool support. ++ */ ++ if (IS_ENABLED(CONFIG_X86_32)) ++ goto the_end; ++ + if (state->regs) { + printk_deferred_once(KERN_WARNING + "WARNING: kernel stack regs at %p in %s:%d has bad 'bp' value %p\n", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/x86-unwind-Fix-dereference-of-untrusted-pointer.patch new/patches.suse/x86-unwind-Fix-dereference-of-untrusted-pointer.patch --- old/patches.suse/x86-unwind-Fix-dereference-of-untrusted-pointer.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/x86-unwind-Fix-dereference-of-untrusted-pointer.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,114 @@ +From: Josh Poimboeuf <[email protected]> +Date: Mon, 9 Oct 2017 20:20:02 -0500 +Subject: x86/unwind: Fix dereference of untrusted pointer +Git-commit: 62dd86ac01f9fb6386d7f8c6b389c3ea4582a50a +Patch-mainline: v4.14-rc5 +References: bnc#1058115 + +Tetsuo Handa and Fengguang Wu reported a panic in the unwinder: + + BUG: unable to handle kernel NULL pointer dereference at 000001f2 + IP: update_stack_state+0xd4/0x340 + *pde = 00000000 + + Oops: 0000 [#1] PREEMPT SMP + CPU: 0 PID: 18728 Comm: 01-cpu-hotplug Not tainted 4.13.0-rc4-00170-gb09be67 #592 + Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014 + task: bb0b53c0 task.stack: bb3ac000 + EIP: update_stack_state+0xd4/0x340 + EFLAGS: 00010002 CPU: 0 + EAX: 0000a570 EBX: bb3adccb ECX: 0000f401 EDX: 0000a570 + ESI: 00000001 EDI: 000001ba EBP: bb3adc6b ESP: bb3adc3f + DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 + CR0: 80050033 CR2: 000001f2 CR3: 0b3a7000 CR4: 00140690 + DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 + DR6: fffe0ff0 DR7: 00000400 + Call Trace: + ? unwind_next_frame+0xea/0x400 + ? __unwind_start+0xf5/0x180 + ? __save_stack_trace+0x81/0x160 + ? save_stack_trace+0x20/0x30 + ? __lock_acquire+0xfa5/0x12f0 + ? lock_acquire+0x1c2/0x230 + ? tick_periodic+0x3a/0xf0 + ? _raw_spin_lock+0x42/0x50 + ? tick_periodic+0x3a/0xf0 + ? tick_periodic+0x3a/0xf0 + ? debug_smp_processor_id+0x12/0x20 + ? tick_handle_periodic+0x23/0xc0 + ? local_apic_timer_interrupt+0x63/0x70 + ? smp_trace_apic_timer_interrupt+0x235/0x6a0 + ? trace_apic_timer_interrupt+0x37/0x3c + ? strrchr+0x23/0x50 + Code: 0f 95 c1 89 c7 89 45 e4 0f b6 c1 89 c6 89 45 dc 8b 04 85 98 cb 74 bc 88 4d e3 89 45 f0 83 c0 01 84 c9 89 04 b5 98 cb 74 bc 74 3b <8b> 47 38 8b 57 34 c6 43 1d 01 25 00 00 02 00 83 e2 03 09 d0 83 + EIP: update_stack_state+0xd4/0x340 SS:ESP: 0068:bb3adc3f + CR2: 00000000000001f2 + ---[ end trace 0d147fd4aba8ff50 ]--- + Kernel panic - not syncing: Fatal exception in interrupt + +On x86-32, after decoding a frame pointer to get a regs address, +regs_size() dereferences the regs pointer when it checks regs->cs to see +if the regs are user mode. This is dangerous because it's possible that +what looks like a decoded frame pointer is actually a corrupt value, and +we don't want the unwinder to make things worse. + +Instead of calling regs_size() on an unsafe pointer, just assume they're +kernel regs to start with. Later, once it's safe to access the regs, we +can do the user mode check and corresponding safety check for the +remaining two regs. + +Reported-and-tested-by: Tetsuo Handa <[email protected]> +Reported-and-tested-by: Fengguang Wu <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Byungchul Park <[email protected]> +Cc: LKP <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Fixes: 5ed8d8bb38c5 ("x86/unwind: Move common code into update_stack_state()") +Link: http://lkml.kernel.org/r/7f95b9a6993dec7674b3f3ab3dcd3294f7b9644d.1507597785.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + arch/x86/kernel/unwind_frame.c | 16 +++++++++++++++- + 1 file changed, 15 insertions(+), 1 deletion(-) + +--- a/arch/x86/kernel/unwind_frame.c ++++ b/arch/x86/kernel/unwind_frame.c +@@ -186,6 +186,12 @@ static struct pt_regs *decode_frame_poin + return (struct pt_regs *)(regs & ~0x1); + } + ++#ifdef CONFIG_X86_32 ++#define KERNEL_REGS_SIZE (sizeof(struct pt_regs) - 2*sizeof(long)) ++#else ++#define KERNEL_REGS_SIZE (sizeof(struct pt_regs)) ++#endif ++ + static bool update_stack_state(struct unwind_state *state, + unsigned long *next_bp) + { +@@ -204,7 +210,7 @@ static bool update_stack_state(struct un + regs = decode_frame_pointer(next_bp); + if (regs) { + frame = (unsigned long *)regs; +- len = regs_size(regs); ++ len = KERNEL_REGS_SIZE; + state->got_irq = true; + } else { + frame = next_bp; +@@ -228,6 +234,14 @@ static bool update_stack_state(struct un + frame < prev_frame_end) + return false; + ++ /* ++ * On 32-bit with user mode regs, make sure the last two regs are safe ++ * to access: ++ */ ++ if (IS_ENABLED(CONFIG_X86_32) && regs && user_mode(regs) && ++ !on_stack(info, frame, len + 2*sizeof(long))) ++ return false; ++ + /* Move state to the next frame: */ + if (regs) { + state->regs = regs; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/x86-unwind-Show-function-name-offset-in-ORC-error-me.patch new/patches.suse/x86-unwind-Show-function-name-offset-in-ORC-error-me.patch --- old/patches.suse/x86-unwind-Show-function-name-offset-in-ORC-error-me.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/x86-unwind-Show-function-name-offset-in-ORC-error-me.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,147 @@ +From: Josh Poimboeuf <[email protected]> +Date: Fri, 20 Oct 2017 11:21:34 -0500 +Subject: x86/unwind: Show function name+offset in ORC error messages +Git-commit: 58c3862b521ead4f69a24ef009a679cb3c519620 +Patch-mainline: v4.14-rc7 +References: bnc#1058115 + +Improve the warning messages to show the relevant function name+offset. +This makes it much easier to diagnose problems with the ORC metadata. + +Before: + + WARNING: can't dereference iret registers at ffff8801c5f17fe0 for ip ffffffff95f0d94b + +After: + + WARNING: can't dereference iret registers at ffff880178f5ffe0 for ip int3+0x5b/0x60 + +Reported-by: Andrei Vagin <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Andy Lutomirski <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Fixes: ee9f8fce9964 ("x86/unwind: Add the ORC unwinder") +Link: http://lkml.kernel.org/r/6bada6b9eac86017e16bd79e1e77877935cb50bb.1508516398.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + arch/x86/kernel/unwind_orc.c | 29 +++++++++++++++-------------- + 1 file changed, 15 insertions(+), 14 deletions(-) + +--- a/arch/x86/kernel/unwind_orc.c ++++ b/arch/x86/kernel/unwind_orc.c +@@ -86,8 +86,8 @@ static struct orc_entry *orc_find(unsign + idx = (ip - LOOKUP_START_IP) / LOOKUP_BLOCK_SIZE; + + if (unlikely((idx >= lookup_num_blocks-1))) { +- orc_warn("WARNING: bad lookup idx: idx=%u num=%u ip=%lx\n", +- idx, lookup_num_blocks, ip); ++ orc_warn("WARNING: bad lookup idx: idx=%u num=%u ip=%pB\n", ++ idx, lookup_num_blocks, (void *)ip); + return NULL; + } + +@@ -96,8 +96,8 @@ static struct orc_entry *orc_find(unsign + + if (unlikely((__start_orc_unwind + start >= __stop_orc_unwind) || + (__start_orc_unwind + stop > __stop_orc_unwind))) { +- orc_warn("WARNING: bad lookup value: idx=%u num=%u start=%u stop=%u ip=%lx\n", +- idx, lookup_num_blocks, start, stop, ip); ++ orc_warn("WARNING: bad lookup value: idx=%u num=%u start=%u stop=%u ip=%pB\n", ++ idx, lookup_num_blocks, start, stop, (void *)ip); + return NULL; + } + +@@ -373,7 +373,7 @@ bool unwind_next_frame(struct unwind_sta + + case ORC_REG_R10: + if (!state->regs || !state->full_regs) { +- orc_warn("missing regs for base reg R10 at ip %p\n", ++ orc_warn("missing regs for base reg R10 at ip %pB\n", + (void *)state->ip); + goto done; + } +@@ -382,7 +382,7 @@ bool unwind_next_frame(struct unwind_sta + + case ORC_REG_R13: + if (!state->regs || !state->full_regs) { +- orc_warn("missing regs for base reg R13 at ip %p\n", ++ orc_warn("missing regs for base reg R13 at ip %pB\n", + (void *)state->ip); + goto done; + } +@@ -391,7 +391,7 @@ bool unwind_next_frame(struct unwind_sta + + case ORC_REG_DI: + if (!state->regs || !state->full_regs) { +- orc_warn("missing regs for base reg DI at ip %p\n", ++ orc_warn("missing regs for base reg DI at ip %pB\n", + (void *)state->ip); + goto done; + } +@@ -400,7 +400,7 @@ bool unwind_next_frame(struct unwind_sta + + case ORC_REG_DX: + if (!state->regs || !state->full_regs) { +- orc_warn("missing regs for base reg DX at ip %p\n", ++ orc_warn("missing regs for base reg DX at ip %pB\n", + (void *)state->ip); + goto done; + } +@@ -408,7 +408,7 @@ bool unwind_next_frame(struct unwind_sta + break; + + default: +- orc_warn("unknown SP base reg %d for ip %p\n", ++ orc_warn("unknown SP base reg %d for ip %pB\n", + orc->sp_reg, (void *)state->ip); + goto done; + } +@@ -436,7 +436,7 @@ bool unwind_next_frame(struct unwind_sta + + case ORC_TYPE_REGS: + if (!deref_stack_regs(state, sp, &state->ip, &state->sp, true)) { +- orc_warn("can't dereference registers at %p for ip %p\n", ++ orc_warn("can't dereference registers at %p for ip %pB\n", + (void *)sp, (void *)orig_ip); + goto done; + } +@@ -448,7 +448,7 @@ bool unwind_next_frame(struct unwind_sta + + case ORC_TYPE_REGS_IRET: + if (!deref_stack_regs(state, sp, &state->ip, &state->sp, false)) { +- orc_warn("can't dereference iret registers at %p for ip %p\n", ++ orc_warn("can't dereference iret registers at %p for ip %pB\n", + (void *)sp, (void *)orig_ip); + goto done; + } +@@ -465,7 +465,8 @@ bool unwind_next_frame(struct unwind_sta + break; + + default: +- orc_warn("unknown .orc_unwind entry type %d\n", orc->type); ++ orc_warn("unknown .orc_unwind entry type %d for ip %pB\n", ++ orc->type, (void *)orig_ip); + break; + } + +@@ -487,7 +488,7 @@ bool unwind_next_frame(struct unwind_sta + break; + + default: +- orc_warn("unknown BP base reg %d for ip %p\n", ++ orc_warn("unknown BP base reg %d for ip %pB\n", + orc->bp_reg, (void *)orig_ip); + goto done; + } +@@ -496,7 +497,7 @@ bool unwind_next_frame(struct unwind_sta + if (state->stack_info.type == prev_type && + on_stack(&state->stack_info, (void *)state->sp, sizeof(long)) && + state->sp <= prev_sp) { +- orc_warn("stack going in the wrong direction? ip=%p\n", ++ orc_warn("stack going in the wrong direction? ip=%pB\n", + (void *)orig_ip); + goto done; + } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/x86-unwind-Use-MSB-for-frame-pointer-encoding-on-32-.patch new/patches.suse/x86-unwind-Use-MSB-for-frame-pointer-encoding-on-32-.patch --- old/patches.suse/x86-unwind-Use-MSB-for-frame-pointer-encoding-on-32-.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.suse/x86-unwind-Use-MSB-for-frame-pointer-encoding-on-32-.patch 2017-10-30 13:43:37.000000000 +0100 @@ -0,0 +1,108 @@ +From: Josh Poimboeuf <[email protected]> +Date: Mon, 9 Oct 2017 20:20:03 -0500 +Subject: x86/unwind: Use MSB for frame pointer encoding on 32-bit +Git-commit: 5c99b692cfd62f6915ed7ee7ed3c38d65ba3feab +Patch-mainline: v4.14-rc5 +References: bnc#1058115 + +On x86-32, Tetsuo Handa and Fengguang Wu reported unwinder warnings +like: + + WARNING: kernel stack regs at f60bb9c8 in swapper:1 has bad 'bp' value 0ba00000 + +And also there were some stack dumps with a bunch of unreliable '?' +symbols after an apic_timer_interrupt symbol, meaning the unwinder got +confused when it tried to read the regs. + +The cause of those issues is that, with GCC 4.8 (and possibly older), +there are cases where GCC misaligns the stack pointer in a leaf function +for no apparent reason: + + c124a388 <acpi_rs_move_data>: + c124a388: 55 push %ebp + c124a389: 89 e5 mov %esp,%ebp + c124a38b: 57 push %edi + c124a38c: 56 push %esi + c124a38d: 89 d6 mov %edx,%esi + c124a38f: 53 push %ebx + c124a390: 31 db xor %ebx,%ebx + c124a392: 83 ec 03 sub $0x3,%esp + ... + c124a3e3: 83 c4 03 add $0x3,%esp + c124a3e6: 5b pop %ebx + c124a3e7: 5e pop %esi + c124a3e8: 5f pop %edi + c124a3e9: 5d pop %ebp + c124a3ea: c3 ret + +If an interrupt occurs in such a function, the regs on the stack will be +unaligned, which breaks the frame pointer encoding assumption. So on +32-bit, use the MSB instead of the LSB to encode the regs. + +This isn't an issue on 64-bit, because interrupts align the stack before +writing to it. + +Reported-and-tested-by: Tetsuo Handa <[email protected]> +Reported-and-tested-by: Fengguang Wu <[email protected]> +Signed-off-by: Josh Poimboeuf <[email protected]> +Cc: Byungchul Park <[email protected]> +Cc: LKP <[email protected]> +Cc: Linus Torvalds <[email protected]> +Cc: Peter Zijlstra <[email protected]> +Cc: Thomas Gleixner <[email protected]> +Link: http://lkml.kernel.org/r/279a26996a482ca716605c7dbc7f2db9d8d91e81.1507597785.git.jpoim...@redhat.com +Signed-off-by: Ingo Molnar <[email protected]> +Signed-off-by: Jiri Slaby <[email protected]> +--- + arch/x86/entry/entry_32.S | 4 ++-- + arch/x86/kernel/unwind_frame.c | 12 ++++++++++++ + 2 files changed, 14 insertions(+), 2 deletions(-) + +--- a/arch/x86/entry/entry_32.S ++++ b/arch/x86/entry/entry_32.S +@@ -176,7 +176,7 @@ + /* + * This is a sneaky trick to help the unwinder find pt_regs on the stack. The + * frame pointer is replaced with an encoded pointer to pt_regs. The encoding +- * is just setting the LSB, which makes it an invalid stack address and is also ++ * is just clearing the MSB, which makes it an invalid stack address and is also + * a signal to the unwinder that it's a pt_regs pointer in disguise. + * + * NOTE: This macro must be used *after* SAVE_ALL because it corrupts the +@@ -185,7 +185,7 @@ + .macro ENCODE_FRAME_POINTER + #ifdef CONFIG_FRAME_POINTER + mov %esp, %ebp +- orl $0x1, %ebp ++ andl $0x7fffffff, %ebp + #endif + .endm + +--- a/arch/x86/kernel/unwind_frame.c ++++ b/arch/x86/kernel/unwind_frame.c +@@ -176,6 +176,7 @@ static bool is_last_task_frame(struct un + * This determines if the frame pointer actually contains an encoded pointer to + * pt_regs on the stack. See ENCODE_FRAME_POINTER. + */ ++#ifdef CONFIG_X86_64 + static struct pt_regs *decode_frame_pointer(unsigned long *bp) + { + unsigned long regs = (unsigned long)bp; +@@ -185,6 +186,17 @@ static struct pt_regs *decode_frame_poin + + return (struct pt_regs *)(regs & ~0x1); + } ++#else ++static struct pt_regs *decode_frame_pointer(unsigned long *bp) ++{ ++ unsigned long regs = (unsigned long)bp; ++ ++ if (regs & 0x80000000) ++ return NULL; ++ ++ return (struct pt_regs *)(regs | 0x80000000); ++} ++#endif + + #ifdef CONFIG_X86_32 + #define KERNEL_REGS_SIZE (sizeof(struct pt_regs) - 2*sizeof(long)) ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:39.723033979 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:39.723033979 +0100 @@ -688,6 +688,50 @@ patches.kernel.org/4.13.10-084-xfs-trim-writepage-mapping-to-within-eof.patch patches.kernel.org/4.13.10-085-xfs-move-two-more-RT-specific-functions-into-.patch patches.kernel.org/4.13.10-086-Linux-4.13.10.patch + patches.kernel.org/4.13.11-001-workqueue-replace-pool-manager_arb-mutex-with.patch + patches.kernel.org/4.13.11-002-nvme-fc-fix-iowait-hang.patch + patches.kernel.org/4.13.11-003-ALSA-hda-realtek-Add-support-for-ALC236-ALC32.patch + patches.kernel.org/4.13.11-004-ALSA-hda-fix-headset-mic-problem-for-Dell-mac.patch + patches.kernel.org/4.13.11-005-ceph-unlock-dangling-spinlock-in-try_flush_ca.patch + patches.kernel.org/4.13.11-006-Fix-tracing-sample-code-warning.patch + patches.kernel.org/4.13.11-007-KVM-PPC-Fix-oops-when-checking-KVM_CAP_PPC_HT.patch + patches.kernel.org/4.13.11-008-KVM-PPC-Book3S-HV-POWER9-more-doorbell-fixes.patch + patches.kernel.org/4.13.11-009-KVM-PPC-Book3S-Protect-kvmppc_gpa_to_ua-with-.patch + patches.kernel.org/4.13.11-010-s390-kvm-fix-detection-of-guest-machine-check.patch + patches.kernel.org/4.13.11-011-nbd-handle-interrupted-sendmsg-with-a-sndtime.patch + patches.kernel.org/4.13.11-012-spi-uapi-spidev-add-missing-ioctl-header.patch + patches.kernel.org/4.13.11-013-spi-a3700-Return-correct-value-on-timeout-det.patch + patches.kernel.org/4.13.11-014-spi-bcm-qspi-Fix-use-after-free-in-bcm_qspi_p.patch + patches.kernel.org/4.13.11-015-spi-armada-3700-Fix-failing-commands-with-qua.patch + patches.kernel.org/4.13.11-016-ovl-add-NULL-check-in-ovl_alloc_inode.patch + patches.kernel.org/4.13.11-017-ovl-fix-EIO-from-lookup-of-non-indexed-upper.patch + patches.kernel.org/4.13.11-018-ovl-handle-ENOENT-on-index-lookup.patch + patches.kernel.org/4.13.11-019-ovl-do-not-cleanup-unsupported-index-entries.patch + patches.kernel.org/4.13.11-020-fuse-fix-READDIRPLUS-skipping-an-entry.patch + patches.kernel.org/4.13.11-021-xen-gntdev-avoid-out-of-bounds-access-in-case.patch + patches.kernel.org/4.13.11-022-xen-fix-booting-ballooned-down-hvm-guest.patch + patches.kernel.org/4.13.11-023-cifs-Select-all-required-crypto-modules.patch + patches.kernel.org/4.13.11-024-CIFS-Fix-NULL-pointer-deref-on-SMB2_tcon-fail.patch + patches.kernel.org/4.13.11-025-Input-elan_i2c-add-ELAN0611-to-the-ACPI-table.patch + patches.kernel.org/4.13.11-026-Input-gtco-fix-potential-out-of-bound-access.patch + patches.kernel.org/4.13.11-027-Fix-encryption-labels-and-lengths-for-SMB3.1..patch + patches.kernel.org/4.13.11-028-SMB3-Validate-negotiate-request-must-always-b.patch + patches.kernel.org/4.13.11-029-assoc_array-Fix-a-buggy-node-splitting-case.patch + patches.kernel.org/4.13.11-030-scsi-zfcp-fix-erp_action-use-before-initializ.patch + patches.kernel.org/4.13.11-031-scsi-aacraid-Fix-controller-initialization-fa.patch + patches.kernel.org/4.13.11-032-scsi-qla2xxx-Initialize-Work-element-before-r.patch + patches.kernel.org/4.13.11-033-scsi-sg-Re-fix-off-by-one-in-sg_fill_request_.patch + patches.kernel.org/4.13.11-034-x86-cpu-AMD-Apply-the-Erratum-688-fix-when-th.patch + patches.kernel.org/4.13.11-035-drm-amd-powerplay-fix-uninitialized-variable.patch + patches.kernel.org/4.13.11-036-drm-i915-perf-fix-perf-enable-disable-ioctls-.patch + patches.kernel.org/4.13.11-037-can-sun4i-fix-loopback-mode.patch + patches.kernel.org/4.13.11-038-can-kvaser_usb-Correct-return-value-in-printo.patch + patches.kernel.org/4.13.11-039-can-kvaser_usb-Ignore-CMD_FLUSH_QUEUE_REPLY-m.patch + patches.kernel.org/4.13.11-040-cfg80211-fix-connect-disconnect-edge-cases.patch + patches.kernel.org/4.13.11-041-ipsec-Fix-aborted-xfrm-policy-dump-crash.patch + patches.kernel.org/4.13.11-042-regulator-fan53555-fix-I2C-device-ids.patch + patches.kernel.org/4.13.11-043-powerpc-xive-Fix-the-size-of-the-cpumask-used.patch + patches.kernel.org/4.13.11-044-Linux-4.13.11.patch ######################################################## # Build fixes that apply to the vanilla kernel too. @@ -970,6 +1014,8 @@ # bnc#362850 patches.fixes/sd_liberal_28_sense_invalid.diff + # revert + patches.fixes/0002-md-bitmap-copy-correct-data-for-bitmap-super.patch ######################################################## # DRM/Video @@ -993,6 +1039,8 @@ patches.suse/b43-missing-firmware-info.patch patches.suse/iwlwifi-expose-default-fallback-ucode-api patches.fixes/mac80211-accept-key-reinstall-without-changing-anyth.patch + patches.fixes/mac80211-use-constant-time-comparison-with-keys.patch + patches.fixes/mac80211-don-t-compare-TKIP-TX-MIC-key-in-reinstall-.patch ######################################################## # ISDN @@ -1148,6 +1196,19 @@ patches.suse/0001-x86-asm-Fix-inline-asm-call-constraints-for-GCC-4.4.patch patches.suse/0001-x86-asm-Use-register-variable-to-get-stack-pointer-v.patch + patches.suse/objtool-Skip-unreachable-warnings-for-GCC-4.4-and-ol.patch + patches.suse/objtool-Support-unoptimized-frame-pointer-setup.patch + patches.suse/kprobes-x86-Set-up-frame-pointer-in-kprobe-trampolin.patch + patches.suse/objtool-Upgrade-libelf-devel-warning-to-error-for-CO.patch + patches.suse/x86-kvm-Move-kvm_fastop_exception-to-.fixup-section.patch + patches.suse/x86-unwind-Fix-dereference-of-untrusted-pointer.patch + patches.suse/x86-unwind-Use-MSB-for-frame-pointer-encoding-on-32-.patch + patches.suse/x86-unwind-Align-stack-pointer-in-unwinder-dump.patch + patches.suse/x86-unwind-Disable-unwinder-warnings-on-32-bit.patch + patches.suse/objtool-Fix-memory-leak-in-decode_instructions.patch + patches.suse/x86-entry-Fix-idtentry-unwind-hint.patch + patches.suse/x86-unwind-Show-function-name-offset-in-ORC-error-me.patch + # pending patches.suse/0001-objtool-Don-t-report-end-of-section-error-after-an-e.patch patches.suse/0002-x86-head-Remove-confusing-comment.patch ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.mVqCQy/_old 2017-11-07 09:57:39.755032818 +0100 +++ /var/tmp/diff_new_pack.mVqCQy/_new 2017-11-07 09:57:39.755032818 +0100 @@ -1,3 +1,3 @@ -2017-10-27 11:03:09 +0200 -GIT Revision: db36cf83181a996bfdb86b3c32dc376d7b6922f0 +2017-11-04 09:00:26 +0100 +GIT Revision: 0526da3cc45db9c6b774d804920904bc4856d57f GIT Branch: stable
