Hello community, here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2016-01-26 10:14:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kernel-source (Old) and /work/SRC/openSUSE:Factory/.kernel-source.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kernel-source" Changes: -------- --- /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes 2016-01-13 22:43:31.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2016-01-26 10:14:29.000000000 +0100 @@ -1,0 +2,132 @@ +Wed Jan 20 18:02:28 CET 2016 - [email protected] + +- scsi: ignore errors from scsi_dh_add_device() (boo#962813). +- commit 1b0ab71 + +------------------------------------------------------------------- +Wed Jan 20 17:43:09 CET 2016 - [email protected] + +- ALSA: hda - Flush the pending probe work at remove (boo#960710). +- commit 1a7f7c2 + +------------------------------------------------------------------- +Wed Jan 20 16:45:52 CET 2016 - [email protected] + +- rpm/old-flavors: Obsolete kernel-xen <= 4.4, to match 4.3.anything +- commit cd04346 + +------------------------------------------------------------------- +Wed Jan 20 15:36:56 CET 2016 - [email protected] + +- mm: readahead: Increase default readahead window (VM Performance, bnc#548529). +- Delete + patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch. + patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch. +- commit 42f90c8 + +------------------------------------------------------------------- +Wed Jan 20 10:14:52 CET 2016 - [email protected] + +- HID: multitouch: fix input mode switching on some Elan panels + (boo#954532). +- commit 71b733e + +------------------------------------------------------------------- +Wed Jan 20 10:06:50 CET 2016 - [email protected] + +- Enable CONFIG_PINCTRL_CHERRYVIEW and _BROXTON (boo#954532) + Needed for recent tablets/laptops. + CONFIG_PINCTRL_BAYTRAIL is still disabled as it can't be built as a + module. +- commit d33a340 + +------------------------------------------------------------------- +Wed Jan 20 05:00:56 CET 2016 - [email protected] + +- patches.fixes/keys-fix-leak.patch: (bnc#962075, CVE-2016-0728). +- commit e2007ee + +------------------------------------------------------------------- +Tue Jan 19 15:05:36 CET 2016 - [email protected] + +- hwrng: core - sleep interruptible in read (bnc#962597). +- commit d407b31 + +------------------------------------------------------------------- +Fri Jan 15 04:50:29 CET 2016 - [email protected] + +- Delete + patches.fixes/0001-NFSv4-do-not-accept-an-incompatible-delegation.patch. + This was fixed in 4.3 by + Commit: 24311f884189 ("NFSv4: Recovery of recalled read delegations is broken") +- commit c67a4b2 + +------------------------------------------------------------------- +Thu Jan 14 11:52:15 CET 2016 - [email protected] + +- drm/i915: shut up gen8+ SDE irq dmesg noise (boo#961887). +- commit ef6f4af + +------------------------------------------------------------------- +Thu Jan 14 11:36:40 CET 2016 - [email protected] + +- Delete obsolete patches +- Delete + patches.arch/arm64-gpex-0001-device-core-Introduce-per-device-MSI-domain-pointer.patch. +- Delete + patches.arch/arm64-gpex-0002-PCI-MSI-add-hooks-to-populate-the-msi_domain-field.patch. +- Delete + patches.arch/arm64-gpex-0003-PCI-MSI-of-add-support-for-OF-provided-msi_domain.patch. +- Delete + patches.arch/arm64-gpex-0004-PCI-MSI-Let-pci_msi_get_domain-use-struct-device-s-m.patch. +- Delete + patches.arch/arm64-gpex-0005-irqchip-GICv2m-Get-rid-of-struct-msi_controller.patch. +- Delete + patches.arch/arm64-gpex-0006-irqchip-gicv3-its-Get-rid-of-struct-msi_controller.patch. +- Delete + patches.arch/arm64-gpex-0007-PCI-MSI-Drop-domain-field-from-msi_controller.patch. +- Delete + patches.arch/arm64-gpex-0008-PCI-MSI-of-Allow-msi_domain-lookup-using-the-PHB-nod.patch. +- commit 370a5bb + +------------------------------------------------------------------- +Wed Jan 13 16:39:43 CET 2016 - [email protected] + +- Delete patches.fixes/nouveau-fix-race-with-fence-signaling. + This patch was obsoleted by protecting ->channel with RCU. +- commit a704b3b + +------------------------------------------------------------------- +Wed Jan 13 16:26:12 CET 2016 - [email protected] + +- Delete patches.fixes/dm-release-map_lock-before-set_disk_ro. + The drivers/md/dm.c:__bind has changes significantly and this patch + is no longer relevant. +- commit 75554c0 + +------------------------------------------------------------------- +Tue Jan 12 13:31:14 CET 2016 - [email protected] + +- rpm/kernel-binary.spec.in: Fix build if no UEFI certs are installed +- commit ef1b7d3 + +------------------------------------------------------------------- +Tue Jan 12 13:10:15 CET 2016 - [email protected] + +- rpm/kernel-binary.spec.in: Install libopenssl-devel for newer sign-file +- commit fbdf0b8 + +------------------------------------------------------------------- +Mon Jan 11 18:10:59 CET 2016 - [email protected] + +- series.conf: Whitespace cleanup +- commit 4a33d40 + +------------------------------------------------------------------- +Mon Jan 11 16:04:33 CET 2016 - [email protected] + +- rpm/constraints.in: Bump disk space requirements up a bit + Require 10GB on s390x, 20GB elsewhere. +- commit 558b7b3 + +------------------------------------------------------------------- @@ -5208,0 +5341,7 @@ + +------------------------------------------------------------------- +Wed Jul 9 21:55:35 CEST 2014 - [email protected] + +- rpm/kernel-binary.spec.in: No scriptlets in kernel-zfcpdump + The kernel should not be added to the bootloader nor are there any KMPs. +- commit bcca34b 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-vanilla.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kernel-debug.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -59,7 +59,7 @@ Group: System/Kernel Version: 4.4.0 %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif @@ -70,6 +70,7 @@ %if 0%{?suse_version} > 1310 BuildRequires: hmaccalc %endif +BuildRequires: libopenssl-devel BuildRequires: modutils # Used to sign the kernel in the buildservice BuildRequires: openssl @@ -648,6 +649,10 @@ *) base_package=0 ;; esac for script in preun postun pre post devel-pre devel-post; do + if test %build_flavor = "zfcpdump"; then + : >%my_builddir/$script$sub.sh + continue + fi sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:%build_flavor:g" \ @@ -893,7 +898,7 @@ -o -name '*.ko' -prune -o -type f -printf '/%%p\n' cat %my_builddir/base-modules fi - if test %CONFIG_MODULE_SIG = "y"; then + if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then find etc/uefi/certs -type f -printf '/%%p\n' fi test -d lib/firmware/%kernelrelease-%build_flavor && \ ++++++ kernel-default.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -59,7 +59,7 @@ Group: System/Kernel Version: 4.4.0 %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif @@ -70,6 +70,7 @@ %if 0%{?suse_version} > 1310 BuildRequires: hmaccalc %endif +BuildRequires: libopenssl-devel BuildRequires: modutils # Used to sign the kernel in the buildservice BuildRequires: openssl @@ -169,10 +170,10 @@ Obsoletes: kernel-bigsmp <= 3.1 Provides: kernel-desktop = 4.3 Obsoletes: kernel-desktop <= 4.3 -Provides: kernel-xen = 4.3 -Obsoletes: kernel-xen <= 4.3 -Provides: kernel-ec2 = 4.3 -Obsoletes: kernel-ec2 <= 4.3 +Provides: kernel-xen = 4.4 +Obsoletes: kernel-xen <= 4.4 +Provides: kernel-ec2 = 4.4 +Obsoletes: kernel-ec2 <= 4.4 %endif %ifarch %ix86 Provides: kernel-trace-base = 3.13 @@ -193,10 +194,10 @@ Obsoletes: kernel-bigsmp-base <= 3.1 Provides: kernel-desktop-base = 4.3 Obsoletes: kernel-desktop-base <= 4.3 -Provides: kernel-xen-base = 4.3 -Obsoletes: kernel-xen-base <= 4.3 -Provides: kernel-ec2-base = 4.3 -Obsoletes: kernel-ec2-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 @@ -691,6 +692,10 @@ *) base_package=0 ;; esac for script in preun postun pre post devel-pre devel-post; do + if test %build_flavor = "zfcpdump"; then + : >%my_builddir/$script$sub.sh + continue + fi sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:%build_flavor:g" \ @@ -936,7 +941,7 @@ -o -name '*.ko' -prune -o -type f -printf '/%%p\n' cat %my_builddir/base-modules fi - if test %CONFIG_MODULE_SIG = "y"; then + if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then find etc/uefi/certs -type f -printf '/%%p\n' fi test -d lib/firmware/%kernelrelease-%build_flavor && \ @@ -1009,10 +1014,10 @@ Obsoletes: kernel-bigsmp-base <= 3.1 Provides: kernel-desktop-base = 4.3 Obsoletes: kernel-desktop-base <= 4.3 -Provides: kernel-xen-base = 4.3 -Obsoletes: kernel-xen-base <= 4.3 -Provides: kernel-ec2-base = 4.3 -Obsoletes: kernel-ec2-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-base %ifarch %ix86 @@ -1071,10 +1076,10 @@ Obsoletes: kernel-bigsmp-extra <= 3.1 Provides: kernel-desktop-extra = 4.3 Obsoletes: kernel-desktop-extra <= 4.3 -Provides: kernel-xen-extra = 4.3 -Obsoletes: kernel-xen-extra <= 4.3 -Provides: kernel-ec2-extra = 4.3 -Obsoletes: kernel-ec2-extra <= 4.3 +Provides: kernel-xen-extra = 4.4 +Obsoletes: kernel-xen-extra <= 4.4 +Provides: kernel-ec2-extra = 4.4 +Obsoletes: kernel-ec2-extra <= 4.4 %endif %obsolete_rebuilds %name-extra Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu) @@ -1146,10 +1151,10 @@ Obsoletes: kernel-bigsmp-devel <= 3.1 Provides: kernel-desktop-devel = 4.3 Obsoletes: kernel-desktop-devel <= 4.3 -Provides: kernel-xen-devel = 4.3 -Obsoletes: kernel-xen-devel <= 4.3 -Provides: kernel-ec2-devel = 4.3 -Obsoletes: kernel-ec2-devel <= 4.3 +Provides: kernel-xen-devel = 4.4 +Obsoletes: kernel-xen-devel <= 4.4 +Provides: kernel-ec2-devel = 4.4 +Obsoletes: kernel-ec2-devel <= 4.4 %endif %obsolete_rebuilds %name-devel PreReq: coreutils ++++++ kernel-docs.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -29,7 +29,7 @@ Group: Documentation/Man Version: 4.4.0 %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif ++++++ kernel-lpae.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -59,7 +59,7 @@ Group: System/Kernel Version: 4.4.0 %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif @@ -70,6 +70,7 @@ %if 0%{?suse_version} > 1310 BuildRequires: hmaccalc %endif +BuildRequires: libopenssl-devel BuildRequires: modutils # Used to sign the kernel in the buildservice BuildRequires: openssl @@ -642,6 +643,10 @@ *) base_package=0 ;; esac for script in preun postun pre post devel-pre devel-post; do + if test %build_flavor = "zfcpdump"; then + : >%my_builddir/$script$sub.sh + continue + fi sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:%build_flavor:g" \ @@ -887,7 +892,7 @@ -o -name '*.ko' -prune -o -type f -printf '/%%p\n' cat %my_builddir/base-modules fi - if test %CONFIG_MODULE_SIG = "y"; then + if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then find etc/uefi/certs -type f -printf '/%%p\n' fi test -d lib/firmware/%kernelrelease-%build_flavor && \ ++++++ kernel-obs-build.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -53,7 +53,7 @@ Group: SLES Version: 4.4.0 %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif kernel-obs-qa.spec: same change ++++++ kernel-pae.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -59,7 +59,7 @@ Group: System/Kernel Version: 4.4.0 %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif @@ -70,6 +70,7 @@ %if 0%{?suse_version} > 1310 BuildRequires: hmaccalc %endif +BuildRequires: libopenssl-devel BuildRequires: modutils # Used to sign the kernel in the buildservice BuildRequires: openssl @@ -153,20 +154,20 @@ Obsoletes: kernel-vmi <= 2.6.38 Provides: kernel-desktop = 4.3 Obsoletes: kernel-desktop <= 4.3 -Provides: kernel-xen = 4.3 -Obsoletes: kernel-xen <= 4.3 -Provides: kernel-ec2 = 4.3 -Obsoletes: kernel-ec2 <= 4.3 +Provides: kernel-xen = 4.4 +Obsoletes: kernel-xen <= 4.4 +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.3 -Obsoletes: kernel-xen-base <= 4.3 -Provides: kernel-ec2-base = 4.3 -Obsoletes: kernel-ec2-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 @@ -668,6 +669,10 @@ *) base_package=0 ;; esac for script in preun postun pre post devel-pre devel-post; do + if test %build_flavor = "zfcpdump"; then + : >%my_builddir/$script$sub.sh + continue + fi sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:%build_flavor:g" \ @@ -913,7 +918,7 @@ -o -name '*.ko' -prune -o -type f -printf '/%%p\n' cat %my_builddir/base-modules fi - if test %CONFIG_MODULE_SIG = "y"; then + if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then find etc/uefi/certs -type f -printf '/%%p\n' fi test -d lib/firmware/%kernelrelease-%build_flavor && \ @@ -972,10 +977,10 @@ Obsoletes: kernel-vmi-base <= 2.6.38 Provides: kernel-desktop-base = 4.3 Obsoletes: kernel-desktop-base <= 4.3 -Provides: kernel-xen-base = 4.3 -Obsoletes: kernel-xen-base <= 4.3 -Provides: kernel-ec2-base = 4.3 -Obsoletes: kernel-ec2-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-base %ifarch %ix86 @@ -1027,10 +1032,10 @@ Obsoletes: kernel-vmi-extra <= 2.6.38 Provides: kernel-desktop-extra = 4.3 Obsoletes: kernel-desktop-extra <= 4.3 -Provides: kernel-xen-extra = 4.3 -Obsoletes: kernel-xen-extra <= 4.3 -Provides: kernel-ec2-extra = 4.3 -Obsoletes: kernel-ec2-extra <= 4.3 +Provides: kernel-xen-extra = 4.4 +Obsoletes: kernel-xen-extra <= 4.4 +Provides: kernel-ec2-extra = 4.4 +Obsoletes: kernel-ec2-extra <= 4.4 %endif %obsolete_rebuilds %name-extra Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu) @@ -1095,10 +1100,10 @@ Obsoletes: kernel-vmi-devel <= 2.6.38 Provides: kernel-desktop-devel = 4.3 Obsoletes: kernel-desktop-devel <= 4.3 -Provides: kernel-xen-devel = 4.3 -Obsoletes: kernel-xen-devel <= 4.3 -Provides: kernel-ec2-devel = 4.3 -Obsoletes: kernel-ec2-devel <= 4.3 +Provides: kernel-xen-devel = 4.4 +Obsoletes: kernel-xen-devel <= 4.4 +Provides: kernel-ec2-devel = 4.4 +Obsoletes: kernel-ec2-devel <= 4.4 %endif %obsolete_rebuilds %name-devel PreReq: coreutils ++++++ kernel-source.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -32,7 +32,7 @@ Group: Development/Sources Version: 4.4.0 %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif ++++++ kernel-syms.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -27,7 +27,7 @@ Version: 4.4.0 %if %using_buildservice %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif ++++++ kernel-vanilla.spec ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:33.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:33.000000000 +0100 @@ -59,7 +59,7 @@ Group: System/Kernel Version: 4.4.0 %if 0%{?is_kotd} -Release: <RELEASE>.g83948c1 +Release: <RELEASE>.gb56b151 %else Release: 0 %endif @@ -70,6 +70,7 @@ %if 0%{?suse_version} > 1310 BuildRequires: hmaccalc %endif +BuildRequires: libopenssl-devel BuildRequires: modutils # Used to sign the kernel in the buildservice BuildRequires: openssl @@ -641,6 +642,10 @@ *) base_package=0 ;; esac for script in preun postun pre post devel-pre devel-post; do + if test %build_flavor = "zfcpdump"; then + : >%my_builddir/$script$sub.sh + continue + fi sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:%build_flavor:g" \ @@ -886,7 +891,7 @@ -o -name '*.ko' -prune -o -type f -printf '/%%p\n' cat %my_builddir/base-modules fi - if test %CONFIG_MODULE_SIG = "y"; then + if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then find etc/uefi/certs -type f -printf '/%%p\n' fi test -d lib/firmware/%kernelrelease-%build_flavor && \ ++++++ _constraints ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:34.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:34.000000000 +0100 @@ -1,9 +1,35 @@ <constraints> - <hardware> - <disk> - <size unit="G">7</size> - </disk> - </hardware> + <!-- Require 20GB everywhere except for s390x --> + <overwrite> + <conditions> +<package>kernel-debug</package> +<package>kernel-default</package> +<package>kernel-lpae</package> +<package>kernel-pae</package> +<package>kernel-vanilla</package> + </conditions> + <hardware> + <disk> + <size unit="G">20</size> + </disk> + </hardware> + </overwrite> + + <overwrite> + <conditions> + <arch>s390x</arch> +<package>kernel-debug</package> +<package>kernel-default</package> +<package>kernel-lpae</package> +<package>kernel-pae</package> +<package>kernel-vanilla</package> + </conditions> + <hardware> + <disk> + <size unit="G">10</size> + </disk> + </hardware> + </overwrite> <overwrite> <conditions> @@ -17,9 +43,6 @@ </conditions> <hardware> <processors>8</processors> - <disk> - <size unit="G">14</size> - </disk> </hardware> </overwrite> @@ -36,9 +59,6 @@ </conditions> <hardware> <processors>4</processors> - <disk> - <size unit="G">14</size> - </disk> </hardware> </overwrite> ++++++ config.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/debug new/config/i386/debug --- old/config/i386/debug 2016-01-11 15:43:45.000000000 +0100 +++ new/config/i386/debug 2016-01-20 10:06:50.000000000 +0100 @@ -3908,9 +3908,9 @@ # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m -# CONFIG_PINCTRL_BROXTON is not set +CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/default new/config/i386/default --- old/config/i386/default 2016-01-11 15:43:45.000000000 +0100 +++ new/config/i386/default 2016-01-20 10:06:50.000000000 +0100 @@ -3910,9 +3910,9 @@ CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_SINGLE is not set # CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m -# CONFIG_PINCTRL_BROXTON is not set +CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/pae new/config/i386/pae --- old/config/i386/pae 2016-01-11 15:43:45.000000000 +0100 +++ new/config/i386/pae 2016-01-20 10:06:50.000000000 +0100 @@ -3819,9 +3819,9 @@ # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m -# CONFIG_PINCTRL_BROXTON is not set +CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/i386/vanilla new/config/i386/vanilla --- old/config/i386/vanilla 2016-01-11 15:43:45.000000000 +0100 +++ new/config/i386/vanilla 2016-01-20 10:06:50.000000000 +0100 @@ -3815,9 +3815,9 @@ # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m -# CONFIG_PINCTRL_BROXTON is not set +CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/debug new/config/x86_64/debug --- old/config/x86_64/debug 2016-01-11 15:43:45.000000000 +0100 +++ new/config/x86_64/debug 2016-01-20 10:06:50.000000000 +0100 @@ -3803,9 +3803,9 @@ # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m -# CONFIG_PINCTRL_BROXTON is not set +CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=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 2016-01-11 15:43:45.000000000 +0100 +++ new/config/x86_64/default 2016-01-20 10:06:50.000000000 +0100 @@ -3788,9 +3788,9 @@ # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m -# CONFIG_PINCTRL_BROXTON is not set +CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/x86_64/vanilla new/config/x86_64/vanilla --- old/config/x86_64/vanilla 2016-01-11 15:43:45.000000000 +0100 +++ new/config/x86_64/vanilla 2016-01-20 10:06:50.000000000 +0100 @@ -3784,9 +3784,9 @@ # CONFIG_DEBUG_PINCTRL is not set CONFIG_PINCTRL_AMD=y # CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_CHERRYVIEW=m CONFIG_PINCTRL_INTEL=m -# CONFIG_PINCTRL_BROXTON is not set +CONFIG_PINCTRL_BROXTON=m CONFIG_PINCTRL_SUNRISEPOINT=m CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y CONFIG_GPIOLIB=y ++++++ constraints.in ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:34.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:34.000000000 +0100 @@ -1,9 +1,27 @@ <constraints> - <hardware> - <disk> - <size unit="G">7</size> - </disk> - </hardware> + <!-- Require 20GB everywhere except for s390x --> + <overwrite> + <conditions> +@BINARY_PACKAGES_XML@ + </conditions> + <hardware> + <disk> + <size unit="G">20</size> + </disk> + </hardware> + </overwrite> + + <overwrite> + <conditions> + <arch>s390x</arch> +@BINARY_PACKAGES_XML@ + </conditions> + <hardware> + <disk> + <size unit="G">10</size> + </disk> + </hardware> + </overwrite> <overwrite> <conditions> @@ -13,9 +31,6 @@ </conditions> <hardware> <processors>8</processors> - <disk> - <size unit="G">14</size> - </disk> </hardware> </overwrite> @@ -28,9 +43,6 @@ </conditions> <hardware> <processors>4</processors> - <disk> - <size unit="G">14</size> - </disk> </hardware> </overwrite> ++++++ kernel-binary.spec.in ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:34.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:34.000000000 +0100 @@ -70,6 +70,7 @@ %if 0%{?suse_version} > 1310 BuildRequires: hmaccalc %endif +BuildRequires: libopenssl-devel BuildRequires: modutils # Used to sign the kernel in the buildservice BuildRequires: openssl @@ -517,6 +518,10 @@ *) base_package=0 ;; esac for script in preun postun pre post devel-pre devel-post; do + if test %build_flavor = "zfcpdump"; then + : >%my_builddir/$script$sub.sh + continue + fi sed -e "s:@KERNELRELEASE@:%kernelrelease:g" \ -e "s:@IMAGE@:$image:g" \ -e "s:@FLAVOR""@:%build_flavor:g" \ @@ -762,7 +767,7 @@ -o -name '*.ko' -prune -o -type f -printf '/%%p\n' cat %my_builddir/base-modules fi - if test %CONFIG_MODULE_SIG = "y"; then + if test %CONFIG_MODULE_SIG = "y" -a -d etc/uefi/certs; then find etc/uefi/certs -type f -printf '/%%p\n' fi test -d lib/firmware/%kernelrelease-%build_flavor && \ ++++++ old-flavors ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:35.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:35.000000000 +0100 @@ -39,7 +39,7 @@ i386/pae desktop 4.3 x86_64/default desktop 4.3 -i386/pae xen 4.3 -i386/pae ec2 4.3 -x86_64/default xen 4.3 -x86_64/default ec2 4.3 +i386/pae xen 4.4 +i386/pae ec2 4.4 +x86_64/default xen 4.4 +x86_64/default ec2 4.4 ++++++ patches.arch.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-gpex-0001-device-core-Introduce-per-device-MSI-domain-pointer.patch new/patches.arch/arm64-gpex-0001-device-core-Introduce-per-device-MSI-domain-pointer.patch --- old/patches.arch/arm64-gpex-0001-device-core-Introduce-per-device-MSI-domain-pointer.patch 2015-12-01 17:53:47.000000000 +0100 +++ new/patches.arch/arm64-gpex-0001-device-core-Introduce-per-device-MSI-domain-pointer.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,67 +0,0 @@ -From 545bdfdf51d8f2fd479af8a41dd2d2484537e8e2 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier <[email protected]> -Date: Mon, 23 Mar 2015 16:24:35 -0500 -Subject: [PATCH 1/9] device core: Introduce per-device MSI domain pointer -Patch-mainline: No, modeling in flux upstream, will keep patches updated -References: bnc#911732 - -As MSI-type features are creeping into non-PCI devices, it is -starting to make sense to give our struct device some form of -support for this, by allowing a pointer to an MSI irq domain to -be set/retrieved. - -Signed-off-by: Marc Zyngier <[email protected]> -Signed-off-by: Suravee Suthikulpanit <[email protected]> -Signed-off-by: Alexander Graf <[email protected]> ---- - include/linux/device.h | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - -diff --git a/include/linux/device.h b/include/linux/device.h -index 99f2331..652cbcb 100644 ---- a/include/linux/device.h -+++ b/include/linux/device.h -@@ -690,6 +690,7 @@ struct acpi_dev_node { - * along with subsystem-level and driver-level callbacks. - * @pins: For device pin management. - * See Documentation/pinctrl.txt for details. -+ * @msi_domain: The generic MSI domain this device is using. - * @numa_node: NUMA node this device is close to. - * @dma_mask: Dma mask (if dma'ble device). - * @coherent_dma_mask: Like dma_mask, but for alloc_coherent mapping as not all -@@ -750,6 +751,9 @@ struct device { - struct dev_pm_info power; - struct dev_pm_domain *pm_domain; - -+#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN -+ struct irq_domain *msi_domain; /* MSI domain device uses */ -+#endif - #ifdef CONFIG_PINCTRL - struct dev_pin_info *pins; - #endif -@@ -837,6 +841,22 @@ static inline void set_dev_node(struct device *dev, int node) - } - #endif - -+static inline struct irq_domain *dev_get_msi_domain(const struct device *dev) -+{ -+#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN -+ return dev->msi_domain; -+#else -+ return NULL; -+#endif -+} -+ -+static inline void dev_set_msi_domain(struct device *dev, struct irq_domain *d) -+{ -+#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN -+ dev->msi_domain = d; -+#endif -+} -+ - static inline void *dev_get_drvdata(const struct device *dev) - { - return dev->driver_data; --- -1.7.12.4 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-gpex-0002-PCI-MSI-add-hooks-to-populate-the-msi_domain-field.patch new/patches.arch/arm64-gpex-0002-PCI-MSI-add-hooks-to-populate-the-msi_domain-field.patch --- old/patches.arch/arm64-gpex-0002-PCI-MSI-add-hooks-to-populate-the-msi_domain-field.patch 2015-12-01 17:53:47.000000000 +0100 +++ new/patches.arch/arm64-gpex-0002-PCI-MSI-add-hooks-to-populate-the-msi_domain-field.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,105 +0,0 @@ -From f00f378aa89f289f3f5acfb6b517a8c96b55e863 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier <[email protected]> -Date: Mon, 23 Mar 2015 16:24:36 -0500 -Subject: [PATCH 2/9] PCI/MSI: add hooks to populate the msi_domain field -Patch-mainline: No, modeling in flux upstream, will keep patches updated -References: bnc#911732 - -In order to be able to populate the device msi_domain field, -add the necesary hooks to propagate the PHB msi_domain across -secondary busses to devices. - -So far, nobody populates the initial msi_domain. - -Signed-off-by: Marc Zyngier <[email protected]> -Signed-off-by: Suravee Suthikulpanit <[email protected]> -Signed-off-by: Alexander Graf <[email protected]> ---- - drivers/pci/probe.c | 30 ++++++++++++++++++++++++++++++ - include/linux/pci.h | 1 + - 2 files changed, 31 insertions(+) - -diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c -index 9846190..2ad8532d 100644 ---- a/drivers/pci/probe.c -+++ b/drivers/pci/probe.c -@@ -660,6 +660,20 @@ static void pci_set_bus_speed(struct pci_bus *bus) - } - } - -+void __weak pcibios_set_phb_msi_domain(struct pci_bus *bus) -+{ -+} -+ -+static void pci_set_bus_msi_domain(struct pci_bus *bus) -+{ -+ struct pci_dev *bridge = bus->self; -+ -+ if (!bridge) -+ pcibios_set_phb_msi_domain(bus); -+ else -+ dev_set_msi_domain(&bus->dev, dev_get_msi_domain(&bridge->dev)); -+} -+ - static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent, - struct pci_dev *bridge, int busnr) - { -@@ -713,6 +727,7 @@ static struct pci_bus *pci_alloc_child_bus(struct pci_bus *parent, - bridge->subordinate = child; - - add_dev: -+ pci_set_bus_msi_domain(child); - ret = device_register(&child->dev); - WARN_ON(ret < 0); - -@@ -1512,6 +1527,17 @@ static void pci_init_capabilities(struct pci_dev *dev) - pci_enable_acs(dev); - } - -+static void pci_set_msi_domain(struct pci_dev *dev) -+{ -+ /* -+ * If no domain has been set through the pcibios callback, -+ * inherit the default from the bus device. -+ */ -+ if (!dev_get_msi_domain(&dev->dev)) -+ dev_set_msi_domain(&dev->dev, -+ dev_get_msi_domain(&dev->bus->dev)); -+} -+ - void pci_device_add(struct pci_dev *dev, struct pci_bus *bus) - { - int ret; -@@ -1552,6 +1578,9 @@ void pci_device_add(struct pci_dev *dev, struct pci_bus *bus) - ret = pcibios_add_device(dev); - WARN_ON(ret < 0); - -+ /* Setup MSI irq domain */ -+ pci_set_msi_domain(dev); -+ - /* Notifier could use PCI capabilities */ - dev->match_driver = false; - ret = device_add(&dev->dev); -@@ -1949,6 +1978,7 @@ struct pci_bus *pci_create_root_bus(struct device *parent, int bus, - b->bridge = get_device(&bridge->dev); - device_enable_async_suspend(b->bridge); - pci_set_bus_of_node(b); -+ pci_set_bus_msi_domain(b); - - if (!parent) - set_dev_node(b->bridge, pcibus_to_node(b)); -diff --git a/include/linux/pci.h b/include/linux/pci.h -index 42cfe21..97aab9f 100644 ---- a/include/linux/pci.h -+++ b/include/linux/pci.h -@@ -1660,6 +1660,7 @@ int pcibios_set_pcie_reset_state(struct pci_dev *dev, - int pcibios_add_device(struct pci_dev *dev); - void pcibios_release_device(struct pci_dev *dev); - void pcibios_penalize_isa_irq(int irq, int active); -+void pcibios_set_phb_msi_domain(struct pci_bus *bus); - - #ifdef CONFIG_HIBERNATE_CALLBACKS - extern struct dev_pm_ops pcibios_pm_ops; --- -1.7.12.4 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-gpex-0003-PCI-MSI-of-add-support-for-OF-provided-msi_domain.patch new/patches.arch/arm64-gpex-0003-PCI-MSI-of-add-support-for-OF-provided-msi_domain.patch --- old/patches.arch/arm64-gpex-0003-PCI-MSI-of-add-support-for-OF-provided-msi_domain.patch 2015-12-01 17:53:47.000000000 +0100 +++ new/patches.arch/arm64-gpex-0003-PCI-MSI-of-add-support-for-OF-provided-msi_domain.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,87 +0,0 @@ -From e42dc234f53495110ef4a534dc8a03a9993786c7 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier <[email protected]> -Date: Mon, 23 Mar 2015 16:24:37 -0500 -Subject: [PATCH 3/9] PCI/MSI: of: add support for OF-provided msi_domain -Patch-mainline: No, modeling in flux upstream, will keep patches updated -References: bnc#911732 - -In order to populate the PHB msi_domain, use the "msi-parent" -attribute to lookup a corresponding irq domain. If found, -this is our MSI domain. - -This gets plugged into the core PCI code. - -Signed-off-by: Marc Zyngier <[email protected]> -Signed-off-by: Suravee Suthikulpanit <[email protected]> -Signed-off-by: Alexander Graf <[email protected]> ---- - drivers/pci/of.c | 15 +++++++++++++++ - drivers/pci/probe.c | 1 + - include/linux/pci.h | 2 ++ - 3 files changed, 18 insertions(+) - -diff --git a/drivers/pci/of.c b/drivers/pci/of.c -index f092993..d8d1274 100644 ---- a/drivers/pci/of.c -+++ b/drivers/pci/of.c -@@ -9,6 +9,7 @@ - * 2 of the License, or (at your option) any later version. - */ - -+#include <linux/irqdomain.h> - #include <linux/kernel.h> - #include <linux/pci.h> - #include <linux/of.h> -@@ -59,3 +60,17 @@ struct device_node * __weak pcibios_get_phb_of_node(struct pci_bus *bus) - return of_node_get(bus->bridge->parent->of_node); - return NULL; - } -+ -+void pci_set_phb_of_msi_domain(struct pci_bus *bus) -+{ -+#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN -+ struct device_node *np; -+ -+ if (!bus->dev.of_node) -+ return; -+ np = of_parse_phandle(bus->dev.of_node, "msi-parent", 0); -+ if (!np) -+ return; -+ dev_set_msi_domain(&bus->dev, irq_find_host(np)); -+#endif -+} -diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c -index 2ad8532d..516b744 100644 ---- a/drivers/pci/probe.c -+++ b/drivers/pci/probe.c -@@ -662,6 +662,7 @@ static void pci_set_bus_speed(struct pci_bus *bus) - - void __weak pcibios_set_phb_msi_domain(struct pci_bus *bus) - { -+ pci_set_phb_of_msi_domain(bus); - } - - static void pci_set_bus_msi_domain(struct pci_bus *bus) -diff --git a/include/linux/pci.h b/include/linux/pci.h -index 97aab9f..53b681a 100644 ---- a/include/linux/pci.h -+++ b/include/linux/pci.h -@@ -1848,6 +1848,7 @@ void pci_set_of_node(struct pci_dev *dev); - void pci_release_of_node(struct pci_dev *dev); - void pci_set_bus_of_node(struct pci_bus *bus); - void pci_release_bus_of_node(struct pci_bus *bus); -+void pci_set_phb_of_msi_domain(struct pci_bus *bus); - - /* Arch may override this (weak) */ - struct device_node *pcibios_get_phb_of_node(struct pci_bus *bus); -@@ -1870,6 +1871,7 @@ static inline void pci_set_bus_of_node(struct pci_bus *bus) { } - static inline void pci_release_bus_of_node(struct pci_bus *bus) { } - static inline struct device_node * - pci_device_to_OF_node(const struct pci_dev *pdev) { return NULL; } -+static inline void pci_set_phb_of_msi_domain(struct pci_bus *bus) {} - #endif /* CONFIG_OF */ - - #ifdef CONFIG_EEH --- -1.7.12.4 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-gpex-0004-PCI-MSI-Let-pci_msi_get_domain-use-struct-device-s-m.patch new/patches.arch/arm64-gpex-0004-PCI-MSI-Let-pci_msi_get_domain-use-struct-device-s-m.patch --- old/patches.arch/arm64-gpex-0004-PCI-MSI-Let-pci_msi_get_domain-use-struct-device-s-m.patch 2015-12-01 17:53:47.000000000 +0100 +++ new/patches.arch/arm64-gpex-0004-PCI-MSI-Let-pci_msi_get_domain-use-struct-device-s-m.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,37 +0,0 @@ -From 664e59ea452088dba2c89e6d71dfd3d59cb81d69 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier <[email protected]> -Date: Mon, 23 Mar 2015 16:24:38 -0500 -Subject: [PATCH 4/9] PCI/MSI: Let pci_msi_get_domain use struct device's - msi_domain -Patch-mainline: No, modeling in flux upstream, will keep patches updated -References: bnc#911732 - -Now that we can easily find which MSI domain a PCI device is -using, use dev_get_msi_domain as a way to retrieve the information. - -The original code is still used as a fallback. - -Signed-off-by: Marc Zyngier <[email protected]> -Signed-off-by: Suravee Suthikulpanit <[email protected]> -Signed-off-by: Alexander Graf <[email protected]> ---- - drivers/pci/msi.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c -index c3e7dfc..b3e6de9 100644 ---- a/drivers/pci/msi.c -+++ b/drivers/pci/msi.c -@@ -41,7 +41,8 @@ static struct irq_domain *pci_msi_get_domain(struct pci_dev *dev) - { - struct irq_domain *domain = NULL; - -- if (dev->bus->msi) -+ domain = dev_get_msi_domain(&dev->dev); -+ if (!domain && dev->bus->msi) - domain = dev->bus->msi->domain; - if (!domain) - domain = arch_get_pci_msi_domain(dev); --- -1.7.12.4 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-gpex-0005-irqchip-GICv2m-Get-rid-of-struct-msi_controller.patch new/patches.arch/arm64-gpex-0005-irqchip-GICv2m-Get-rid-of-struct-msi_controller.patch --- old/patches.arch/arm64-gpex-0005-irqchip-GICv2m-Get-rid-of-struct-msi_controller.patch 2015-12-01 17:53:47.000000000 +0100 +++ new/patches.arch/arm64-gpex-0005-irqchip-GICv2m-Get-rid-of-struct-msi_controller.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,96 +0,0 @@ -From e1cf1a850253f0c1d351c856509124a1a29985f9 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier <[email protected]> -Date: Mon, 23 Mar 2015 16:24:39 -0500 -Subject: [PATCH 5/9] irqchip: GICv2m: Get rid of struct msi_controller -Patch-mainline: No, modeling in flux upstream, will keep patches updated -References: bnc#911732 - -GICv2m only uses the msi_controller structure as a way to match -the PHB with its MSI HW, and thus the msi_domain. But now that -we can directly associate an msi_domain with a device, there is -no use keeping this msi_controller around. - -Just remove all traces of msi_controller from the driver. - -Signed-off-by: Marc Zyngier <[email protected]> -Signed-off-by: Suravee Suthikulpanit <[email protected]> -Signed-off-by: Alexander Graf <[email protected]> ---- - drivers/irqchip/irq-gic-v2m.c | 26 +++++++++----------------- - 1 file changed, 9 insertions(+), 17 deletions(-) - -diff --git a/drivers/irqchip/irq-gic-v2m.c b/drivers/irqchip/irq-gic-v2m.c -index fdf7065..a76b802 100644 ---- a/drivers/irqchip/irq-gic-v2m.c -+++ b/drivers/irqchip/irq-gic-v2m.c -@@ -45,7 +45,6 @@ - - struct v2m_data { - spinlock_t msi_cnt_lock; -- struct msi_controller mchip; - struct resource res; /* GICv2m resource */ - void __iomem *base; /* GICv2m virt address */ - u32 spi_start; /* The SPI number that MSIs start */ -@@ -218,6 +217,7 @@ static int __init gicv2m_init_one(struct device_node *node, - { - int ret; - struct v2m_data *v2m; -+ struct irq_domain *inner_domain; - - v2m = kzalloc(sizeof(struct v2m_data), GFP_KERNEL); - if (!v2m) { -@@ -261,19 +261,17 @@ static int __init gicv2m_init_one(struct device_node *node, - goto err_iounmap; - } - -- v2m->domain = irq_domain_add_tree(NULL, &gicv2m_domain_ops, v2m); -- if (!v2m->domain) { -+ inner_domain = irq_domain_add_tree(NULL, &gicv2m_domain_ops, v2m); -+ if (!inner_domain) { - pr_err("Failed to create GICv2m domain\n"); - ret = -ENOMEM; - goto err_free_bm; - } - -- v2m->domain->parent = parent; -- v2m->mchip.of_node = node; -- v2m->mchip.domain = pci_msi_create_irq_domain(node, -- &gicv2m_msi_domain_info, -- v2m->domain); -- if (!v2m->mchip.domain) { -+ inner_domain->parent = parent; -+ v2m->domain = pci_msi_create_irq_domain(node, &gicv2m_msi_domain_info, -+ inner_domain); -+ if (!v2m->domain) { - pr_err("Failed to create MSI domain\n"); - ret = -ENOMEM; - goto err_free_domains; -@@ -281,12 +279,6 @@ static int __init gicv2m_init_one(struct device_node *node, - - spin_lock_init(&v2m->msi_cnt_lock); - -- ret = of_pci_msi_chip_add(&v2m->mchip); -- if (ret) { -- pr_err("Failed to add msi_chip.\n"); -- goto err_free_domains; -- } -- - pr_info("Node %s: range[%#lx:%#lx], SPI[%d:%d]\n", node->name, - (unsigned long)v2m->res.start, (unsigned long)v2m->res.end, - v2m->spi_start, (v2m->spi_start + v2m->nr_spis)); -@@ -294,10 +286,10 @@ static int __init gicv2m_init_one(struct device_node *node, - return 0; - - err_free_domains: -- if (v2m->mchip.domain) -- irq_domain_remove(v2m->mchip.domain); - if (v2m->domain) - irq_domain_remove(v2m->domain); -+ if (inner_domain) -+ irq_domain_remove(inner_domain); - err_free_bm: - kfree(v2m->bm); - err_iounmap: --- -1.7.12.4 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-gpex-0006-irqchip-gicv3-its-Get-rid-of-struct-msi_controller.patch new/patches.arch/arm64-gpex-0006-irqchip-gicv3-its-Get-rid-of-struct-msi_controller.patch --- old/patches.arch/arm64-gpex-0006-irqchip-gicv3-its-Get-rid-of-struct-msi_controller.patch 2015-12-01 17:53:47.000000000 +0100 +++ new/patches.arch/arm64-gpex-0006-irqchip-gicv3-its-Get-rid-of-struct-msi_controller.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,126 +0,0 @@ -From 40bfc2c3ccdaf7eb593f938634f7a3383f4b18d4 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier <[email protected]> -Date: Mon, 23 Mar 2015 16:24:40 -0500 -Subject: [PATCH 6/9] irqchip: gicv3-its: Get rid of struct msi_controller -Patch-mainline: No, modeling in flux upstream, will keep patches updated -References: bnc#911732 - -The GICv3 ITS only uses the msi_controller structure as a way -to match the PHB with its MSI HW, and thus the msi_domain. -But now that we can directly associate an msi_domain with a device, -there is no use keeping this msi_controller around. - -Just remove all traces of msi_controller from the driver. - -Signed-off-by: Marc Zyngier <[email protected]> -Signed-off-by: Suravee Suthikulpanit <[email protected]> -Signed-off-by: Alexander Graf <[email protected]> ---- - drivers/irqchip/irq-gic-v3-its.c | 35 +++++++++++++++-------------------- - 1 file changed, 15 insertions(+), 20 deletions(-) - -diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c -index 596b0a9..71c1ca4 100644 ---- a/drivers/irqchip/irq-gic-v3-its.c -+++ b/drivers/irqchip/irq-gic-v3-its.c -@@ -54,13 +54,12 @@ struct its_collection { - - /* - * The ITS structure - contains most of the infrastructure, with the -- * msi_controller, the command queue, the collections, and the list of -- * devices writing to it. -+ * top-level MSI domain, the command queue, the collections, and the -+ * list of devices writing to it. - */ - struct its_node { - raw_spinlock_t lock; - struct list_head entry; -- struct msi_controller msi_chip; - struct irq_domain *domain; - void __iomem *base; - unsigned long phys_base; -@@ -831,7 +830,7 @@ static int its_alloc_tables(struct its_node *its) - if (order >= MAX_ORDER) { - order = MAX_ORDER - 1; - pr_warn("%s: Device Table too large, reduce its page order to %u\n", -- its->msi_chip.of_node->full_name, order); -+ its->domain->of_node->full_name, order); - } - } - -@@ -898,7 +897,7 @@ retry_baser: - - if (val != tmp) { - pr_err("ITS: %s: GITS_BASER%d doesn't stick: %lx %lx\n", -- its->msi_chip.of_node->full_name, i, -+ its->domain->of_node->full_name, i, - (unsigned long) val, (unsigned long) tmp); - err = -ENXIO; - goto out_free; -@@ -1353,6 +1352,7 @@ static int its_probe(struct device_node *node, struct irq_domain *parent) - struct resource res; - struct its_node *its; - void __iomem *its_base; -+ struct irq_domain *inner_domain = NULL; - u32 val; - u64 baser, tmp; - int err; -@@ -1396,7 +1396,6 @@ static int its_probe(struct device_node *node, struct irq_domain *parent) - INIT_LIST_HEAD(&its->its_device_list); - its->base = its_base; - its->phys_base = res.start; -- its->msi_chip.of_node = node; - its->ite_size = ((readl_relaxed(its_base + GITS_TYPER) >> 4) & 0xf) + 1; - - its->cmd_base = kzalloc(ITS_CMD_QUEUE_SZ, GFP_KERNEL); -@@ -1430,26 +1429,22 @@ static int its_probe(struct device_node *node, struct irq_domain *parent) - writeq_relaxed(0, its->base + GITS_CWRITER); - writel_relaxed(GITS_CTLR_ENABLE, its->base + GITS_CTLR); - -- if (of_property_read_bool(its->msi_chip.of_node, "msi-controller")) { -- its->domain = irq_domain_add_tree(NULL, &its_domain_ops, its); -- if (!its->domain) { -+ if (of_property_read_bool(node, "msi-controller")) { -+ inner_domain = irq_domain_add_tree(NULL, &its_domain_ops, its); -+ if (!inner_domain) { - err = -ENOMEM; - goto out_free_tables; - } - -- its->domain->parent = parent; -+ inner_domain->parent = parent; - -- its->msi_chip.domain = pci_msi_create_irq_domain(node, -- &its_pci_msi_domain_info, -- its->domain); -- if (!its->msi_chip.domain) { -+ its->domain = pci_msi_create_irq_domain(node, -+ &its_pci_msi_domain_info, -+ inner_domain); -+ if (!its->domain) { - err = -ENOMEM; - goto out_free_domains; - } -- -- err = of_pci_msi_chip_add(&its->msi_chip); -- if (err) -- goto out_free_domains; - } - - spin_lock(&its_lock); -@@ -1459,10 +1454,10 @@ static int its_probe(struct device_node *node, struct irq_domain *parent) - return 0; - - out_free_domains: -- if (its->msi_chip.domain) -- irq_domain_remove(its->msi_chip.domain); - if (its->domain) - irq_domain_remove(its->domain); -+ if (inner_domain) -+ irq_domain_remove(inner_domain); - out_free_tables: - its_free_tables(its); - out_free_cmd: --- -1.7.12.4 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-gpex-0007-PCI-MSI-Drop-domain-field-from-msi_controller.patch new/patches.arch/arm64-gpex-0007-PCI-MSI-Drop-domain-field-from-msi_controller.patch --- old/patches.arch/arm64-gpex-0007-PCI-MSI-Drop-domain-field-from-msi_controller.patch 2015-12-01 17:53:47.000000000 +0100 +++ new/patches.arch/arm64-gpex-0007-PCI-MSI-Drop-domain-field-from-msi_controller.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,48 +0,0 @@ -From 7c08138a74cb287d45d0dc80577d5156388587d1 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier <[email protected]> -Date: Mon, 23 Mar 2015 16:24:41 -0500 -Subject: [PATCH 7/9] PCI/MSI: Drop domain field from msi_controller -Patch-mainline: No, modeling in flux upstream, will keep patches updated -References: bnc#911732 - -The only two users of that field are not using the msi_controller -structure anymore, so drop it altogether. - -Signed-off-by: Marc Zyngier <[email protected]> -Signed-off-by: Suravee Suthikulpanit <[email protected]> -Signed-off-by: Alexander Graf <[email protected]> ---- - drivers/pci/msi.c | 2 -- - include/linux/msi.h | 3 --- - 2 files changed, 5 deletions(-) - -diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c -index b3e6de9..1bed857 100644 ---- a/drivers/pci/msi.c -+++ b/drivers/pci/msi.c -@@ -42,8 +42,6 @@ static struct irq_domain *pci_msi_get_domain(struct pci_dev *dev) - struct irq_domain *domain = NULL; - - domain = dev_get_msi_domain(&dev->dev); -- if (!domain && dev->bus->msi) -- domain = dev->bus->msi->domain; - if (!domain) - domain = arch_get_pci_msi_domain(dev); - -diff --git a/include/linux/msi.h b/include/linux/msi.h -index 51dac07..023fb34 100644 ---- a/include/linux/msi.h -+++ b/include/linux/msi.h -@@ -110,9 +110,6 @@ struct msi_controller { - struct device *dev; - struct device_node *of_node; - struct list_head list; --#ifdef CONFIG_GENERIC_MSI_IRQ_DOMAIN -- struct irq_domain *domain; --#endif - - int (*setup_irq)(struct msi_controller *chip, struct pci_dev *dev, - struct msi_desc *desc); --- -1.7.12.4 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-gpex-0008-PCI-MSI-of-Allow-msi_domain-lookup-using-the-PHB-nod.patch new/patches.arch/arm64-gpex-0008-PCI-MSI-of-Allow-msi_domain-lookup-using-the-PHB-nod.patch --- old/patches.arch/arm64-gpex-0008-PCI-MSI-of-Allow-msi_domain-lookup-using-the-PHB-nod.patch 2015-12-01 17:53:47.000000000 +0100 +++ new/patches.arch/arm64-gpex-0008-PCI-MSI-of-Allow-msi_domain-lookup-using-the-PHB-nod.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,43 +0,0 @@ -From 6546dd9ef5d163d103cf3acb34a06b7d686fa9d3 Mon Sep 17 00:00:00 2001 -From: Marc Zyngier <[email protected]> -Date: Mon, 23 Mar 2015 16:24:42 -0500 -Subject: [PATCH 8/9] PCI/MSI: of: Allow msi_domain lookup using the PHB node -Patch-mainline: No, modeling in flux upstream, will keep patches updated -References: bnc#911732 - -A number of platforms do not need to use the msi-parent property, -as the host bridge itself provides the MSI controller. - -Allow this configuration by performing an irq domain lookup based -on the PHB node if it doesn't have a valid msi-parent property. - -Signed-off-by: Marc Zyngier <[email protected]> -Signed-off-by: Suravee Suthikulpanit <[email protected]> -Signed-off-by: Alexander Graf <[email protected]> ---- - drivers/pci/of.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/drivers/pci/of.c b/drivers/pci/of.c -index d8d1274..75bfb85 100644 ---- a/drivers/pci/of.c -+++ b/drivers/pci/of.c -@@ -68,9 +68,14 @@ void pci_set_phb_of_msi_domain(struct pci_bus *bus) - - if (!bus->dev.of_node) - return; -+ /* Start looking for a phandle to an MSI controller. */ - np = of_parse_phandle(bus->dev.of_node, "msi-parent", 0); -+ /* -+ * If we don't have an msi-parent property, look for a domain -+ * directly attached to the host bridge. -+ */ - if (!np) -- return; -+ np = bus->dev.of_node; - dev_set_msi_domain(&bus->dev, irq_find_host(np)); - #endif - } --- -1.7.12.4 - ++++++ patches.drivers.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/ALSA-hda-Flush-the-pending-probe-work-at-remove new/patches.drivers/ALSA-hda-Flush-the-pending-probe-work-at-remove --- old/patches.drivers/ALSA-hda-Flush-the-pending-probe-work-at-remove 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.drivers/ALSA-hda-Flush-the-pending-probe-work-at-remove 2016-01-20 17:43:09.000000000 +0100 @@ -0,0 +1,46 @@ +From 991f86d7ae4e1f8c15806e62f97af519e3cdd860 Mon Sep 17 00:00:00 2001 +From: Takashi Iwai <[email protected]> +Date: Wed, 20 Jan 2016 17:19:02 +0100 +Subject: [PATCH] ALSA: hda - Flush the pending probe work at remove +Patch-mainline: Queued in subsystem maintainer repository +Git-commit: 991f86d7ae4e1f8c15806e62f97af519e3cdd860 +Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git +References: boo#960710 + +As HD-audio driver does deferred probe internally via workqueue, the +driver might go into the mixed state doing both probe and remove when +the module gets unloaded during the probe work. This eventually +triggers an Oops, unsurprisingly. + +For avoiding this race, we just need to flush the pending probe work +explicitly before actually starting the resource release. + +Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=960710 +Cc: <[email protected]> # v3.17+ +Signed-off-by: Takashi Iwai <[email protected]> + +--- + sound/pci/hda/hda_intel.c | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +--- a/sound/pci/hda/hda_intel.c ++++ b/sound/pci/hda/hda_intel.c +@@ -2126,9 +2126,17 @@ i915_power_fail: + static void azx_remove(struct pci_dev *pci) + { + struct snd_card *card = pci_get_drvdata(pci); ++ struct azx *chip; ++ struct hda_intel *hda; ++ ++ if (card) { ++ /* flush the pending probing work */ ++ chip = card->private_data; ++ hda = container_of(chip, struct hda_intel, chip); ++ flush_work(&hda->probe_work); + +- if (card) + snd_card_free(card); ++ } + } + + static void azx_shutdown(struct pci_dev *pci) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/drm-i915-shut-up-gen8-SDE-irq-dmesg-noise new/patches.drivers/drm-i915-shut-up-gen8-SDE-irq-dmesg-noise --- old/patches.drivers/drm-i915-shut-up-gen8-SDE-irq-dmesg-noise 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.drivers/drm-i915-shut-up-gen8-SDE-irq-dmesg-noise 2016-01-20 17:43:09.000000000 +0100 @@ -0,0 +1,72 @@ +From 97e5ed1111dcc5300a0f59a55248cd243937a8ab Mon Sep 17 00:00:00 2001 +From: Daniel Vetter <[email protected]> +Date: Fri, 23 Oct 2015 10:56:12 +0200 +Subject: [PATCH] drm/i915: shut up gen8+ SDE irq dmesg noise +Git-commit: 97e5ed1111dcc5300a0f59a55248cd243937a8ab +Git-repo: git://anongit.freedesktop.org/drm-intel +Patch-mainline: Queued in subsystem maintainer repository +References: boo#961887 + +We get tons of cases where the master interrupt handler apparently set +a bit, with the SDEIIR disagreeing. No idea what's going on there, but +it's consistent on gen8+, no one seems to care about it and it's +making CI results flaky. + +Shut it up. + +No idea what's going on here, but we've had fun with PCH interrupts +Before: + +commit 44498aea293b37af1d463acd9658cdce1ecdf427 +Author: Paulo Zanoni <[email protected]> +Date: Fri Feb 22 17:05:28 2013 -0300 + + drm/i915: also disable south interrupts when handling them + +Note that there's a regression report in Bugzilla, and other +regression reports on the mailing lists keep croping up. But no ill +effects have ever been reported. But for paranoia still keep the +message at a debug level as a breadcrumb, just in case. + +This message was introduced in + +commit 38cc46d73ed99dd7002f1406002e52d7975d16cc +Author: Oscar Mateo <[email protected]> +Date: Mon Jun 16 16:10:59 2014 +0100 + + drm/i915/bdw: Ack interrupts before handling them (GEN8) + +V2: Improve commit message a bit. + +Cc: Paulo Zanoni <[email protected]> +Signed-off-by: Daniel Vetter <[email protected]> +Link: http://patchwork.freedesktop.org/patch/msgid/[email protected] +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=92084 +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80896 +Acked-by: Mika Kuoppala <[email protected]> +Signed-off-by: Daniel Vetter <[email protected]> +Acked-by: Takashi Iwai <[email protected]> + +--- + drivers/gpu/drm/i915/i915_irq.c | 10 +++++++--- + 1 file changed, 7 insertions(+), 3 deletions(-) + +--- a/drivers/gpu/drm/i915/i915_irq.c ++++ b/drivers/gpu/drm/i915/i915_irq.c +@@ -2354,9 +2354,13 @@ static irqreturn_t gen8_irq_handler(int + spt_irq_handler(dev, pch_iir); + else + cpt_irq_handler(dev, pch_iir); +- } else +- DRM_ERROR("The master control interrupt lied (SDE)!\n"); +- ++ } else { ++ /* ++ * Like on previous PCH there seems to be something ++ * fishy going on with forwarding PCH interrupts. ++ */ ++ DRM_DEBUG_DRIVER("The master control interrupt lied (SDE)!\n"); ++ } + } + + I915_WRITE_FW(GEN8_MASTER_IRQ, GEN8_MASTER_IRQ_CONTROL); ++++++ patches.fixes.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0001-NFSv4-do-not-accept-an-incompatible-delegation.patch new/patches.fixes/0001-NFSv4-do-not-accept-an-incompatible-delegation.patch --- old/patches.fixes/0001-NFSv4-do-not-accept-an-incompatible-delegation.patch 2015-12-07 17:12:41.000000000 +0100 +++ new/patches.fixes/0001-NFSv4-do-not-accept-an-incompatible-delegation.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,56 +0,0 @@ -From: Neil Brown <[email protected]> -Date: Mon, 22 Jun 2015 15:13:21 +1000 -Subject: [PATCH] NFSv4 - do not accept an incompatible delegation. -References: bsc#934202 -Patch-mainline: not yet - -When opening a file, nfs _nfs4_do_open() will return any -incompatible delegation, meaning if the delegation held for -that file does not give all the permissions required, it is -returned. -This is because various places assume that the current delegation -provides all necessary access. - -However when a delegation is received, it is not validated in the -same way so it is possible to, for example, hold a read-only -delegation while the file is open write-only. -When that delegation is recalled, the NFS client will try to -reclaim the write-only open, and that will fail. - -So when considering a new delegation, reject it if it is incompatible -with any open. - -Signed-off-by: NeilBrown <[email protected]> -URL: https://bugzilla.suse.com/show_bug.cgi?id=934202 ---- - fs/nfs/delegation.c | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - ---- a/fs/nfs/delegation.c -+++ b/fs/nfs/delegation.c -@@ -377,6 +377,25 @@ int nfs_inode_set_delegation(struct inod - old_delegation, clp); - if (freeme == NULL) - goto out; -+ } else { -+ /* Don't accept an incompatible delegation */ -+ int incompatible = 0; -+ struct nfs_inode *nfsi = NFS_I(inode); -+ struct nfs4_state *state; -+ -+ spin_lock(&inode->i_lock); -+ list_for_each_entry(state, &nfsi->open_states, inode_states) { -+ if ((state->state & delegation->type) != state->state) { -+ incompatible = 1; -+ break; -+ } -+ } -+ spin_unlock(&inode->i_lock); -+ if (incompatible) { -+ freeme = delegation; -+ delegation = NULL; -+ goto out; -+ } - } - list_add_tail_rcu(&delegation->super_list, &server->delegations); - rcu_assign_pointer(nfsi->delegation, delegation); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/HID-multitouch-fix-input-mode-switching-on-some-Elan new/patches.fixes/HID-multitouch-fix-input-mode-switching-on-some-Elan --- old/patches.fixes/HID-multitouch-fix-input-mode-switching-on-some-Elan 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/HID-multitouch-fix-input-mode-switching-on-some-Elan 2016-01-20 18:02:28.000000000 +0100 @@ -0,0 +1,94 @@ +From 73e7d63efb4d774883a338997943bfa59e127085 Mon Sep 17 00:00:00 2001 +From: Benjamin Tissoires <[email protected]> +Date: Tue, 1 Dec 2015 12:41:38 +0100 +Subject: [PATCH] HID: multitouch: fix input mode switching on some Elan panels +Git-commit: 73e7d63efb4d774883a338997943bfa59e127085 +Patch-mainline: v4.5-rc1 +References: boo#954532 + +as reported by https://bugzilla.kernel.org/show_bug.cgi?id=108481 + +This bug reports mentions 6d4f5440 ("HID: multitouch: Fetch feature +reports on demand for Win8 devices") as the origin of the problem but this +commit actually masked 2 firmware bugs that are annihilating each other: + +The report descriptor declares two features in reports 3 and 5: + +0x05, 0x0d, // Usage Page (Digitizers) 318 +0x09, 0x0e, // Usage (Device Configuration) 320 +0xa1, 0x01, // Collection (Application) 322 +0x85, 0x03, // Report ID (3) 324 +0x09, 0x22, // Usage (Finger) 326 +0xa1, 0x00, // Collection (Physical) 328 +0x09, 0x52, // Usage (Inputmode) 330 +0x15, 0x00, // Logical Minimum (0) 332 +0x25, 0x0a, // Logical Maximum (10) 334 +0x75, 0x08, // Report Size (8) 336 +0x95, 0x02, // Report Count (2) 338 +0xb1, 0x02, // Feature (Data,Var,Abs) 340 +0xc0, // End Collection 342 +0x09, 0x22, // Usage (Finger) 343 +0xa1, 0x00, // Collection (Physical) 345 +0x85, 0x05, // Report ID (5) 347 +0x09, 0x57, // Usage (Surface Switch) 349 +0x09, 0x58, // Usage (Button Switch) 351 +0x15, 0x00, // Logical Minimum (0) 353 +0x75, 0x01, // Report Size (1) 355 +0x95, 0x02, // Report Count (2) 357 +0x25, 0x03, // Logical Maximum (3) 359 +0xb1, 0x02, // Feature (Data,Var,Abs) 361 +0x95, 0x0e, // Report Count (14) 363 +0xb1, 0x03, // Feature (Cnst,Var,Abs) 365 +0xc0, // End Collection 367 + +The report ID 3 presents 2 input mode features, while only the first one +is handled by the device. Given that we did not checked if one was +previously assigned, we were dealing with the ignored featured and we +should never have been able to switch this panel into the multitouch mode. + +However, the firmware presents an other bugs which allowed 6d4f5440 +to counteract the faulty report descriptor. When we request the values +of the feature 5, the firmware answers "03 03 00". The fields are correct +but the report id is wrong. Before 6d4f5440, we retrieved all the features +and injected them in the system. So when we called report 5, we injected +in the system the report 3 with the values "03 00". +Setting the second input mode to 03 in this report changed it to "03 03" +and the touchpad switched to the mt mode. We could have set anything +in the second field because the actual value (the first 03 in this report) +was given by the query of report ID 5. + +To sum up: 2 bugs in the firmware were hiding that we were accessing the +wrong feature. + +Signed-off-by: Benjamin Tissoires <[email protected]> +Signed-off-by: Jiri Kosina <[email protected]> +Acked-by: Takashi Iwai <[email protected]> + +--- + drivers/hid/hid-multitouch.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +--- a/drivers/hid/hid-multitouch.c ++++ b/drivers/hid/hid-multitouch.c +@@ -357,8 +357,19 @@ static void mt_feature_mapping(struct hi + break; + } + +- td->inputmode = field->report->id; +- td->inputmode_index = usage->usage_index; ++ if (td->inputmode < 0) { ++ td->inputmode = field->report->id; ++ td->inputmode_index = usage->usage_index; ++ } else { ++ /* ++ * Some elan panels wrongly declare 2 input mode ++ * features, and silently ignore when we set the ++ * value in the second field. Skip the second feature ++ * and hope for the best. ++ */ ++ dev_info(&hdev->dev, ++ "Ignoring the extra HID_DG_INPUTMODE\n"); ++ } + + break; + case HID_DG_CONTACTMAX: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch new/patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch --- old/patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch 2015-12-07 17:12:41.000000000 +0100 +++ new/patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,65 +0,0 @@ -From: Thomas Renninger <[email protected]> -Subject: CPUFREQ: ondemand: Limit default sampling rate to 300ms max. -References: bnc#464461 -Patch-Mainline: never, SLE11 only - -Modified for SP1 by Jiri Bohac <[email protected]> - -HW cpufreq drivers (e.g. all non-acpi AMD) may report too high latency values. -The default sampling rate (how often the ondemand/conservative governor -checks for frequency adjustments) may therefore be much too high, -resulting in performance loss. - -Restrict default sampling rate to 300ms. 333ms sampling rate is field -tested with userspace governors, 300ms should be a fine maximum default -value for the ondemand kernel governor for all HW out there. - -Set default up_threshold to 40 on multi core systems. -This should avoid effects where two CPU intensive threads are waiting on -each other on separate cores. On a single core machine these would all be -processed on one core resulting in higher utilization of the one core. - ---- - drivers/cpufreq/cpufreq_ondemand.c | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - ---- a/drivers/cpufreq/cpufreq_ondemand.c -+++ b/drivers/cpufreq/cpufreq_ondemand.c -@@ -35,6 +35,7 @@ - #define MICRO_FREQUENCY_MIN_SAMPLE_RATE (10000) - #define MIN_FREQUENCY_UP_THRESHOLD (11) - #define MAX_FREQUENCY_UP_THRESHOLD (100) -+#define MAX_DEFAULT_SAMPLING_RATE (300 * 1000U) - - /* - * The polling frequency of this governor depends on the capability of -@@ -736,6 +737,29 @@ static int cpufreq_governor_dbs(struct c - dbs_tuners_ins.sampling_rate = - max(min_sampling_rate, - latency * LATENCY_MULTIPLIER); -+ /* -+ * Cut def_sampling rate to 300ms if it was above, -+ * still consider to not set it above latency -+ * transition * 100 -+ */ -+ if (dbs_tuners_ins.sampling_rate > MAX_DEFAULT_SAMPLING_RATE) { -+ dbs_tuners_ins.sampling_rate = -+ max(min_sampling_rate, MAX_DEFAULT_SAMPLING_RATE); -+ printk(KERN_INFO "CPUFREQ: ondemand sampling " -+ "rate set to %d ms\n", -+ dbs_tuners_ins.sampling_rate / 1000); -+ } -+ /* -+ * Be conservative in respect to performance. -+ * If an application calculates using two threads -+ * depending on each other, they will be run on several -+ * CPU cores resulting on 50% load on both. -+ * SLED might still want to prefer 80% up_threshold -+ * by default, but we cannot differ that here. -+ */ -+ if (num_online_cpus() > 1) -+ dbs_tuners_ins.up_threshold = -+ DEF_FREQUENCY_UP_THRESHOLD / 2; - dbs_tuners_ins.io_is_busy = should_io_be_busy(); - } - mutex_unlock(&dbs_mutex); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/dm-release-map_lock-before-set_disk_ro new/patches.fixes/dm-release-map_lock-before-set_disk_ro --- old/patches.fixes/dm-release-map_lock-before-set_disk_ro 2015-12-07 17:12:41.000000000 +0100 +++ new/patches.fixes/dm-release-map_lock-before-set_disk_ro 1970-01-01 01:00:00.000000000 +0100 @@ -1,36 +0,0 @@ -From: Nikanth Karthikesan <[email protected]> -Subject: Release md->map_lock before set_disk_ro -Patch-mainline: No -References: bnc#556899 bnc#479784 - -Signed-off-by: Nikanth Karthikesan <[email protected]> - -Calling set_disk_ro() with irqs disabled triggers a warning. - -set_disk_ro() can be called outside the -write_lock_irqsave(&md->map_lock)? And to get the -dm_table_get_mode(md->map), we just need to hold a reference -with dm_get_table() and dm_table_put() - ---- - drivers/md/dm.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/md/dm.c -+++ b/drivers/md/dm.c -@@ -2106,11 +2106,14 @@ static struct dm_table *__bind(struct ma - set_bit(DMF_MERGE_IS_OPTIONAL, &md->flags); - else - clear_bit(DMF_MERGE_IS_OPTIONAL, &md->flags); -+ write_unlock_irqrestore(&md->map_lock, flags); -+ -+ dm_table_get(md->map); - if (!(dm_table_get_mode(t) & FMODE_WRITE)) - set_disk_ro(md->disk, 1); - else - set_disk_ro(md->disk, 0); -- write_unlock_irqrestore(&md->map_lock, flags); -+ dm_table_put(md->map); - - return old_map; - } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/hwrng-core-sleep-interruptible-in-read.patch new/patches.fixes/hwrng-core-sleep-interruptible-in-read.patch --- old/patches.fixes/hwrng-core-sleep-interruptible-in-read.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/hwrng-core-sleep-interruptible-in-read.patch 2016-01-20 18:02:28.000000000 +0100 @@ -0,0 +1,65 @@ +From: Jiri Slaby <[email protected]> +Date: Fri, 27 Nov 2015 16:50:43 +0100 +Subject: hwrng: core - sleep interruptible in read +Patch-mainline: v4.5-rc1 +Git-commit: 1ab87298cb59b649d8d648d25dc15b36ab865f5a +References: bnc#962597 + +hwrng kthread can be waiting via hwrng_fillfn for some data from a rng +like virtio-rng: +hwrng D ffff880093e17798 0 382 2 0x00000000 +... +Call Trace: + [<ffffffff817339c6>] wait_for_completion_killable+0x96/0x210 + [<ffffffffa00aa1b7>] virtio_read+0x57/0xf0 [virtio_rng] + [<ffffffff814f4a35>] hwrng_fillfn+0x75/0x130 + [<ffffffff810aa243>] kthread+0xf3/0x110 + +And when some user program tries to read the /dev node in this state, +we get: +rngd D ffff880093e17798 0 762 1 0x00000004 +... +Call Trace: + [<ffffffff817351ac>] mutex_lock_nested+0x15c/0x3e0 + [<ffffffff814f478e>] rng_dev_read+0x6e/0x240 + [<ffffffff81231958>] __vfs_read+0x28/0xe0 + [<ffffffff81232393>] vfs_read+0x83/0x130 + +And this is indeed unkillable. So use mutex_lock_interruptible +instead of mutex_lock in rng_dev_read and exit immediatelly when +interrupted. And possibly return already read data, if any (as POSIX +allows). + +v2: use ERESTARTSYS instead of EINTR + +Signed-off-by: Jiri Slaby <[email protected]> +Cc: Matt Mackall <[email protected]> +Cc: Herbert Xu <[email protected]> +Cc: <[email protected]> +Signed-off-by: Herbert Xu <[email protected]> +--- + drivers/char/hw_random/core.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/drivers/char/hw_random/core.c ++++ b/drivers/char/hw_random/core.c +@@ -238,7 +238,10 @@ static ssize_t rng_dev_read(struct file + goto out; + } + +- mutex_lock(&reading_mutex); ++ if (mutex_lock_interruptible(&reading_mutex)) { ++ err = -ERESTARTSYS; ++ goto out_put; ++ } + if (!data_avail) { + bytes_read = rng_get_data(rng, rng_buffer, + rng_buffer_size(), +@@ -288,6 +291,7 @@ out: + + out_unlock_reading: + mutex_unlock(&reading_mutex); ++out_put: + put_rng(rng); + goto out; + } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/keys-fix-leak.patch new/patches.fixes/keys-fix-leak.patch --- old/patches.fixes/keys-fix-leak.patch 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/keys-fix-leak.patch 2016-01-20 18:02:28.000000000 +0100 @@ -0,0 +1,78 @@ +commit 5c65d8a9989a89901b87ad13a06011a9a0e3d828 +Author: Yevgeny Pats <[email protected]> +From: Yevgeny Pats <[email protected]> +Date: Mon Jan 11 12:05:28 2016 +0000 +Subject: [PATCH] KEYS: Fix Use-after-free vulnerability in keyring facility + +Patch-mainline: Not yet, waiting merge to upstream +References: bnc#962075, CVE-2016-0728 + + KEYS: Fix keyring ref leak in join_session_keyring() + + If a thread is asked to join as a session keyring the keyring that's already + set as its session, we leak a keyring reference. + + This can be tested with the following program: + + #include <stddef.h> + #include <stdio.h> + #include <sys/types.h> + #include <keyutils.h> + + int main(int argc, const char *argv[]) + { + int i = 0; + key_serial_t serial; + + serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, + "leaked-keyring"); + if (serial < 0) { + perror("keyctl"); + return -1; + } + + if (keyctl(KEYCTL_SETPERM, serial, + KEY_POS_ALL | KEY_USR_ALL) < 0) { + perror("keyctl"); + return -1; + } + + for (i = 0; i < 100; i++) { + serial = keyctl(KEYCTL_JOIN_SESSION_KEYRING, + "leaked-keyring"); + if (serial < 0) { + perror("keyctl"); + return -1; + } + } + + return 0; + } + + If, after the program has run, there something like the following line in + /proc/keys: + + 3f3d898f I--Q--- 100 perm 3f3f0000 0 0 keyring leaked-keyring: empty + + with a usage count of 100 * the number of times the program has been run, + then the kernel is malfunctioning. If leaked-keyring has zero usages or + has been garbage collected, then the problem is fixed. + +Reported-by: Yevgeny Pats <[email protected]> +Signed-off-by: David Howells <[email protected]> +Acked-by: Lee, Chun-Yi <[email protected]> + +--- + security/keys/process_keys.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/security/keys/process_keys.c ++++ b/security/keys/process_keys.c +@@ -794,6 +794,7 @@ long join_session_keyring(const char *na + ret = PTR_ERR(keyring); + goto error2; + } else if (keyring == new->session_keyring) { ++ key_put(keyring); + ret = 0; + goto error2; + } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch new/patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch --- old/patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch 2015-12-07 17:12:41.000000000 +0100 +++ new/patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ -From: Jan Kara <[email protected]> -Subject: [PATCH] mm: Fix assertion mapping->nrpages == 0 in end_writeback() -Patch-mainline: No -References: bnc#693013 bnc#666423 - -Under heavy memory and filesystem load, users observe the assertion -mapping->nrpages == 0 in end_writeback() trigger. This can be caused -by page reclaim reclaiming the last page from a mapping in the following -race: - CPU0 CPU1 - ... - shrink_page_list() - __remove_mapping() - __delete_from_page_cache() - radix_tree_delete() - evict_inode() - truncate_inode_pages() - truncate_inode_pages_range() - pagevec_lookup() - finds nothing - end_writeback() - mapping->nrpages != 0 -> BUG - page->mapping = NULL - mapping->nrpages-- - -Fix the problem by cycling the mapping->tree_lock at the end of -truncate_inode_pages_range() to synchronize with page reclaim. - -Analyzed by Jay <[email protected]>, lost in LKML, and dug -out by Miklos Szeredi <[email protected]>. - -CC: Jay <[email protected]> -Acked-by: Miklos Szeredi <[email protected]> -Signed-off-by: Jan Kara <[email protected]> ---- - mm/truncate.c | 7 +++++++ - 1 files changed, 7 insertions(+), 0 deletions(-) - -diff --git a/mm/truncate.c b/mm/truncate.c -index a956675..ec3d292 100644 ---- a/mm/truncate.c -+++ b/mm/truncate.c -@@ -291,6 +291,13 @@ void truncate_inode_pages_range(struct address_space *mapping, - index++; - } - cleancache_invalidate_inode(mapping); -+ /* -+ * Cycle the tree_lock to make sure all __delete_from_page_cache() -+ * calls run from page reclaim have finished as well (this handles the -+ * case when page reclaim took the last page from our range). -+ */ -+ spin_lock_irq(&mapping->tree_lock); -+ spin_unlock_irq(&mapping->tree_lock); - } - EXPORT_SYMBOL(truncate_inode_pages_range); - --- -1.7.1 - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/nouveau-fix-race-with-fence-signaling new/patches.fixes/nouveau-fix-race-with-fence-signaling --- old/patches.fixes/nouveau-fix-race-with-fence-signaling 2015-12-07 17:12:41.000000000 +0100 +++ new/patches.fixes/nouveau-fix-race-with-fence-signaling 1970-01-01 01:00:00.000000000 +0100 @@ -1,58 +0,0 @@ -From: Jeff Mahoney <[email protected]> -Subject: nouveau: Fix race with fence signaling -References: bnc#844177 -Patch-mainline: Submitted to LKML and dri-devel, 22 Oct 2013 - -There exists a tight race between the call to nouveau_fence_done from -nouveau_fence_wait and the call to nouveau_fence_wait_uevent. - -nouveau_fence_done checks to see if fence->channel is NULL before calling -nouveau_fence_wait_uevent, but it's not good enough since the dereference -in nouveau_fence_wait_uevent is done outside the lock. Another thread -may have signaled the fence in that tight window and then we Oops -while dereferencing fence->channel->drm at the beginning of -nouveau_fence_wait_uevent. - -The good news is that nouveau_fence_wait_uevent only uses fence->channel -directly to grab the chan->drm pointer. If we pass that in directly as -a known good pointer, we can avoid the race. Passing the nouveau_fence_done -check in the caller ensures that the pointer is valid. - -Original bug report at: https://bugzilla.novell.com/show_bug.cgi?id=844177 - -Signed-off-by: Jeff Mahoney <[email protected]> -Cc: <[email protected]> # 3.9+ -Cc: Ben Skeggs <[email protected]> ---- - drivers/gpu/drm/nouveau/nouveau_fence.c | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - ---- a/drivers/gpu/drm/nouveau/nouveau_fence.c 2013-09-02 16:46:10.000000000 -0400 -+++ b/drivers/gpu/drm/nouveau/nouveau_fence.c 2013-10-22 15:03:11.079322230 -0400 -@@ -180,12 +180,11 @@ nouveau_fence_wait_uevent_handler(struct - } - - static int --nouveau_fence_wait_uevent(struct nouveau_fence *fence, bool intr) -- -+nouveau_fence_wait_uevent(struct nouveau_fence *fence, -+ struct nouveau_drm *drm, bool intr) - { -- struct nouveau_channel *chan = fence->channel; -- struct nouveau_fifo *pfifo = nouveau_fifo(chan->drm->device); -- struct nouveau_fence_priv *priv = chan->drm->fence; -+ struct nouveau_fifo *pfifo = nouveau_fifo(drm->device); -+ struct nouveau_fence_priv *priv = drm->fence; - struct nouveau_eventh *handler; - int ret = 0; - -@@ -241,7 +240,7 @@ nouveau_fence_wait(struct nouveau_fence - int ret = 0; - - while (priv && priv->uevent && lazy && !nouveau_fence_done(fence)) { -- ret = nouveau_fence_wait_uevent(fence, intr); -+ ret = nouveau_fence_wait_uevent(fence, chan->drm, intr); - if (ret < 0) - return ret; - } - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/scsi-ignore-errors-from-scsi_dh_add_device new/patches.fixes/scsi-ignore-errors-from-scsi_dh_add_device --- old/patches.fixes/scsi-ignore-errors-from-scsi_dh_add_device 1970-01-01 01:00:00.000000000 +0100 +++ new/patches.fixes/scsi-ignore-errors-from-scsi_dh_add_device 2016-01-20 18:02:28.000000000 +0100 @@ -0,0 +1,41 @@ +From 221255aee67ec1c752001080aafec0c4e9390d95 Mon Sep 17 00:00:00 2001 +From: Hannes Reinecke <[email protected]> +Date: Tue, 1 Dec 2015 10:16:42 +0100 +Subject: [PATCH] scsi: ignore errors from scsi_dh_add_device() +Git-commit: 221255aee67ec1c752001080aafec0c4e9390d95 +Patch-mainline: 4.5-rc1 +References: boo#962813 + +device handler initialisation might fail due to a number of +reasons. But as device_handlers are optional this shouldn't +cause us to disable the device entirely. +So just ignore errors from scsi_dh_add_device(). + +Reviewed-by: Johannes Thumshirn <[email protected]> +Reviewed-by: Christoph Hellwig <[email protected]> +Signed-off-by: Hannes Reinecke <[email protected]> +Signed-off-by: Martin K. Petersen <[email protected]> +Acked-by: Takashi Iwai <[email protected]> + +--- + drivers/scsi/scsi_sysfs.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +--- a/drivers/scsi/scsi_sysfs.c ++++ b/drivers/scsi/scsi_sysfs.c +@@ -1058,11 +1058,12 @@ int scsi_sysfs_add_sdev(struct scsi_devi + } + + error = scsi_dh_add_device(sdev); +- if (error) { ++ if (error) ++ /* ++ * device_handler is optional, so any error can be ignored ++ */ + sdev_printk(KERN_INFO, sdev, + "failed to add device handler: %d\n", error); +- return error; +- } + + device_enable_async_suspend(&sdev->sdev_dev); + error = device_add(&sdev->sdev_dev); ++++++ patches.suse.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/readahead-request-tunables.patch new/patches.suse/readahead-request-tunables.patch --- old/patches.suse/readahead-request-tunables.patch 2016-01-11 15:37:46.000000000 +0100 +++ new/patches.suse/readahead-request-tunables.patch 2016-01-20 17:18:13.000000000 +0100 @@ -1,36 +1,238 @@ +From d59f7695f2bb5211902ecf44b3de5fcd8a4c2dd4 Mon Sep 17 00:00:00 2001 From: Jan Kara <[email protected]> -Subject: Update readahead tunable -References: bnc#548529 -Patch-mainline: no - -Increase read_ahead_kb to values from SLES10 SP3 to get -back sequential IO performance if we are not compiling a -desktop kernel -flavor. - -Update jeffm 21 Dec 2014: -- BLK_DEF_MAX_SECTORS was removed in 3.19-rc1. -- read_ahead_kb really should be a sysctl, but systemd magic needs to - happen to get the ordering right. Otherwise, it'll be applied after - the local file systems are mounted and it'll have no effect. +Date: Sun, 17 Jan 2016 17:30:38 +0000 +Subject: [PATCH] mm: readahead: Increase default readahead window -Signed-off-by: Jan Kara <[email protected]> +References: VM Performance, bnc#548529 +Patch-mainline: No + +Increase read_ahead_kb to values from SLES10 SP3 to get back sequential IO +performance. This could be a sysctl but the sysctl would only be applied +to files opened after the sysctl was updated. While it is unlikely that +files opened by a systemd service earlier belong to processes that are +read-intensive, it is still possible and this is more visible to kernel +developers. + +This was evaluated on two machines +o a UMA machine, 8 cores and rotary storage +o A NUMA machine, 4 socket, 48 cores and SSD storage + +Five basic tests were conducted; + +1. paralleldd-single + paralleldd uses different instances of dd to access a single file and + write the contents to /dev/null. The performance of it depends on how + well readahead works for a single file. It's mostly sequential IO. + +2. paralleldd-multi + Similar to test 1 except each instance of dd accesses a different file + so each instance of dd is accessing data sequentially but the timing + makes it look like random read IO. + +3. pgbench-small + A standard init of pgbench and execution with a small data set + +4. pgbench-large + A standard init of pgbench and execution with a large data set + +5. bonnie++ with dataset sizes 2X RAM and in asyncronous mode + +UMA paralleldd-single on ext3 + 4.4.0 4.4.0 + vanilla readahead-v1r1 +Amean Elapsd-1 5.42 ( 0.00%) 5.40 ( 0.50%) +Amean Elapsd-3 7.51 ( 0.00%) 5.54 ( 26.25%) +Amean Elapsd-5 7.15 ( 0.00%) 5.90 ( 17.46%) +Amean Elapsd-7 5.81 ( 0.00%) 5.61 ( 3.42%) +Amean Elapsd-8 6.05 ( 0.00%) 5.73 ( 5.36%) + +Results speak for themselves, readahead is a major boost when there +are multiple readers of data. It's not displayed but system CPU +usage is overall. The IO stats support the results + + 4.4.0 4.4.0 + vanillareadahead-v1r1 +Mean sda-avgqusz 7.44 8.59 +Mean sda-avgrqsz 279.77 722.52 +Mean sda-await 31.95 48.82 +Mean sda-r_await 3.32 11.58 +Mean sda-w_await 127.51 119.60 +Mean sda-svctm 1.47 3.46 +Mean sda-rrqm 27.82 23.52 +Mean sda-wrqm 4.52 5.00 + +It shows that the average request size is 2.5 times larger even +though the merging stats are similar. It's also interesting to +note that average wait times are higher but more IO is being +initiated per dd instance. + +It's interesting to note that this is specific to ext3 and that xfs showed +a small regression with larger readahead. + +UMA paralleldd-single on xfs + 4.4.0 4.4.0 + vanilla readahead-v1r1 +Min Elapsd-1 6.91 ( 0.00%) 7.10 ( -2.75%) +Min Elapsd-3 6.77 ( 0.00%) 6.93 ( -2.36%) +Min Elapsd-5 6.82 ( 0.00%) 7.00 ( -2.64%) +Min Elapsd-7 6.84 ( 0.00%) 7.05 ( -3.07%) +Min Elapsd-8 7.02 ( 0.00%) 7.04 ( -0.28%) +Amean Elapsd-1 7.08 ( 0.00%) 7.20 ( -1.68%) +Amean Elapsd-3 7.03 ( 0.00%) 7.12 ( -1.40%) +Amean Elapsd-5 7.22 ( 0.00%) 7.38 ( -2.34%) +Amean Elapsd-7 7.07 ( 0.00%) 7.19 ( -1.75%) +Amean Elapsd-8 7.23 ( 0.00%) 7.23 ( -0.10%) + +The IO stats are not displayed but show a similar ratio to ext3 and system +CPU usage is also lower. Hence, this slowdown is unexplained but may be +due to differences in XFS in the read path and how it locks even though +direct IO is not a factor. Tracing was not enabled to see what flags are +passed into xfs_ilock to see if the IO is all behind one lock but it's +one potential explanation. + +UMA paralleldd-single on ext3 + +This showed nothing interesting as the test was too short-lived to draw +any conclusions. There was some difference in the kernels but it was +within the noise. The same applies for XFS. + +UMA pgbench-small on ext3 + +This showed very little that was interesting. The database load time +was slower but by a very small margin. The actual transaction times +were highly variable and inconclusive. + +NUMA pgbench-small on ext3 +Load times are not reported but they completed 1.5% faster. + + 4.4.0 4.4.0 + vanilla readahead-v1r1 +Hmean 1 3000.54 ( 0.00%) 2895.28 ( -3.51%) +Hmean 8 20596.33 ( 0.00%) 19291.92 ( -6.33%) +Hmean 12 30760.68 ( 0.00%) 30019.58 ( -2.41%) +Hmean 24 74383.22 ( 0.00%) 73580.80 ( -1.08%) +Hmean 32 88377.30 ( 0.00%) 88928.70 ( 0.62%) +Hmean 48 88133.53 ( 0.00%) 96099.16 ( 9.04%) +Hmean 80 55981.37 ( 0.00%) 76886.10 ( 37.34%) +Hmean 112 74060.29 ( 0.00%) 87632.95 ( 18.33%) +Hmean 144 51331.50 ( 0.00%) 66135.77 ( 28.84%) +Hmean 172 44256.92 ( 0.00%) 63521.73 ( 43.53%) +Hmean 192 35942.74 ( 0.00%) 71121.35 ( 97.87%) + +The impact here is substantial particularly for higher thread-counts. +It's interesting to note that there is an apparent regression for low +thread counts. In general, there was a high degree of variability +but the gains were all outside of the noise. In general, the io stats +did not show any particular pattern about request size as the workload +is mostly resident in memory. The real curiousity is that readahead +should have had little or no impact here as the data is mostly resident +in memory. Observing the transactions over time, there was a lot of +variability and the performance is likely dominated by whether the +data happened to be local or not. In itself, this test does not push +for inclusion of the patch due to the lack of IO but is included for +completeness. + +UMA pgbench-small on xfs + +Similar observations to ext3 on the load times. The transaction times +were stable but showed no significant performance difference. + +UMA pgbench-large on ext3 + +Database load times were slightly faster (3.36%). The transaction times +were slower on average, more variable but still very close to the noise. + +UMA pgbench-large on xfs + +No significant difference on either database load times or transactions. + +UMA bonnie on ext3 + + 4.4.0 4.4.0 + vanilla readahead-v1r1 +Hmean SeqOut Char 81079.98 ( 0.00%) 81172.05 ( 0.11%) +Hmean SeqOut Block 104416.12 ( 0.00%) 104116.24 ( -0.29%) +Hmean SeqOut Rewrite 44153.34 ( 0.00%) 44596.23 ( 1.00%) +Hmean SeqIn Char 88144.56 ( 0.00%) 91702.67 ( 4.04%) +Hmean SeqIn Block 134581.06 ( 0.00%) 137245.71 ( 1.98%) +Hmean Random seeks 258.46 ( 0.00%) 280.82 ( 8.65%) +Hmean SeqCreate ops 2.25 ( 0.00%) 2.25 ( 0.00%) +Hmean SeqCreate read 2.25 ( 0.00%) 2.25 ( 0.00%) +Hmean SeqCreate del 911.29 ( 0.00%) 880.24 ( -3.41%) +Hmean RandCreate ops 2.25 ( 0.00%) 2.25 ( 0.00%) +Hmean RandCreate read 2.00 ( 0.00%) 2.25 ( 12.50%) +Hmean RandCreate del 911.89 ( 0.00%) 878.80 ( -3.63%) + +The difference in headline performance figures is marginal and well within noise. +The system CPU usage tells a slightly different story + + 4.4.0 4.4.0 + vanillareadahead-v1r1 +User 1817.53 1798.89 +System 499.40 420.65 +Elapsed 10692.67 10588.08 + +As do the IO stats + + 4.4.0 4.4.0 + vanillareadahead-v1r1 +Mean sda-avgqusz 1079.16 1083.35 +Mean sda-avgrqsz 807.95 1225.08 +Mean sda-await 7308.06 9647.13 +Mean sda-r_await 119.04 133.27 +Mean sda-w_await 19106.20 20255.41 +Mean sda-svctm 4.67 7.02 +Mean sda-rrqm 1.80 0.99 +Mean sda-wrqm 5597.12 5723.32 + +NUMA bonnie on ext3 + +bonnie + 4.4.0 4.4.0 + vanilla readahead-v1r1 +Hmean SeqOut Char 58660.72 ( 0.00%) 58930.39 ( 0.46%) +Hmean SeqOut Block 253950.92 ( 0.00%) 261466.37 ( 2.96%) +Hmean SeqOut Rewrite 151960.60 ( 0.00%) 161300.48 ( 6.15%) +Hmean SeqIn Char 57015.41 ( 0.00%) 55699.16 ( -2.31%) +Hmean SeqIn Block 600448.14 ( 0.00%) 627565.09 ( 4.52%) +Hmean Random seeks 0.00 ( 0.00%) 0.00 ( 0.00%) +Hmean SeqCreate ops 1.00 ( 0.00%) 1.00 ( 0.00%) +Hmean SeqCreate read 3.00 ( 0.00%) 3.00 ( 0.00%) +Hmean SeqCreate del 90.91 ( 0.00%) 79.88 (-12.14%) +Hmean RandCreate ops 1.00 ( 0.00%) 1.50 ( 50.00%) +Hmean RandCreate read 3.00 ( 0.00%) 3.00 ( 0.00%) +Hmean RandCreate del 92.95 ( 0.00%) 93.97 ( 1.10%) + +The impact is small but in line with the UMA machine in a number of details. +As before, the CPU usage is lower even if the iostats show very little +differences overall. + +Overall, the headline performance figures are mostly improved or show +little difference. There is a small anomaly with XFS that indicates it may +not always win there due to other factors. There is also the possibility +that a mostly random read workload that was larger than memory with each +read spanning multiple pages but less than the max readahead window would +suffer but the probability is low as the readahead window should scale +properly. On balance, this is a win -- particularly on the large read +workloads that a customer is likely to examine. + +Signed-off-by: Jan Kara <[email protected]> +Signed-off-by: Mel Gorman <[email protected]> --- - include/linux/blkdev.h | 4 ++++ - include/linux/mm.h | 4 ++++ - 2 files changed, 8 insertions(+) + include/linux/mm.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +diff --git a/include/linux/mm.h b/include/linux/mm.h +index 00bad7793788..c50c6f442786 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h -@@ -1307,7 +1307,11 @@ int write_one_page(struct page *page, in +@@ -1991,7 +1991,7 @@ int write_one_page(struct page *page, int wait); void task_dirty_inc(struct task_struct *tsk); /* readahead.c */ -+#ifndef CONFIG_KERNEL_DESKTOP +-#define VM_MAX_READAHEAD 128 /* kbytes */ +#define VM_MAX_READAHEAD 512 /* kbytes */ -+#else - #define VM_MAX_READAHEAD 128 /* kbytes */ -+#endif #define VM_MIN_READAHEAD 16 /* kbytes (includes current page) */ int force_page_cache_readahead(struct address_space *mapping, struct file *filp, ++++++ series.conf ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:35.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:35.000000000 +0100 @@ -28,16 +28,16 @@ # Send separate patches upstream if you find a problem... ######################################################## - ######################################################## - # Build fixes that apply to the vanilla kernel too. + ######################################################## + # Build fixes that apply to the vanilla kernel too. # Patches in patches.rpmify are applied to both -vanilla # and patched flavors. - ######################################################## + ######################################################## patches.rpmify/lustre-lloop-dont-change-logical-size - ######################################################## - # kABI consistency patches - ######################################################## + ######################################################## + # kABI consistency patches + ######################################################## ######################################################## # @@ -51,9 +51,9 @@ patches.rpmify/firmware-path patches.rpmify/cloneconfig.diff - ######################################################## - # kbuild/module infrastructure fixes - ######################################################## + ######################################################## + # kbuild/module infrastructure fixes + ######################################################## patches.suse/rpm-kernel-config patches.suse/split-package patches.suse/supported-flag @@ -62,29 +62,29 @@ patches.suse/supported-flag-external patches.suse/genksyms-add-override-flag.diff - ######################################################## - # Simple export additions/removals - ######################################################## + ######################################################## + # Simple export additions/removals + ######################################################## ######################################################## # Bug workarounds for binutils ######################################################## - ######################################################## - # Scheduler / Core - ######################################################## + ######################################################## + # Scheduler / Core + ######################################################## patches.suse/setuid-dumpable-wrongdir - ######################################################## - # Architecture-specific patches. These used to be all - # at the end of series.conf, but since we don't do - # conditional builds anymore, there's no point. - ######################################################## + ######################################################## + # Architecture-specific patches. These used to be all + # at the end of series.conf, but since we don't do + # conditional builds anymore, there's no point. + ######################################################## - ######################################################## + ######################################################## # i386 - ######################################################## + ######################################################## # amd64 | x86-64 | x86_64 @@ -94,16 +94,16 @@ # "the architecture with too many names" # TAWTMN - ######################################################## + ######################################################## # x86_64/i386 biarch - ######################################################## + ######################################################## # Upstream commit c8b5db7de66b75330a96f9f1ad7376b89646c953 # changed this area a lot. +needs_updating patches.arch/x86_64-hpet-64bit-timer.patch ######################################################## # x86 MCE/MCA (Machine Check Error/Architecture) extensions - ######################################################## + ######################################################## ######################################################## @@ -115,13 +115,13 @@ # x86 UV patches from SGI ######################################################## - ######################################################## + ######################################################## # x86_64/i386 depending on the UV patchset - ######################################################## + ######################################################## - ######################################################## + ######################################################## # powerpc/generic - ######################################################## + ######################################################## patches.suse/8250-sysrq-ctrl_o.patch patches.arch/ppc-pegasos-console-autodetection.patch patches.suse/ppc-powerbook-usb-fn-key-default.patch @@ -130,23 +130,23 @@ patches.arch/ppc-prom-nodisplay.patch +needs_update patches.fixes/ptrace-getsiginfo - ######################################################## + ######################################################## # powerpc/little endian - ######################################################## + ######################################################## patches.arch/ppc64le-build-vmlinux.patch patches.arch/ppc64le-ile-0001-powerpc-Add-global-exports-for-all-interrupt-vectors.patch patches.arch/ppc64le-ile-0002-powerpc-Add-relocation-code-for-fixups.patch patches.arch/ppc64le-ile-0003-powerpc-Add-hack-to-make-ppc64le-work-on-hosts-witho.patch patches.arch/ppc64le-ile-0004-powerpc-Don-t-return-to-BE-mode-when-we-are-already-.patch - patches.drivers/ibmvnic-Driver-for-IBM-System-i-p-VNIC-protocol.patch - ######################################################## - # PS3 - ######################################################## - - ######################################################## - # ARM - ######################################################## + patches.drivers/ibmvnic-Driver-for-IBM-System-i-p-VNIC-protocol.patch + ######################################################## + # PS3 + ######################################################## + + ######################################################## + # ARM + ######################################################## patches.arch/arm-OMAP-Fix-missing-usb.h-include.patch # Compile fix for Xen on ARM with our Xen patches applied @@ -161,32 +161,25 @@ patches.arch/arm64-0006-arm64-Select-reboot-driver-for-X-Gene-platform.patch patches.arch/arm64-0010-KVM-ARM-Hack-to-enable-VGIC-mapping-on-64k-PAGE_SIZE.patch - # Generic PCIe host bridge, necessary for QEMU and Seattle, upstreaming wip -+mbrugger patches.arch/arm64-gpex-0001-device-core-Introduce-per-device-MSI-domain-pointer.patch -+mbrugger patches.arch/arm64-gpex-0002-PCI-MSI-add-hooks-to-populate-the-msi_domain-field.patch -+mbrugger patches.arch/arm64-gpex-0003-PCI-MSI-of-add-support-for-OF-provided-msi_domain.patch -+mbrugger patches.arch/arm64-gpex-0004-PCI-MSI-Let-pci_msi_get_domain-use-struct-device-s-m.patch -+mbrugger patches.arch/arm64-gpex-0005-irqchip-GICv2m-Get-rid-of-struct-msi_controller.patch -+mbrugger patches.arch/arm64-gpex-0006-irqchip-gicv3-its-Get-rid-of-struct-msi_controller.patch -+mbrugger patches.arch/arm64-gpex-0007-PCI-MSI-Drop-domain-field-from-msi_controller.patch -+mbrugger patches.arch/arm64-gpex-0008-PCI-MSI-of-Allow-msi_domain-lookup-using-the-PHB-nod.patch - ######################################################## # S/390 ######################################################## patches.arch/s390-message-catalog.diff patches.arch/kmsg-fix-parameter-limitations - ######################################################## - # VM/FS patches - ######################################################## - patches.suse/readahead-request-tunables.patch - patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch + ######################################################## + # VM/FS patches + ######################################################## + + # Patches to export btrfs anonymous devices (VFS portion) patches.suse/vfs-add-super_operations-get_inode_dev - ######################################################## - # IPC patches - ######################################################## + # Changes to tunable defaults + patches.suse/readahead-request-tunables.patch + + ######################################################## + # IPC patches + ######################################################## ######################################################## # nfsacl protocol (agruen) @@ -211,8 +204,6 @@ # CPUFREQ ######################################################## -+trenn patches.fixes/cpufreq_ondemand_performance_optimise_default_settings.patch - ## cpuidle perf events cleanups and related patches.arch/perf_timechart_fix_zero_timestamps.patch @@ -233,7 +224,6 @@ ######################################################## # NFS ######################################################## - patches.fixes/0001-NFSv4-do-not-accept-an-incompatible-delegation.patch ######################################################## # lockd + statd @@ -338,11 +328,12 @@ patches.drivers/0005-fix-a-leak-in-bch_cached_dev_run.patch patches.drivers/bcache-fix-writeback-thread-incomplete-stripes-starvation.patch + patches.fixes/scsi-ignore-errors-from-scsi_dh_add_device ######################################################## # DRM/Video ######################################################## -+jeffm patches.fixes/nouveau-fix-race-with-fence-signaling + patches.drivers/drm-i915-shut-up-gen8-SDE-irq-dmesg-noise ######################################################## # video4linux @@ -389,10 +380,12 @@ ######################################################## # patches.suse/SUSE-bootsplash # patches.suse/SUSE-bootsplash-mgadrmfb-workaround + patches.fixes/HID-multitouch-fix-input-mode-switching-on-some-Elan ########################################################## # Sound ########################################################## + patches.drivers/ALSA-hda-Flush-the-pending-probe-work-at-remove ######################################################## # Char / serial @@ -405,6 +398,8 @@ # Needs updating WRT d27769ec (block: add GENHD_FL_NO_PART_SCAN) +hare patches.suse/no-partition-scan + patches.fixes/hwrng-core-sleep-interruptible-in-read.patch + ######################################################## # Other drivers we have added to the tree ######################################################## @@ -421,7 +416,6 @@ +needs_update patches.suse/dm-mpath-accept-failed-paths +needs_update patches.suse/dm-mpath-detach-existing-hardware-handler patches.fixes/dm-table-switch-to-readonly -+needs_update patches.fixes/dm-release-map_lock-before-set_disk_ro patches.suse/dm-mpath-no-activate-for-offlined-paths patches.suse/dm-mpath-no-partitions-feature patches.suse/mpath-fix @@ -436,6 +430,9 @@ # ########################################################## + # CVE-2016-0728: kernel: Use-after-free vulnerability in keyring facility + patches.fixes/keys-fix-leak.patch + ########################################################## # Audit ########################################################## @@ -452,31 +449,31 @@ # Address space layout randomization ######################################################## - ######################################################## - # KDB v4.4 - ######################################################## - - ######################################################## - # Other patches for debugging - ######################################################## + ######################################################## + # KDB v4.4 + ######################################################## + + ######################################################## + # Other patches for debugging + ######################################################## patches.suse/crasher.patch patches.suse/revert-x86-remove-warning-and-warning_symbol-from-struct-stacktrace_ops patches.suse/stack-unwind +needs_updating patches.arch/x86_64-unwind-annotations - ######################################################## - # Kdump - ######################################################## + ######################################################## + # Kdump + ######################################################## - ######################################################## + ######################################################## # cgroups - ######################################################## + ######################################################## - ######################################################## + ######################################################## # audit subsystem - ######################################################## + ######################################################## - ######################################################## + ######################################################## # Performance Monitoring, Tracing etc ######################################################## @@ -487,12 +484,12 @@ # KVM patches ######################################################## - ######################################################## + ######################################################## # Staging tree patches # new drivers that are going upstream - ######################################################## + ######################################################## - ######################################################## + ######################################################## # You'd better have a good reason for adding a patch # below here. ######################################################## ++++++ source-timestamp ++++++ --- /var/tmp/diff_new_pack.XHK02z/_old 2016-01-26 10:14:35.000000000 +0100 +++ /var/tmp/diff_new_pack.XHK02z/_new 2016-01-26 10:14:35.000000000 +0100 @@ -1,3 +1,3 @@ -2016-01-11 15:46:34 +0100 -GIT Revision: 83948c1558f87eeaca00110c09cc1f26805fe4b0 +2016-01-21 08:47:10 +0100 +GIT Revision: b56b151e7b1fc4fcaa254ff3f950d4a89416635b GIT Branch: stable
