Hello community,

here is the log from the commit of package kernel-source for openSUSE:Factory 
checked in at 2016-03-17 16:36:17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-03-14 09:57:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes  
2016-03-17 16:49:40.000000000 +0100
@@ -1,0 +2,21 @@
+Wed Mar 16 18:25:04 CET 2016 - ti...@suse.de
+
+- Disable relax relocations for x86 loader (bsc#970239).
+- commit a92e8a7
+
+-------------------------------------------------------------------
+Wed Mar 16 15:05:03 CET 2016 - ti...@suse.de
+
+- ALSA: usb-audio: Add sanity checks for endpoint accesses
+  (CVE-2016-2184,bsc#971125).
+- ALSA: usb-audio: Fix NULL dereference in
+  create_fixed_stream_quirk() (CVE-2016-2184,bsc#971125).
+- commit 8336511
+
+-------------------------------------------------------------------
+Mon Mar 14 06:14:55 CET 2016 - je...@suse.com
+
+- Update to 4.5-final.
+- commit 3c4edc5
+
+-------------------------------------------------------------------
@@ -8,0 +30,28 @@
+Wed Mar  9 17:57:41 CET 2016 - jdelv...@suse.de
+
+- Update s390x config files: Bump NR_CPUS to 256
+  It was set to 256 in the SLES kernel 2 years ago already.
+- commit 43cf630
+
+-------------------------------------------------------------------
+Tue Mar  8 19:47:06 CET 2016 - afaer...@suse.de
+
+- config: armv7hl: Enable DRM_ROCKCHIP
+  Firefly-RK3288 is among the boards that this will benefit.
+- commit 2a3d0e4
+
+-------------------------------------------------------------------
+Mon Mar  7 14:39:01 CET 2016 - je...@suse.com
+
+- Update to 4.5-rc7.
+- commit 924f2b7
+
+-------------------------------------------------------------------
+Mon Mar  7 14:01:02 CET 2016 - jdelv...@suse.de
+
+- Update config files: Modularize NF_REJECT_IPV4/V6
+  There is no reason why these helper modules should be built-in when
+  the rest of netfilter is built as modules.
+- commit c81fe72
+
+-------------------------------------------------------------------
@@ -91,0 +141,12 @@
+Thu Mar  3 09:18:25 CET 2016 - oher...@suse.de
+
+- Refresh patches.suse/xen-pv-devmem_is_allowed.patch.
+- commit a55dde2
+
+-------------------------------------------------------------------
+Wed Mar  2 15:31:03 CET 2016 - oher...@suse.de
+
+- Disable access to lowmem in a Xen PV guest (bnc#964342).
+- commit e7a0da2
+
+-------------------------------------------------------------------
@@ -138,0 +200,26 @@
+Tue Mar  1 19:14:25 CET 2016 - dmuel...@suse.com
+
+- config: ARM64: Remove hardcoded console setting
+  Proper way would be to derive it from the ACPI or
+  Device tree chosen output.
+- commit ad7dbb8
+
+-------------------------------------------------------------------
+Mon Feb 29 17:27:00 CET 2016 - mma...@suse.com
+
+- rpm/kernel-binary.spec.in: Obsolete xen-kmp (fate#315712, bsc#968253)
+- commit 0e7c4d5
+
+-------------------------------------------------------------------
+Mon Feb 29 17:26:46 CET 2016 - mma...@suse.com
+
+- Copy packaging changes from master to the packaging branch
+- commit 0a2490d
+
+-------------------------------------------------------------------
+Mon Feb 29 01:34:11 CET 2016 - je...@suse.com
+
+- Update to 4.5-rc6.
+- commit b239884
+
+-------------------------------------------------------------------
@@ -159 +246 @@
-- commit 2629d17
+- commit c2c16d5
@@ -176,0 +264,16 @@
+Tue Feb 23 17:54:18 CET 2016 - guillaume.gar...@free.fr
+
+- config: armv7hl: Enable CONFIG_DRM_ETNAVIV
+  Enable CONFIG_DRM_ETNAVIV for armv7 (default and vanilla) to get graphics
+  acceleration on top of the Vivante GPU IP cores used in different SoCs,
+  such as the Freescale i.MX6.
+- commit 13c5905
+
+-------------------------------------------------------------------
+Tue Feb 23 15:49:39 CET 2016 - mma...@suse.com
+
+- rpm/kernel-binary.spec.in: Sync the main and -base package dependencies
+  (bsc#965830#c51).
+- commit bf655ed
+
+-------------------------------------------------------------------
@@ -183,0 +287,54 @@
+Mon Feb 22 23:41:16 CET 2016 - je...@suse.com
+
+- Update to v4.5-rc5.
+- commit 7733b9a
+
+-------------------------------------------------------------------
+Mon Feb 22 23:36:00 CET 2016 - je...@suse.com
+
+- config: complete disabling THERMAL from s390
+  Commit fd5ffd694f9 (Update s390x config files: Disable THERMAL)
+  left some stray config options around.  Clean them up.
+- commit 5cd1d35
+
+-------------------------------------------------------------------
+Mon Feb 22 15:46:49 CET 2016 - jdelv...@suse.de
+
+- Update config files: Set CRYPTO_CHACHA20POLY1305=m
+  We support every other crypto algorithm so why not this one.
+- commit 68344d0
+
+-------------------------------------------------------------------
+Mon Feb 22 09:08:40 CET 2016 - jdelv...@suse.de
+
+- Update config files: Disable SERIAL_8250_RT288X
+  This option is only useful on MIPS.
+- commit a8e3297
+
+-------------------------------------------------------------------
+Sun Feb 21 21:44:07 CET 2016 - dmuel...@suse.com
+
+- config: armv6hl: Disable CMA and DEBUGFS settings
+  CMA allocates 16MB of reserved memory on boot, which takes
+  away a very scarce resource for unpacking the kiwi initrd
+  and provides little value (is also disabled on other x86*)
+- commit 9f2a122
+
+-------------------------------------------------------------------
+Sat Feb 20 20:31:54 CET 2016 - jdelv...@suse.de
+
+- Update s390x config files: Disable THERMAL
+  The THERMAL subsystem serves no purpose on S/390, disable it. It was
+  already disabled in the SLES kernel long ago.
+- commit fd5ffd6
+
+-------------------------------------------------------------------
+Thu Feb 18 14:06:09 CET 2016 - dste...@suse.com
+
+- Fix lint warnings: E: summary-ended-with-dot
+  kernel-source-vanilla.noarch: E: summary-ended-with-dot (Badness: 89) C
+  Vanilla Linux kernel sources with minor build fixes.
+  Summary ends with a dot.
+- commit 9050a39
+
+-------------------------------------------------------------------
@@ -217,0 +375,45 @@
+Wed Feb 17 19:00:58 CET 2016 - mbrug...@suse.com
+
+- series.conf: mark xgbe-a0 ethernet driver as needs_update
+- commit 9efcaae
+
+-------------------------------------------------------------------
+Wed Feb 17 11:37:05 CET 2016 - mbrug...@suse.com
+
+- Update config files for arm64.
+  Enable ACPI.
+- commit fa0917c
+
+-------------------------------------------------------------------
+Tue Feb 16 15:09:04 CET 2016 - jsl...@suse.cz
+
+- Refresh patches.suse/stack-unwind.patch.
+  Remove text_base parameter from read_pointer as it is always 0.
+- commit b3ba789
+
+-------------------------------------------------------------------
+Tue Feb 16 13:56:18 CET 2016 - mma...@suse.com
+
+- rpm/kernel-binary.spec.in: Set CONFIG_MODULE_SIG_KEY only if a cert is 
present
+  This allows using the unmodified .config from the kernel-source tree in
+  the expanded tree.
+- commit 5fa6ddd
+
+-------------------------------------------------------------------
+Mon Feb 15 15:10:59 CET 2016 - jdelv...@suse.de
+
+- Update x86 config files: Enable Intel RAPL
++++ 297 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes
++++ and /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes
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

Old:
----
  linux-4.4.tar.xz

New:
----
  linux-4.5.tar.xz

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

Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -19,8 +19,8 @@
 # This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
 # needssslcertforbuild
 
-%define srcversion 4.4
-%define patchversion 4.4.5
+%define srcversion 4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -61,9 +61,9 @@
 Summary:        A Debug Version of the Kernel
 License:        GPL-2.0
 Group:          System/Kernel
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif
@@ -94,6 +94,8 @@
 # 11.2 - 11.4, but we primarily care about the supported upgrade path.
 Obsoletes:      %name-base < 3.1
 %endif
+# The following is copied to the -base subpackage as well
+# BEGIN COMMON DEPS
 Requires(pre):  coreutils awk
 # For /usr/lib/module-init-tools/weak-modules2
 Requires(post): suse-module-tools
@@ -116,6 +118,7 @@
 # Install the package providing /etc/SuSE-release early enough, so that
 # the grub entry has correct title (bnc#757565)
 Requires(post): distribution-release
+# END COMMON DEPS
 # Do not install p-b and mkinitrd for the install check, the %post script is
 # able to handle this
 #!BuildIgnore: perl-Bootloader mkinitrd distribution-release
@@ -350,6 +353,8 @@
 %obsolete_kmp  compat-wireless 3.12
 %obsolete_kmp  rts5229 1.08
 %obsolete_kmp  rts_pstor 1.11
+# sle12-sp1 / Leap 42.1
+%obsolete_kmp  xen 4.6.1
 
 # Provide the exported symbols as "ksym(symbol) = hash"
 %define __find_provides %_sourcedir/find-provides %name
@@ -482,26 +487,20 @@
 fi
 
 # copy module signing certificate(s)
-found_sigkey=false
 for f in %_sourcedir/*.crt; do
     if ! test -e "$f"; then
         continue
     fi
-    if test "${f##*/}" = %CONFIG_MODULE_SIG_KEY; then
-        found_sigkey=true
+    case "${f##*/}" in
+    SLES-UEFI*.crt)
+        ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
        cp "$f" .
-    else
+       ;;
+    *)
         cat "$f" >>keyring.crt
-    fi
+        ../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
+    esac
 done
-if ! $found_sigkey; then
-    echo "warning: %CONFIG_MODULE_SIG_KEY not found"
-    # Let certs/Makefile generate a keypair
-    ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "certs/signing_key.pem"
-fi
-if test -s keyring.crt; then
-    ../scripts/config --set-str SYSTEM_TRUSTED_KEYS_FILENAME "keyring.crt"
-fi
 
 MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
 
@@ -949,9 +948,28 @@
 Provides:       multiversion(kernel)
 Conflicts:      %name = %version-%release
 Requires(pre):  coreutils awk
+# For /usr/lib/module-init-tools/weak-modules2
+Requires(post): suse-module-tools
+# For depmod (modutils is a dependency provided by both module-init-tools and
+# kmod-compat)
 Requires(post): modutils
-Requires(post): perl-Bootloader
+# This Requires is wrong, because the post/postun scripts have a
+# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
+# But, there is no way to tell rpm or yast to schedule the installation
+# of perl-Bootloader before kernel-binary.rpm if both are in the list of
+# packages to install/update. Likewise, this is true for mkinitrd.
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
+%if %build_vanilla
 Requires(post): mkinitrd
+%else
+# Require a mkinitrd that can handle usbhid/hid-generic built-in (bnc#773559)
+Requires(post): mkinitrd >= 2.7.1
+%endif
+# Install the package providing /etc/SuSE-release early enough, so that
+# the grub entry has correct title (bnc#757565)
+Requires(post): distribution-release
+
 %ifarch ppc64
 Provides:       kernel-kdump-base = 2.6.28
 Obsoletes:      kernel-kdump-base <= 2.6.28
@@ -1030,7 +1048,7 @@
 %if %CONFIG_KMSG_IDS == "y"
 
 %package man
-Summary:        The collection of man pages generated by the kmsg script.
+Summary:        The collection of man pages generated by the kmsg script
 Group:          System/Kernel
 
 %description man

++++++ kernel-default.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -19,8 +19,8 @@
 # This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
 # needssslcertforbuild
 
-%define srcversion 4.4
-%define patchversion 4.4.5
+%define srcversion 4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -61,9 +61,9 @@
 Summary:        The Standard Kernel
 License:        GPL-2.0
 Group:          System/Kernel
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif
@@ -94,6 +94,8 @@
 # 11.2 - 11.4, but we primarily care about the supported upgrade path.
 Obsoletes:      %name-base < 3.1
 %endif
+# The following is copied to the -base subpackage as well
+# BEGIN COMMON DEPS
 Requires(pre):  coreutils awk
 # For /usr/lib/module-init-tools/weak-modules2
 Requires(post): suse-module-tools
@@ -116,6 +118,7 @@
 # Install the package providing /etc/SuSE-release early enough, so that
 # the grub entry has correct title (bnc#757565)
 Requires(post): distribution-release
+# END COMMON DEPS
 # Do not install p-b and mkinitrd for the install check, the %post script is
 # able to handle this
 #!BuildIgnore: perl-Bootloader mkinitrd distribution-release
@@ -268,7 +271,7 @@
 Source120:      kabi.tar.bz2
 Source121:      sysctl.tar.bz2
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
+ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
 %define kmp_target_cpu %_target_cpu
 %ifarch %ix86
 # Only i386/default supports i586, mark other flavors' packages as i686
@@ -394,6 +397,8 @@
 %obsolete_kmp  compat-wireless 3.12
 %obsolete_kmp  rts5229 1.08
 %obsolete_kmp  rts_pstor 1.11
+# sle12-sp1 / Leap 42.1
+%obsolete_kmp  xen 4.6.1
 
 # Provide the exported symbols as "ksym(symbol) = hash"
 %define __find_provides %_sourcedir/find-provides %name
@@ -525,26 +530,20 @@
 fi
 
 # copy module signing certificate(s)
-found_sigkey=false
 for f in %_sourcedir/*.crt; do
     if ! test -e "$f"; then
         continue
     fi
-    if test "${f##*/}" = %CONFIG_MODULE_SIG_KEY; then
-        found_sigkey=true
+    case "${f##*/}" in
+    SLES-UEFI*.crt)
+        ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
        cp "$f" .
-    else
+       ;;
+    *)
         cat "$f" >>keyring.crt
-    fi
+        ../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
+    esac
 done
-if ! $found_sigkey; then
-    echo "warning: %CONFIG_MODULE_SIG_KEY not found"
-    # Let certs/Makefile generate a keypair
-    ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "certs/signing_key.pem"
-fi
-if test -s keyring.crt; then
-    ../scripts/config --set-str SYSTEM_TRUSTED_KEYS_FILENAME "keyring.crt"
-fi
 
 MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
 
@@ -992,9 +991,28 @@
 Provides:       multiversion(kernel)
 Conflicts:      %name = %version-%release
 Requires(pre):  coreutils awk
+# For /usr/lib/module-init-tools/weak-modules2
+Requires(post): suse-module-tools
+# For depmod (modutils is a dependency provided by both module-init-tools and
+# kmod-compat)
 Requires(post): modutils
-Requires(post): perl-Bootloader
+# This Requires is wrong, because the post/postun scripts have a
+# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
+# But, there is no way to tell rpm or yast to schedule the installation
+# of perl-Bootloader before kernel-binary.rpm if both are in the list of
+# packages to install/update. Likewise, this is true for mkinitrd.
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
+%if %build_vanilla
 Requires(post): mkinitrd
+%else
+# Require a mkinitrd that can handle usbhid/hid-generic built-in (bnc#773559)
+Requires(post): mkinitrd >= 2.7.1
+%endif
+# Install the package providing /etc/SuSE-release early enough, so that
+# the grub entry has correct title (bnc#757565)
+Requires(post): distribution-release
+
 %ifarch %ix86
 Provides:       kernel-trace-base = 3.13
 Obsoletes:      kernel-trace-base <= 3.13
@@ -1111,7 +1129,7 @@
 %if %CONFIG_KMSG_IDS == "y"
 
 %package man
-Summary:        The collection of man pages generated by the kmsg script.
+Summary:        The collection of man pages generated by the kmsg script
 Group:          System/Kernel
 
 %description man

++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define patchversion 4.4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 
 %include %_sourcedir/kernel-spec-macros
@@ -27,9 +27,9 @@
 Summary:        Kernel Documentation (man pages)
 License:        GPL-2.0
 Group:          Documentation/Man
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif

++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -19,8 +19,8 @@
 # This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
 # needssslcertforbuild
 
-%define srcversion 4.4
-%define patchversion 4.4.5
+%define srcversion 4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -61,9 +61,9 @@
 Summary:        Kernel for LPAE enabled systems
 License:        GPL-2.0
 Group:          System/Kernel
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif
@@ -94,6 +94,8 @@
 # 11.2 - 11.4, but we primarily care about the supported upgrade path.
 Obsoletes:      %name-base < 3.1
 %endif
+# The following is copied to the -base subpackage as well
+# BEGIN COMMON DEPS
 Requires(pre):  coreutils awk
 # For /usr/lib/module-init-tools/weak-modules2
 Requires(post): suse-module-tools
@@ -116,6 +118,7 @@
 # Install the package providing /etc/SuSE-release early enough, so that
 # the grub entry has correct title (bnc#757565)
 Requires(post): distribution-release
+# END COMMON DEPS
 # Do not install p-b and mkinitrd for the install check, the %post script is
 # able to handle this
 #!BuildIgnore: perl-Bootloader mkinitrd distribution-release
@@ -344,6 +347,8 @@
 %obsolete_kmp  compat-wireless 3.12
 %obsolete_kmp  rts5229 1.08
 %obsolete_kmp  rts_pstor 1.11
+# sle12-sp1 / Leap 42.1
+%obsolete_kmp  xen 4.6.1
 
 # Provide the exported symbols as "ksym(symbol) = hash"
 %define __find_provides %_sourcedir/find-provides %name
@@ -476,26 +481,20 @@
 fi
 
 # copy module signing certificate(s)
-found_sigkey=false
 for f in %_sourcedir/*.crt; do
     if ! test -e "$f"; then
         continue
     fi
-    if test "${f##*/}" = %CONFIG_MODULE_SIG_KEY; then
-        found_sigkey=true
+    case "${f##*/}" in
+    SLES-UEFI*.crt)
+        ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
        cp "$f" .
-    else
+       ;;
+    *)
         cat "$f" >>keyring.crt
-    fi
+        ../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
+    esac
 done
-if ! $found_sigkey; then
-    echo "warning: %CONFIG_MODULE_SIG_KEY not found"
-    # Let certs/Makefile generate a keypair
-    ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "certs/signing_key.pem"
-fi
-if test -s keyring.crt; then
-    ../scripts/config --set-str SYSTEM_TRUSTED_KEYS_FILENAME "keyring.crt"
-fi
 
 MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
 
@@ -943,9 +942,28 @@
 Provides:       multiversion(kernel)
 Conflicts:      %name = %version-%release
 Requires(pre):  coreutils awk
+# For /usr/lib/module-init-tools/weak-modules2
+Requires(post): suse-module-tools
+# For depmod (modutils is a dependency provided by both module-init-tools and
+# kmod-compat)
 Requires(post): modutils
-Requires(post): perl-Bootloader
+# This Requires is wrong, because the post/postun scripts have a
+# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
+# But, there is no way to tell rpm or yast to schedule the installation
+# of perl-Bootloader before kernel-binary.rpm if both are in the list of
+# packages to install/update. Likewise, this is true for mkinitrd.
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
+%if %build_vanilla
 Requires(post): mkinitrd
+%else
+# Require a mkinitrd that can handle usbhid/hid-generic built-in (bnc#773559)
+Requires(post): mkinitrd >= 2.7.1
+%endif
+# Install the package providing /etc/SuSE-release early enough, so that
+# the grub entry has correct title (bnc#757565)
+Requires(post): distribution-release
+
 
 %obsolete_rebuilds %name-base
 %ifarch %ix86
@@ -1018,7 +1036,7 @@
 %if %CONFIG_KMSG_IDS == "y"
 
 %package man
-Summary:        The collection of man pages generated by the kmsg script.
+Summary:        The collection of man pages generated by the kmsg script
 Group:          System/Kernel
 
 %description man

++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -19,7 +19,7 @@
 
 #!BuildIgnore: post-build-checks
 
-%define patchversion 4.4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 
 %include %_sourcedir/kernel-spec-macros
@@ -51,9 +51,9 @@
 Summary:        package kernel and initrd for OBS VM builds
 License:        GPL-2.0
 Group:          SLES
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif

++++++ kernel-obs-qa.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -17,7 +17,7 @@
 # needsrootforbuild
 
 
-%define patchversion 4.4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 
 %include %_sourcedir/kernel-spec-macros
@@ -36,9 +36,9 @@
 Summary:        Basic QA tests for the kernel
 License:        GPL-2.0
 Group:          SLES
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif

++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -19,8 +19,8 @@
 # This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
 # needssslcertforbuild
 
-%define srcversion 4.4
-%define patchversion 4.4.5
+%define srcversion 4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -61,9 +61,9 @@
 Summary:        Kernel with PAE Support
 License:        GPL-2.0
 Group:          System/Kernel
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif
@@ -94,6 +94,8 @@
 # 11.2 - 11.4, but we primarily care about the supported upgrade path.
 Obsoletes:      %name-base < 3.1
 %endif
+# The following is copied to the -base subpackage as well
+# BEGIN COMMON DEPS
 Requires(pre):  coreutils awk
 # For /usr/lib/module-init-tools/weak-modules2
 Requires(post): suse-module-tools
@@ -116,6 +118,7 @@
 # Install the package providing /etc/SuSE-release early enough, so that
 # the grub entry has correct title (bnc#757565)
 Requires(post): distribution-release
+# END COMMON DEPS
 # Do not install p-b and mkinitrd for the install check, the %post script is
 # able to handle this
 #!BuildIgnore: perl-Bootloader mkinitrd distribution-release
@@ -364,6 +367,8 @@
 %obsolete_kmp  compat-wireless 3.12
 %obsolete_kmp  rts5229 1.08
 %obsolete_kmp  rts_pstor 1.11
+# sle12-sp1 / Leap 42.1
+%obsolete_kmp  xen 4.6.1
 
 # Provide the exported symbols as "ksym(symbol) = hash"
 %define __find_provides %_sourcedir/find-provides %name
@@ -502,26 +507,20 @@
 fi
 
 # copy module signing certificate(s)
-found_sigkey=false
 for f in %_sourcedir/*.crt; do
     if ! test -e "$f"; then
         continue
     fi
-    if test "${f##*/}" = %CONFIG_MODULE_SIG_KEY; then
-        found_sigkey=true
+    case "${f##*/}" in
+    SLES-UEFI*.crt)
+        ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
        cp "$f" .
-    else
+       ;;
+    *)
         cat "$f" >>keyring.crt
-    fi
+        ../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
+    esac
 done
-if ! $found_sigkey; then
-    echo "warning: %CONFIG_MODULE_SIG_KEY not found"
-    # Let certs/Makefile generate a keypair
-    ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "certs/signing_key.pem"
-fi
-if test -s keyring.crt; then
-    ../scripts/config --set-str SYSTEM_TRUSTED_KEYS_FILENAME "keyring.crt"
-fi
 
 MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
 
@@ -969,9 +968,28 @@
 Provides:       multiversion(kernel)
 Conflicts:      %name = %version-%release
 Requires(pre):  coreutils awk
+# For /usr/lib/module-init-tools/weak-modules2
+Requires(post): suse-module-tools
+# For depmod (modutils is a dependency provided by both module-init-tools and
+# kmod-compat)
 Requires(post): modutils
-Requires(post): perl-Bootloader
+# This Requires is wrong, because the post/postun scripts have a
+# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
+# But, there is no way to tell rpm or yast to schedule the installation
+# of perl-Bootloader before kernel-binary.rpm if both are in the list of
+# packages to install/update. Likewise, this is true for mkinitrd.
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
+%if %build_vanilla
 Requires(post): mkinitrd
+%else
+# Require a mkinitrd that can handle usbhid/hid-generic built-in (bnc#773559)
+Requires(post): mkinitrd >= 2.7.1
+%endif
+# Install the package providing /etc/SuSE-release early enough, so that
+# the grub entry has correct title (bnc#757565)
+Requires(post): distribution-release
+
 %ifarch %ix86
 Provides:       kernel-vmi-base = 2.6.38
 Obsoletes:      kernel-vmi-base <= 2.6.38
@@ -1074,7 +1092,7 @@
 %if %CONFIG_KMSG_IDS == "y"
 
 %package man
-Summary:        The collection of man pages generated by the kmsg script.
+Summary:        The collection of man pages generated by the kmsg script
 Group:          System/Kernel
 
 %description man

++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -17,8 +17,8 @@
 # icecream 0
 
 
-%define srcversion 4.4
-%define patchversion 4.4.5
+%define srcversion 4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -30,9 +30,9 @@
 Summary:        The Linux Kernel Sources
 License:        GPL-2.0
 Group:          Development/Sources
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif
@@ -152,7 +152,7 @@
 %source_timestamp
 
 %package vanilla
-Summary:        Vanilla Linux kernel sources with minor build fixes.
+Summary:        Vanilla Linux kernel sources with minor build fixes
 Group:          Development/Sources
 AutoReqProv:    off
 Provides:       %name-vanilla = %version-%source_rel

++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -24,10 +24,10 @@
 Summary:        Kernel Symbol Versions (modversions)
 License:        GPL-2.0
 Group:          Development/Sources
-Version:        4.4.5
+Version:        4.5.0
 %if %using_buildservice
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif
@@ -38,7 +38,7 @@
 Url:            http://www.kernel.org/
 AutoReqProv:    off
 BuildRequires:  coreutils
-%ifarch aarch64 armv6hl armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
+%ifarch aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
 Requires:       kernel-default-devel = %version-%source_rel
 %endif
 %ifarch armv7hl
@@ -53,7 +53,7 @@
 Source:         README.KSYMS
 Requires:       kernel-devel%variant = %version-%source_rel
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-ExclusiveArch:  %ix86 aarch64 armv6hl armv7hl ppc ppc64 ppc64le s390x x86_64
+ExclusiveArch:  %ix86 aarch64 armv6hl armv7hl ppc64 ppc64le s390x x86_64
 Prefix:         /usr/src
 
 %description

++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -19,8 +19,8 @@
 # This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
 # needssslcertforbuild
 
-%define srcversion 4.4
-%define patchversion 4.4.5
+%define srcversion 4.5
+%define patchversion 4.5.0
 %define variant %{nil}
 %define vanilla_only 0
 
@@ -61,9 +61,9 @@
 Summary:        The Standard Kernel - without any SUSE patches
 License:        GPL-2.0
 Group:          System/Kernel
-Version:        4.4.5
+Version:        4.5.0
 %if 0%{?is_kotd}
-Release:        <RELEASE>.g09dee88
+Release:        <RELEASE>.gb2c9ae5
 %else
 Release:        0
 %endif
@@ -94,6 +94,8 @@
 # 11.2 - 11.4, but we primarily care about the supported upgrade path.
 Obsoletes:      %name-base < 3.1
 %endif
+# The following is copied to the -base subpackage as well
+# BEGIN COMMON DEPS
 Requires(pre):  coreutils awk
 # For /usr/lib/module-init-tools/weak-modules2
 Requires(post): suse-module-tools
@@ -116,6 +118,7 @@
 # Install the package providing /etc/SuSE-release early enough, so that
 # the grub entry has correct title (bnc#757565)
 Requires(post): distribution-release
+# END COMMON DEPS
 # Do not install p-b and mkinitrd for the install check, the %post script is
 # able to handle this
 #!BuildIgnore: perl-Bootloader mkinitrd distribution-release
@@ -218,7 +221,7 @@
 Source120:      kabi.tar.bz2
 Source121:      sysctl.tar.bz2
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
+ExclusiveArch:  aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
 %define kmp_target_cpu %_target_cpu
 %ifarch %ix86
 # Only i386/default supports i586, mark other flavors' packages as i686
@@ -344,6 +347,8 @@
 %obsolete_kmp  compat-wireless 3.12
 %obsolete_kmp  rts5229 1.08
 %obsolete_kmp  rts_pstor 1.11
+# sle12-sp1 / Leap 42.1
+%obsolete_kmp  xen 4.6.1
 
 # Provide the exported symbols as "ksym(symbol) = hash"
 %define __find_provides %_sourcedir/find-provides %name
@@ -475,26 +480,20 @@
 fi
 
 # copy module signing certificate(s)
-found_sigkey=false
 for f in %_sourcedir/*.crt; do
     if ! test -e "$f"; then
         continue
     fi
-    if test "${f##*/}" = %CONFIG_MODULE_SIG_KEY; then
-        found_sigkey=true
+    case "${f##*/}" in
+    SLES-UEFI*.crt)
+        ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
        cp "$f" .
-    else
+       ;;
+    *)
         cat "$f" >>keyring.crt
-    fi
+        ../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
+    esac
 done
-if ! $found_sigkey; then
-    echo "warning: %CONFIG_MODULE_SIG_KEY not found"
-    # Let certs/Makefile generate a keypair
-    ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "certs/signing_key.pem"
-fi
-if test -s keyring.crt; then
-    ../scripts/config --set-str SYSTEM_TRUSTED_KEYS_FILENAME "keyring.crt"
-fi
 
 MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
 
@@ -942,9 +941,28 @@
 Provides:       multiversion(kernel)
 Conflicts:      %name = %version-%release
 Requires(pre):  coreutils awk
+# For /usr/lib/module-init-tools/weak-modules2
+Requires(post): suse-module-tools
+# For depmod (modutils is a dependency provided by both module-init-tools and
+# kmod-compat)
 Requires(post): modutils
-Requires(post): perl-Bootloader
+# This Requires is wrong, because the post/postun scripts have a
+# test -x update-bootloader, having perl-Bootloader is not a hard requirement.
+# But, there is no way to tell rpm or yast to schedule the installation
+# of perl-Bootloader before kernel-binary.rpm if both are in the list of
+# packages to install/update. Likewise, this is true for mkinitrd.
+# Need a perl-Bootloader with /usr/lib/bootloader/bootloader_entry
+Requires(post): perl-Bootloader >= 0.4.15
+%if %build_vanilla
 Requires(post): mkinitrd
+%else
+# Require a mkinitrd that can handle usbhid/hid-generic built-in (bnc#773559)
+Requires(post): mkinitrd >= 2.7.1
+%endif
+# Install the package providing /etc/SuSE-release early enough, so that
+# the grub entry has correct title (bnc#757565)
+Requires(post): distribution-release
+
 
 %obsolete_rebuilds %name-base
 %ifarch %ix86
@@ -1015,7 +1033,7 @@
 %if %CONFIG_KMSG_IDS == "y"
 
 %package man
-Summary:        The collection of man pages generated by the kmsg script.
+Summary:        The collection of man pages generated by the kmsg script
 Group:          System/Kernel
 
 %description man

++++++ config.conf ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -17,8 +17,6 @@
 +x86_64        -syms   x86_64/debug
 +x86_64                x86_64/vanilla
 
-+ppc           ppc/default
-+ppc           ppc/vanilla
 +ppc64         ppc64/default
 +ppc64 -syms   ppc64/debug
 +ppc64         ppc64/vanilla

++++++ config.sh ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:46.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:46.000000000 +0100
@@ -1,5 +1,5 @@
 # The version of the main tarball to use
-SRCVERSION=4.4
+SRCVERSION=4.5
 # variant of the kernel-source package, either empty or "-rt"
 VARIANT=
 # buildservice projects to build the kernel against

++++++ config.tar.bz2 ++++++
++++ 32825 lines of diff (skipped)

++++++ kernel-binary.spec.in ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:47.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:47.000000000 +0100
@@ -94,6 +94,8 @@
 # 11.2 - 11.4, but we primarily care about the supported upgrade path.
 Obsoletes:      %name-base < 3.1
 %endif
+# The following is copied to the -base subpackage as well
+# BEGIN COMMON DEPS
 Requires(pre):  coreutils awk
 # For /usr/lib/module-init-tools/weak-modules2
 Requires(post): suse-module-tools
@@ -116,6 +118,7 @@
 # Install the package providing /etc/SuSE-release early enough, so that
 # the grub entry has correct title (bnc#757565)
 Requires(post): distribution-release
+# END COMMON DEPS
 # Do not install p-b and mkinitrd for the install check, the %post script is
 # able to handle this
 #!BuildIgnore: perl-Bootloader mkinitrd distribution-release
@@ -220,6 +223,8 @@
 %obsolete_kmp  compat-wireless 3.12
 %obsolete_kmp  rts5229 1.08
 %obsolete_kmp  rts_pstor 1.11
+# sle12-sp1 / Leap 42.1
+%obsolete_kmp  xen 4.6.1
 
 # Provide the exported symbols as "ksym(symbol) = hash"
 %define __find_provides %_sourcedir/find-provides %name
@@ -351,26 +356,20 @@
 fi
 
 # copy module signing certificate(s)
-found_sigkey=false
 for f in %_sourcedir/*.crt; do
     if ! test -e "$f"; then
         continue
     fi
-    if test "${f##*/}" = %CONFIG_MODULE_SIG_KEY; then
-        found_sigkey=true
+    case "${f##*/}" in
+    SLES-UEFI*.crt)
+        ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "${f##*/}"
        cp "$f" .
-    else
+       ;;
+    *)
         cat "$f" >>keyring.crt
-    fi
+        ../scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS "keyring.crt"
+    esac
 done
-if ! $found_sigkey; then
-    echo "warning: %CONFIG_MODULE_SIG_KEY not found"
-    # Let certs/Makefile generate a keypair
-    ../scripts/config --set-str CONFIG_MODULE_SIG_KEY "certs/signing_key.pem"
-fi
-if test -s keyring.crt; then
-    ../scripts/config --set-str SYSTEM_TRUSTED_KEYS_FILENAME "keyring.crt"
-fi
 
 MAKE_ARGS="$MAKE_ARGS %{?_smp_mflags}"
 
@@ -817,10 +816,7 @@
 Provides:       kernel-base = %version-%source_rel
 Provides:       multiversion(kernel)
 Conflicts:      %name = %version-%release
-Requires(pre):  coreutils awk
-Requires(post): modutils
-Requires(post): perl-Bootloader
-Requires(post): mkinitrd
+@COMMON_DEPS@
 @PROVIDES_OBSOLETES_BASE@
 %obsolete_rebuilds %name-base
 %ifarch %ix86
@@ -891,7 +887,7 @@
 %if %CONFIG_KMSG_IDS == "y"
 
 %package man
-Summary:        The collection of man pages generated by the kmsg script.
+Summary:        The collection of man pages generated by the kmsg script
 Group:          System/Kernel
 
 %description man

++++++ kernel-source.spec.in ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:47.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:47.000000000 +0100
@@ -152,7 +152,7 @@
 %source_timestamp
 
 %package vanilla
-Summary:        Vanilla Linux kernel sources with minor build fixes.
+Summary:        Vanilla Linux kernel sources with minor build fixes
 Group:          Development/Sources
 AutoReqProv:    off
 Provides:       %name-vanilla = %version-%source_rel

++++++ linux-4.4.tar.xz -> linux-4.5.tar.xz ++++++
/work/SRC/openSUSE:Factory/kernel-source/linux-4.4.tar.xz 
/work/SRC/openSUSE:Factory/.kernel-source.new/linux-4.5.tar.xz differ: char 26, 
line 1

++++++ mkspec ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:47.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:47.000000000 +0100
@@ -111,6 +111,7 @@
                SUMMARY => $summary,
                DESCRIPTION => $description,
                ARCHS => join(" ", arch2rpm(@{$flavor_archs{$flavor}})),
+               COMMON_DEPS => $templates{common_deps},
                %obsolete_macros
        );
 }
@@ -208,6 +209,13 @@
                local $/ = undef;
                $res{$template} = <$fh>;
                close($fh);
+               next unless $template eq "binary";
+               if ($res{$template} =~ /^# BEGIN COMMON DEPS\n?(.*)^# END 
COMMON DEPS/ms) {
+                       $res{common_deps} = $1;
+               } else {
+                       print STDERR "warning: Expected # BEGIN COMMON DEPS in 
kernel-binary.spec.in\n";
+                       $res{common_deps} = "";
+               }
        }
        {
                xopen(my $fh, '<', "$dir/constraints.in");

++++++ patches.arch.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.arch/ppc64le-ile-0003-powerpc-Add-hack-to-make-ppc64le-work-on-hosts-witho.patch
 
new/patches.arch/ppc64le-ile-0003-powerpc-Add-hack-to-make-ppc64le-work-on-hosts-witho.patch
--- 
old/patches.arch/ppc64le-ile-0003-powerpc-Add-hack-to-make-ppc64le-work-on-hosts-witho.patch
        2016-01-15 14:18:22.000000000 +0100
+++ 
new/patches.arch/ppc64le-ile-0003-powerpc-Add-hack-to-make-ppc64le-work-on-hosts-witho.patch
        2016-01-26 18:36:00.000000000 +0100
@@ -3,7 +3,7 @@
 Date: Mon, 23 Dec 2013 02:01:01 +0100
 Subject: [PATCH 3/4] powerpc: Add hack to make ppc64le work on hosts without
  ILE
-Patch-Mainline: no
+Patch-Mainline: Submitted, 
https://lists.ozlabs.org/pipermail/linuxppc-dev/2013-December/114140.html
 
 Some hypervisors don't implement the H_SET_MODE hypercall that we
 need to set the ILE bit in LPCR which allows us to execute interrupts
@@ -44,7 +44,7 @@
 +obj-$(CONFIG_PPC_BOOK3S_64)   += fake_ile.o
 +endif
  
- # Disable GCOV in odd or sensitive code
+ # Disable GCOV & sanitizers in odd or sensitive code
  GCOV_PROFILE_prom_init.o := n
 diff --git a/arch/powerpc/kernel/fake_ile.S b/arch/powerpc/kernel/fake_ile.S
 new file mode 100644
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/patches.arch/s390-message-catalog.diff 
new/patches.arch/s390-message-catalog.diff
--- old/patches.arch/s390-message-catalog.diff  2016-01-15 14:18:22.000000000 
+0100
+++ new/patches.arch/s390-message-catalog.diff  2016-01-26 18:36:00.000000000 
+0100
@@ -1,8 +1,7 @@
 From: Gerald Schaefer <geral...@de.ibm.com>
 Subject: Kernel message catalog.
-Patch-mainline: Probably never
+Patch-mainline: No, upstream seems uninterested.
 References: bnc#549193,FATE#306999,LTC#57210
-Patch-mainline: not yet
 
 Description:   Add support for automatic message tags to the printk macro
                 families dev_xyz and pr_xyz. The message tag consists of a
@@ -8076,7 +8075,7 @@
 +#include <linux/device.h>
  
  #include <asm/uaccess.h>
- 
+ #include <asm-generic/sections.h>
 @@ -2520,6 +2522,49 @@ void kmsg_dump_rewind(struct kmsg_dumper
        raw_spin_unlock_irqrestore(&logbuf_lock, flags);
  }

++++++ patches.drivers.tar.bz2 ++++++
++++ 5514 lines of diff (skipped)

++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/0001-drm-i915-Fix-double-unref-in-intelfb_alloc-failure-p.patch
 
new/patches.fixes/0001-drm-i915-Fix-double-unref-in-intelfb_alloc-failure-p.patch
--- 
old/patches.fixes/0001-drm-i915-Fix-double-unref-in-intelfb_alloc-failure-p.patch
   2016-03-04 09:07:00.000000000 +0100
+++ 
new/patches.fixes/0001-drm-i915-Fix-double-unref-in-intelfb_alloc-failure-p.patch
   1970-01-01 01:00:00.000000000 +0100
@@ -1,51 +0,0 @@
-From: Lukas Wunner <lu...@wunner.de>
-Date: Thu, 22 Oct 2015 13:37:18 +0200
-Subject: drm/i915: Fix double unref in intelfb_alloc failure path
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Git-commit: ca40ba855c9e3f19f2715fd8a1ced5128359d3d9
-Patch-mainline: v4.5-rc1
-References: bnc#962866
-
-In intelfb_alloc(), if the call to intel_pin_and_fence_fb_obj() fails,
-the bo is unrefed twice: By drm_framebuffer_remove() and once more by
-drm_gem_object_unreference(). Fix it.
-
-Reported-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
-Signed-off-by: Lukas Wunner <lu...@wunner.de>
-Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>
-Link: 
http://patchwork.freedesktop.org/patch/msgid/cd7b33330621a350b0159ec5e098297b139cfaf7.1446892879.git.lu...@wunner.de
-Signed-off-by: Jani Nikula <jani.nik...@intel.com>
-Signed-off-by: Jiri Slaby <jsl...@suse.cz>
----
- drivers/gpu/drm/i915/intel_fbdev.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_fbdev.c 
b/drivers/gpu/drm/i915/intel_fbdev.c
-index 4fd5fdfef6bd..ec82b51dde3d 100644
---- a/drivers/gpu/drm/i915/intel_fbdev.c
-+++ b/drivers/gpu/drm/i915/intel_fbdev.c
-@@ -156,8 +156,9 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
- 
-       fb = __intel_framebuffer_create(dev, &mode_cmd, obj);
-       if (IS_ERR(fb)) {
-+              drm_gem_object_unreference(&obj->base);
-               ret = PTR_ERR(fb);
--              goto out_unref;
-+              goto out;
-       }
- 
-       /* Flush everything out, we'll be doing GTT only from now on */
-@@ -173,8 +174,6 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
- 
- out_fb:
-       drm_framebuffer_remove(fb);
--out_unref:
--      drm_gem_object_unreference(&obj->base);
- out:
-       return ret;
- }
--- 
-2.7.0
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/0002-drm-i915-Fix-failure-paths-around-initial-fbdev-allo.patch
 
new/patches.fixes/0002-drm-i915-Fix-failure-paths-around-initial-fbdev-allo.patch
--- 
old/patches.fixes/0002-drm-i915-Fix-failure-paths-around-initial-fbdev-allo.patch
   2016-03-04 09:07:00.000000000 +0100
+++ 
new/patches.fixes/0002-drm-i915-Fix-failure-paths-around-initial-fbdev-allo.patch
   1970-01-01 01:00:00.000000000 +0100
@@ -1,149 +0,0 @@
-From: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
-Date: Tue, 30 Jun 2015 10:06:27 +0100
-Subject: drm/i915: Fix failure paths around initial fbdev allocation
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Git-commit: 51f1385b90c1ad30896bd62b1ff97aa4edb1a163
-Patch-mainline: v4.5-rc1
-References: bnc#962866
-
-We had two failure modes here:
-
-1.
-Deadlock in intelfb_alloc failure path where it calls
-drm_framebuffer_remove, which grabs the struct mutex and intelfb_create
-(caller of intelfb_alloc) was already holding it.
-
-2.
-Deadlock in intelfb_create failure path where it calls
-drm_framebuffer_unreference, which grabs the struct mutex and
-intelfb_create was already holding it.
-
-[Daniel Vetter on why struct_mutex needs to be locked in the second half
-of intelfb_create: "The vma [for the fbdev] is pinned, the problem is
-that we re-lookup it a few times, which is racy. We should instead track
-the vma directly, but oh well we don't."]
-
-v2:
-   * Reformat commit msg to 72 chars. (Lukas Wunner)
-   * Add third failure mode. (Lukas Wunner)
-
-v5:
-   * Rebase on drm-intel-nightly 2015y-09m-01d-09h-06m-08s UTC,
-     rephrase commit message. (Jani Nicula)
-
-v6:
-   * In intelfb_alloc, if __intel_framebuffer_create failed,
-     fb will be an ERR_PTR, thus not null. So in the failure
-     path we need to check for IS_ERR_OR_NULL to avoid calling
-     drm_framebuffer_remove on the ERR_PTR. (Lukas Wunner)
-   * Since this is init code a drm_framebuffer_unreference should
-     be all we need. drm_framebuffer_remove is for framebuffers
-     that userspace has created - and is getting somewhat
-     defeatured. (Daniel Vetter)
-
-v7:
-   * Clarify why struct_mutex needs to be locked in the second half
-     of intelfb_create. (Daniel Vetter)
-
-Fixes: 60a5ca015ffd ("drm/i915: Add locking around
-    framebuffer_references--")
-Reported-by: Lukas Wunner <lu...@wunner.de>
-Signed-off-by: Tvrtko Ursulin <tvrtko.ursu...@intel.com>
-[Lukas: Create v3 + v4 + v5 + v6 + v7 based on Tvrtko's v2]
-Signed-off-by: Lukas Wunner <lu...@wunner.de>
-Cc: Chris Wilson <ch...@chris-wilson.co.uk>
-Cc: Ville Syrjälä <ville.syrj...@linux.intel.com>
-Reviewed-by: Daniel Vetter <daniel.vet...@ffwll.ch>
-Link: 
http://patchwork.freedesktop.org/patch/msgid/47d4e88c91b3bf0f7a280cabec54c8c8cf0cf6f2.1446892879.git.lu...@wunner.de
-Signed-off-by: Jani Nikula <jani.nik...@intel.com>
-
-Signed-off-by: Jiri Slaby <jsl...@suse.cz>
----
- drivers/gpu/drm/i915/intel_fbdev.c | 20 ++++++++++++--------
- 1 file changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_fbdev.c 
b/drivers/gpu/drm/i915/intel_fbdev.c
-index ec82b51dde3d..12597b532e0e 100644
---- a/drivers/gpu/drm/i915/intel_fbdev.c
-+++ b/drivers/gpu/drm/i915/intel_fbdev.c
-@@ -119,7 +119,7 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
- {
-       struct intel_fbdev *ifbdev =
-               container_of(helper, struct intel_fbdev, helper);
--      struct drm_framebuffer *fb;
-+      struct drm_framebuffer *fb = NULL;
-       struct drm_device *dev = helper->dev;
-       struct drm_i915_private *dev_priv = to_i915(dev);
-       struct drm_mode_fb_cmd2 mode_cmd = {};
-@@ -138,6 +138,8 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
-       mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
-                                                         sizes->surface_depth);
- 
-+      mutex_lock(&dev->struct_mutex);
-+
-       size = mode_cmd.pitches[0] * mode_cmd.height;
-       size = PAGE_ALIGN(size);
- 
-@@ -165,16 +167,19 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
-       ret = intel_pin_and_fence_fb_obj(NULL, fb, NULL, NULL, NULL);
-       if (ret) {
-               DRM_ERROR("failed to pin obj: %d\n", ret);
--              goto out_fb;
-+              goto out;
-       }
- 
-+      mutex_unlock(&dev->struct_mutex);
-+
-       ifbdev->fb = to_intel_framebuffer(fb);
- 
-       return 0;
- 
--out_fb:
--      drm_framebuffer_remove(fb);
- out:
-+      mutex_unlock(&dev->struct_mutex);
-+      if (!IS_ERR_OR_NULL(fb))
-+              drm_framebuffer_unreference(fb);
-       return ret;
- }
- 
-@@ -192,8 +197,6 @@ static int intelfb_create(struct drm_fb_helper *helper,
-       int size, ret;
-       bool prealloc = false;
- 
--      mutex_lock(&dev->struct_mutex);
--
-       if (intel_fb &&
-           (sizes->fb_width > intel_fb->base.width ||
-            sizes->fb_height > intel_fb->base.height)) {
-@@ -208,7 +211,7 @@ static int intelfb_create(struct drm_fb_helper *helper,
-               DRM_DEBUG_KMS("no BIOS fb, allocating a new one\n");
-               ret = intelfb_alloc(helper, sizes);
-               if (ret)
--                      goto out_unlock;
-+                      return ret;
-               intel_fb = ifbdev->fb;
-       } else {
-               DRM_DEBUG_KMS("re-using BIOS fb\n");
-@@ -220,6 +223,8 @@ static int intelfb_create(struct drm_fb_helper *helper,
-       obj = intel_fb->obj;
-       size = obj->base.size;
- 
-+      mutex_lock(&dev->struct_mutex);
-+
-       info = drm_fb_helper_alloc_fbi(helper);
-       if (IS_ERR(info)) {
-               ret = PTR_ERR(info);
-@@ -281,7 +286,6 @@ out_destroy_fbi:
- out_unpin:
-       i915_gem_object_ggtt_unpin(obj);
-       drm_gem_object_unreference(&obj->base);
--out_unlock:
-       mutex_unlock(&dev->struct_mutex);
-       return ret;
- }
--- 
-2.7.0
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/0003-drm-i915-Pin-the-ifbdev-for-the-info-system_base-GGT.patch
 
new/patches.fixes/0003-drm-i915-Pin-the-ifbdev-for-the-info-system_base-GGT.patch
--- 
old/patches.fixes/0003-drm-i915-Pin-the-ifbdev-for-the-info-system_base-GGT.patch
   2016-03-04 09:07:00.000000000 +0100
+++ 
new/patches.fixes/0003-drm-i915-Pin-the-ifbdev-for-the-info-system_base-GGT.patch
   1970-01-01 01:00:00.000000000 +0100
@@ -1,100 +0,0 @@
-From: Chris Wilson <ch...@chris-wilson.co.uk>
-Date: Fri, 4 Dec 2015 16:05:26 +0000
-Subject: drm/i915: Pin the ifbdev for the info->system_base GGTT mmapping
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Git-commit: 0c82312f3f15538f4e6ceda2a82caee8fbac4501
-Patch-mainline: v4.5-rc1
-References: bnc#962866
-
-A long time ago (before 3.14) we relied on a permanent pinning of the
-ifbdev to lock the fb in place inside the GGTT. However, the
-introduction of stealing the BIOS framebuffer and reusing its address in
-the GGTT for the fbdev has muddied waters and we use an inherited fb.
-However, the inherited fb is only pinned whilst it is active and we no
-longer have an explicit pin for the info->system_base mmapping used by
-the fbdev. The result is that after some aperture pressure the fbdev may
-be evicted, but we continue to write the fbcon into the same GGTT
-address - overwriting anything else that may be put into that offset.
-The effect is most pronounced across suspend/resume as
-intel_fbdev_set_suspend() does a full clear over the whole scanout.
-
-v2: Only unpin the intel_fb is we allocate it. If we inherit the fb from
-the BIOS, we do not own the pinned vma (except for the reference we add
-in this patch for our access via info->screen_base).
-
-v3: Finish balancing the vma pinning for the normal !preallocated case.
-
-v4: Try to simplify the pinning even further.
-v5: Leak the VMA (cleaned up by object-free) to avoid complicated error paths.
-
-Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk>
-Cc: "Goel, Akash" <akash.g...@intel.com>
-Cc: Daniel Vetter <daniel.vet...@ffwll.ch>
-Cc: Jesse Barnes <jbar...@virtuousgeek.org>
-Cc: Lukas Wunner <lu...@wunner.de>
-Cc: drm-intel-fi...@lists.freedesktop.org
-Link: 
http://patchwork.freedesktop.org/patch/msgid/1449245126-26158-1-git-send-email-ch...@chris-wilson.co.uk
-Tested-by: Ville Syrjälä <ville.syrj...@linux.intel.com>
-Signed-off-by: Daniel Vetter <daniel.vet...@ffwll.ch>
-Signed-off-by: Jiri Slaby <jsl...@suse.cz>
----
- drivers/gpu/drm/i915/intel_fbdev.c | 20 +++++++++++++-------
- 1 file changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_fbdev.c 
b/drivers/gpu/drm/i915/intel_fbdev.c
-index 12597b532e0e..0722acc1599e 100644
---- a/drivers/gpu/drm/i915/intel_fbdev.c
-+++ b/drivers/gpu/drm/i915/intel_fbdev.c
-@@ -163,13 +163,6 @@ static int intelfb_alloc(struct drm_fb_helper *helper,
-               goto out;
-       }
- 
--      /* Flush everything out, we'll be doing GTT only from now on */
--      ret = intel_pin_and_fence_fb_obj(NULL, fb, NULL, NULL, NULL);
--      if (ret) {
--              DRM_ERROR("failed to pin obj: %d\n", ret);
--              goto out;
--      }
--
-       mutex_unlock(&dev->struct_mutex);
- 
-       ifbdev->fb = to_intel_framebuffer(fb);
-@@ -225,6 +218,14 @@ static int intelfb_create(struct drm_fb_helper *helper,
- 
-       mutex_lock(&dev->struct_mutex);
- 
-+      /* Pin the GGTT vma for our access via info->screen_base.
-+       * This also validates that any existing fb inherited from the
-+       * BIOS is suitable for own access.
-+       */
-+      ret = intel_pin_and_fence_fb_obj(NULL, &ifbdev->fb->base, NULL, NULL, 
NULL);
-+      if (ret)
-+              goto out_unlock;
-+
-       info = drm_fb_helper_alloc_fbi(helper);
-       if (IS_ERR(info)) {
-               ret = PTR_ERR(info);
-@@ -286,6 +287,7 @@ out_destroy_fbi:
- out_unpin:
-       i915_gem_object_ggtt_unpin(obj);
-       drm_gem_object_unreference(&obj->base);
-+out_unlock:
-       mutex_unlock(&dev->struct_mutex);
-       return ret;
- }
-@@ -523,6 +525,10 @@ static const struct drm_fb_helper_funcs 
intel_fb_helper_funcs = {
- static void intel_fbdev_destroy(struct drm_device *dev,
-                               struct intel_fbdev *ifbdev)
- {
-+      /* We rely on the object-free to release the VMA pinning for
-+       * the info->screen_base mmaping. Leaking the VMA is simpler than
-+       * trying to rectify all the possible error paths leading here.
-+       */
- 
-       drm_fb_helper_unregister_fbi(&ifbdev->helper);
-       drm_fb_helper_release_fbi(&ifbdev->helper);
--- 
-2.7.0
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/drm-radeon-Update-radeon_get_vblank_counter_kms.patch 
new/patches.fixes/drm-radeon-Update-radeon_get_vblank_counter_kms.patch
--- old/patches.fixes/drm-radeon-Update-radeon_get_vblank_counter_kms.patch     
2016-03-04 09:07:00.000000000 +0100
+++ new/patches.fixes/drm-radeon-Update-radeon_get_vblank_counter_kms.patch     
1970-01-01 01:00:00.000000000 +0100
@@ -1,109 +0,0 @@
-From: Thierry Reding <tred...@nvidia.com>
-Date: Wed, 16 Dec 2015 15:31:47 +0100
-Subject: drm/radeon: Update radeon_get_vblank_counter_kms()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-Git-commit: 4e926d2db58244fca9845c78a5d6f873ac73795b
-Patch-mainline: v4.5-rc1
-References: bnc#962535
-
-Commit 88e72717c2de ("drm/irq: Use unsigned int pipe in public API")
-updated the prototype of this function but not the implementation. This
-wasn't noticed even through compile tests because the prototype is part
-of the source file that uses it and hence the compiler won't know the
-prototype when it compiles the implementation.
-
-The right thing would've been to move the prototype to a header that's
-included in radeon_kms.c so that the implementation signature could be
-checked against it, but the closest thing would've been radeon_drv.h
-and including that results in a lot of build errors, so we'll leave it
-as is for now.
-
-Cc: Christian König <christian.koe...@amd.com>
-Cc: Alex Deucher <alexander.deuc...@amd.com>
-Reviewed-by: Christian König <christian.koe...@amd.com>
-Signed-off-by: Thierry Reding <tred...@nvidia.com>
-Signed-off-by: Alex Deucher <alexander.deuc...@amd.com>
-Signed-off-by: Jiri Slaby <jsl...@suse.cz>
----
- drivers/gpu/drm/radeon/radeon_kms.c | 24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_kms.c 
b/drivers/gpu/drm/radeon/radeon_kms.c
-index d290a8a09036..4fab44e0f36b 100644
---- a/drivers/gpu/drm/radeon/radeon_kms.c
-+++ b/drivers/gpu/drm/radeon/radeon_kms.c
-@@ -748,19 +748,19 @@ void radeon_driver_preclose_kms(struct drm_device *dev,
-  * radeon_get_vblank_counter_kms - get frame count
-  *
-  * @dev: drm dev pointer
-- * @crtc: crtc to get the frame count from
-+ * @pipe: crtc to get the frame count from
-  *
-  * Gets the frame count on the requested crtc (all asics).
-  * Returns frame count on success, -EINVAL on failure.
-  */
--u32 radeon_get_vblank_counter_kms(struct drm_device *dev, int crtc)
-+u32 radeon_get_vblank_counter_kms(struct drm_device *dev, unsigned int pipe)
- {
-       int vpos, hpos, stat;
-       u32 count;
-       struct radeon_device *rdev = dev->dev_private;
- 
--      if (crtc < 0 || crtc >= rdev->num_crtc) {
--              DRM_ERROR("Invalid crtc %d\n", crtc);
-+      if (pipe < 0 || pipe >= rdev->num_crtc) {
-+              DRM_ERROR("Invalid crtc %u\n", pipe);
-               return -EINVAL;
-       }
- 
-@@ -772,29 +772,29 @@ u32 radeon_get_vblank_counter_kms(struct drm_device 
*dev, int crtc)
-        * and start of vsync, so vpos >= 0 means to bump the hw frame counter
-        * result by 1 to give the proper appearance to caller.
-        */
--      if (rdev->mode_info.crtcs[crtc]) {
-+      if (rdev->mode_info.crtcs[pipe]) {
-               /* Repeat readout if needed to provide stable result if
-                * we cross start of vsync during the queries.
-                */
-               do {
--                      count = radeon_get_vblank_counter(rdev, crtc);
-+                      count = radeon_get_vblank_counter(rdev, pipe);
-                       /* Ask radeon_get_crtc_scanoutpos to return vpos as
-                        * distance to start of vblank, instead of regular
-                        * vertical scanout pos.
-                        */
-                       stat = radeon_get_crtc_scanoutpos(
--                              dev, crtc, GET_DISTANCE_TO_VBLANKSTART,
-+                              dev, pipe, GET_DISTANCE_TO_VBLANKSTART,
-                               &vpos, &hpos, NULL, NULL,
--                              &rdev->mode_info.crtcs[crtc]->base.hwmode);
--              } while (count != radeon_get_vblank_counter(rdev, crtc));
-+                              &rdev->mode_info.crtcs[pipe]->base.hwmode);
-+              } while (count != radeon_get_vblank_counter(rdev, pipe));
- 
-               if (((stat & (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE)) 
!=
-                   (DRM_SCANOUTPOS_VALID | DRM_SCANOUTPOS_ACCURATE))) {
-                       DRM_DEBUG_VBL("Query failed! stat %d\n", stat);
-               }
-               else {
--                      DRM_DEBUG_VBL("crtc %d: dist from vblank start %d\n",
--                                    crtc, vpos);
-+                      DRM_DEBUG_VBL("crtc %u: dist from vblank start %d\n",
-+                                    pipe, vpos);
- 
-                       /* Bump counter if we are at >= leading edge of vblank,
-                        * but before vsync where vpos would turn negative and
-@@ -806,7 +806,7 @@ u32 radeon_get_vblank_counter_kms(struct drm_device *dev, 
int crtc)
-       }
-       else {
-           /* Fallback to use value as is. */
--          count = radeon_get_vblank_counter(rdev, crtc);
-+          count = radeon_get_vblank_counter(rdev, pipe);
-           DRM_DEBUG_VBL("NULL mode info! Returned count may be wrong.\n");
-       }
- 
--- 
-2.7.0
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/floppy-fix-lock_fdc-signal-handling.patch 
new/patches.fixes/floppy-fix-lock_fdc-signal-handling.patch
--- old/patches.fixes/floppy-fix-lock_fdc-signal-handling.patch 2016-03-04 
09:07:00.000000000 +0100
+++ new/patches.fixes/floppy-fix-lock_fdc-signal-handling.patch 1970-01-01 
01:00:00.000000000 +0100
@@ -1,179 +0,0 @@
-From: Jiri Kosina <jkos...@suse.cz>
-Date: Mon, 1 Feb 2016 11:19:17 +0100
-Subject: floppy: fix lock_fdc() signal handling
-Patch-mainline: 4.5-rc5
-Git-commit: a0c80efe5956ccce9fe7ae5c78542578c07bc20a
-References: bnc#966880
-
-floppy_revalidate() doesn't perform any error handling on lock_fdc()
-result. lock_fdc() might actually be interrupted by a signal (it waits for
-fdc becoming non-busy interruptibly). In such case, floppy_revalidate()
-proceeds as if it had claimed the lock, but it fact it doesn't.
-
-In case of multiple threads trying to open("/dev/fdX"), this leads to
-serious corruptions all over the place, because all of a sudden there is
-no critical section protection (that'd otherwise be guaranteed by locked
-fd) whatsoever.
-
-While at this, fix the fact that the 'interruptible' parameter to
-lock_fdc() doesn't make any sense whatsoever, because we always wait
-interruptibly anyway.
-
-Most of the lock_fdc() callsites do properly handle error (and propagate
-EINTR), but floppy_revalidate() and floppy_check_events() don't. Fix this.
-
-Spotted by 'syzkaller' tool.
-
-Reported-by: Dmitry Vyukov <dvyu...@google.com>
-Tested-by: Dmitry Vyukov <dvyu...@google.com>
-Signed-off-by: Jiri Kosina <jkos...@suse.cz>
-Signed-off-by: Jiri Slaby <jsl...@suse.cz>
----
- drivers/block/floppy.c | 33 ++++++++++++++++++---------------
- 1 file changed, 18 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
-index fa9bb742df6e..c1aacca88c8f 100644
---- a/drivers/block/floppy.c
-+++ b/drivers/block/floppy.c
-@@ -866,7 +866,7 @@ static void set_fdc(int drive)
- }
- 
- /* locks the driver */
--static int lock_fdc(int drive, bool interruptible)
-+static int lock_fdc(int drive)
- {
-       if (WARN(atomic_read(&usage_count) == 0,
-                "Trying to lock fdc while usage count=0\n"))
-@@ -2173,7 +2173,7 @@ static int do_format(int drive, struct format_descr 
*tmp_format_req)
- {
-       int ret;
- 
--      if (lock_fdc(drive, true))
-+      if (lock_fdc(drive))
-               return -EINTR;
- 
-       set_floppy(drive);
-@@ -2960,7 +2960,7 @@ static int user_reset_fdc(int drive, int arg, bool 
interruptible)
- {
-       int ret;
- 
--      if (lock_fdc(drive, interruptible))
-+      if (lock_fdc(drive))
-               return -EINTR;
- 
-       if (arg == FD_RESET_ALWAYS)
-@@ -3243,7 +3243,7 @@ static int set_geometry(unsigned int cmd, struct 
floppy_struct *g,
-               if (!capable(CAP_SYS_ADMIN))
-                       return -EPERM;
-               mutex_lock(&open_lock);
--              if (lock_fdc(drive, true)) {
-+              if (lock_fdc(drive)) {
-                       mutex_unlock(&open_lock);
-                       return -EINTR;
-               }
-@@ -3263,7 +3263,7 @@ static int set_geometry(unsigned int cmd, struct 
floppy_struct *g,
-       } else {
-               int oldStretch;
- 
--              if (lock_fdc(drive, true))
-+              if (lock_fdc(drive))
-                       return -EINTR;
-               if (cmd != FDDEFPRM) {
-                       /* notice a disk change immediately, else
-@@ -3349,7 +3349,7 @@ static int get_floppy_geometry(int drive, int type, 
struct floppy_struct **g)
-       if (type)
-               *g = &floppy_type[type];
-       else {
--              if (lock_fdc(drive, false))
-+              if (lock_fdc(drive))
-                       return -EINTR;
-               if (poll_drive(false, 0) == -EINTR)
-                       return -EINTR;
-@@ -3433,7 +3433,7 @@ static int fd_locked_ioctl(struct block_device *bdev, 
fmode_t mode, unsigned int
-               if (UDRS->fd_ref != 1)
-                       /* somebody else has this drive open */
-                       return -EBUSY;
--              if (lock_fdc(drive, true))
-+              if (lock_fdc(drive))
-                       return -EINTR;
- 
-               /* do the actual eject. Fails on
-@@ -3445,7 +3445,7 @@ static int fd_locked_ioctl(struct block_device *bdev, 
fmode_t mode, unsigned int
-               process_fd_request();
-               return ret;
-       case FDCLRPRM:
--              if (lock_fdc(drive, true))
-+              if (lock_fdc(drive))
-                       return -EINTR;
-               current_type[drive] = NULL;
-               floppy_sizes[drive] = MAX_DISK_SIZE << 1;
-@@ -3467,7 +3467,7 @@ static int fd_locked_ioctl(struct block_device *bdev, 
fmode_t mode, unsigned int
-               UDP->flags &= ~FTD_MSG;
-               return 0;
-       case FDFMTBEG:
--              if (lock_fdc(drive, true))
-+              if (lock_fdc(drive))
-                       return -EINTR;
-               if (poll_drive(true, FD_RAW_NEED_DISK) == -EINTR)
-                       return -EINTR;
-@@ -3484,7 +3484,7 @@ static int fd_locked_ioctl(struct block_device *bdev, 
fmode_t mode, unsigned int
-               return do_format(drive, &inparam.f);
-       case FDFMTEND:
-       case FDFLUSH:
--              if (lock_fdc(drive, true))
-+              if (lock_fdc(drive))
-                       return -EINTR;
-               return invalidate_drive(bdev);
-       case FDSETEMSGTRESH:
-@@ -3507,7 +3507,7 @@ static int fd_locked_ioctl(struct block_device *bdev, 
fmode_t mode, unsigned int
-               outparam = UDP;
-               break;
-       case FDPOLLDRVSTAT:
--              if (lock_fdc(drive, true))
-+              if (lock_fdc(drive))
-                       return -EINTR;
-               if (poll_drive(true, FD_RAW_NEED_DISK) == -EINTR)
-                       return -EINTR;
-@@ -3530,7 +3530,7 @@ static int fd_locked_ioctl(struct block_device *bdev, 
fmode_t mode, unsigned int
-       case FDRAWCMD:
-               if (type)
-                       return -EINVAL;
--              if (lock_fdc(drive, true))
-+              if (lock_fdc(drive))
-                       return -EINTR;
-               set_floppy(drive);
-               i = raw_cmd_ioctl(cmd, (void __user *)param);
-@@ -3539,7 +3539,7 @@ static int fd_locked_ioctl(struct block_device *bdev, 
fmode_t mode, unsigned int
-               process_fd_request();
-               return i;
-       case FDTWADDLE:
--              if (lock_fdc(drive, true))
-+              if (lock_fdc(drive))
-                       return -EINTR;
-               twaddle();
-               process_fd_request();
-@@ -3747,7 +3747,8 @@ static unsigned int floppy_check_events(struct gendisk 
*disk,
-               return DISK_EVENT_MEDIA_CHANGE;
- 
-       if (time_after(jiffies, UDRS->last_checked + UDP->checkfreq)) {
--              lock_fdc(drive, false);
-+              if (lock_fdc(drive))
-+                      return -EINTR;
-               poll_drive(false, 0);
-               process_fd_request();
-       }
-@@ -3845,7 +3846,9 @@ static int floppy_revalidate(struct gendisk *disk)
-                        "VFS: revalidate called on non-open device.\n"))
-                       return -EFAULT;
- 
--              lock_fdc(drive, false);
-+              res = lock_fdc(drive);
-+              if (res)
-+                      return res;
-               cf = (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags) ||
-                     test_bit(FD_VERIFY_BIT, &UDRS->flags));
-               if (!(cf || test_bit(drive, &fake_change) || 
drive_no_geom(drive))) {
--- 
-2.7.1
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/floppy-refactor-open-flags-handling.patch 
new/patches.fixes/floppy-refactor-open-flags-handling.patch
--- old/patches.fixes/floppy-refactor-open-flags-handling.patch 2016-03-04 
09:07:00.000000000 +0100
+++ new/patches.fixes/floppy-refactor-open-flags-handling.patch 1970-01-01 
01:00:00.000000000 +0100
@@ -1,96 +0,0 @@
-From: Jiri Kosina <jkos...@suse.cz>
-Date: Sat, 6 Feb 2016 23:00:22 +0100
-Subject: floppy: refactor open() flags handling
-Patch-mainline: 4.5-rc5
-Git-commit: 09954bad448791ef01202351d437abdd9497a804
-References: bnc#966880
-
-In case /dev/fdX is open with O_NDELAY / O_NONBLOCK, floppy_open() immediately
-succeeds, without performing any further media / controller preparations.
-That's "correct" wrt. the NODELAY flag, but is hardly correct wrt. the rest
-of the floppy driver, that is not really O_NONBLOCK ready, at all. Therefore
-it's not too surprising, that subsequent attempts to work with the
-filedescriptor produce bad results. Namely, syzkaller tool has been able
-to livelock mmap() on the returned fd to keep waiting on the page unlock
-bit forever.
-
-Quite frankly, I have trouble defining what non-blocking behavior would be for
-floppies. Is waiting ages for the driver to actually succeed reading a sector
-blocking operation? Is waiting for drive motor to start blocking operation? How
-about in case of virtualized floppies?
-
-One option would be returning EWOULDBLOCK in case O_NDLEAY / O_NONBLOCK is
-being passed to open(). That has a theoretical potential of breaking some
-arcane and archaic userspace though.
-
-Let's take a more conservative aproach, and accept the O_NDLEAY flag, and let
-the driver behave as usual.
-
-While at it, clean up a bit handling of !(mode & (FMODE_READ|FMODE_WRITE))
-case and return EINVAL instead of succeeding as well.
-
-Spotted by syzkaller tool.
-
-Reported-by: Dmitry Vyukov <dvyu...@google.com>
-Tested-by: Dmitry Vyukov <dvyu...@google.com>
-Signed-off-by: Jiri Kosina <jkos...@suse.cz>
-Signed-off-by: Jiri Slaby <jsl...@suse.cz>
----
- drivers/block/floppy.c | 34 +++++++++++++++++++---------------
- 1 file changed, 19 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
-index b206115d761c..84708a5f8c52 100644
---- a/drivers/block/floppy.c
-+++ b/drivers/block/floppy.c
-@@ -3663,6 +3663,11 @@ static int floppy_open(struct block_device *bdev, 
fmode_t mode)
- 
-       opened_bdev[drive] = bdev;
- 
-+      if (!(mode & (FMODE_READ|FMODE_WRITE))) {
-+              res = -EINVAL;
-+              goto out;
-+      }
-+
-       res = -ENXIO;
- 
-       if (!floppy_track_buffer) {
-@@ -3706,21 +3711,20 @@ static int floppy_open(struct block_device *bdev, 
fmode_t mode)
-       if (UFDCS->rawcmd == 1)
-               UFDCS->rawcmd = 2;
- 
--      if (!(mode & FMODE_NDELAY)) {
--              if (mode & (FMODE_READ|FMODE_WRITE)) {
--                      UDRS->last_checked = 0;
--                      clear_bit(FD_OPEN_SHOULD_FAIL_BIT, &UDRS->flags);
--                      check_disk_change(bdev);
--                      if (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags))
--                              goto out;
--                      if (test_bit(FD_OPEN_SHOULD_FAIL_BIT, &UDRS->flags))
--                              goto out;
--              }
--              res = -EROFS;
--              if ((mode & FMODE_WRITE) &&
--                  !test_bit(FD_DISK_WRITABLE_BIT, &UDRS->flags))
--                      goto out;
--      }
-+      UDRS->last_checked = 0;
-+      clear_bit(FD_OPEN_SHOULD_FAIL_BIT, &UDRS->flags);
-+      check_disk_change(bdev);
-+      if (test_bit(FD_DISK_CHANGED_BIT, &UDRS->flags))
-+              goto out;
-+      if (test_bit(FD_OPEN_SHOULD_FAIL_BIT, &UDRS->flags))
-+              goto out;
-+
-+      res = -EROFS;
-+
-+      if ((mode & FMODE_WRITE) &&
-+                      !test_bit(FD_DISK_WRITABLE_BIT, &UDRS->flags))
-+              goto out;
-+
-       mutex_unlock(&open_lock);
-       mutex_unlock(&floppy_mutex);
-       return 0;
--- 
-2.7.1
-
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      
2016-03-04 09:07:00.000000000 +0100
+++ new/patches.fixes/hwrng-core-sleep-interruptible-in-read.patch      
1970-01-01 01:00:00.000000000 +0100
@@ -1,65 +0,0 @@
-From: Jiri Slaby <jsl...@suse.cz>
-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 <jsl...@suse.cz>
-Cc: Matt Mackall <m...@selenic.com>
-Cc: Herbert Xu <herb...@gondor.apana.org.au>
-Cc: <linux-cry...@vger.kernel.org>
-Signed-off-by: Herbert Xu <herb...@gondor.apana.org.au>
----
- 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/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        
2016-03-04 09:07:00.000000000 +0100
+++ new/patches.fixes/scsi-ignore-errors-from-scsi_dh_add_device        
1970-01-01 01:00:00.000000000 +0100
@@ -1,41 +0,0 @@
-From 221255aee67ec1c752001080aafec0c4e9390d95 Mon Sep 17 00:00:00 2001
-From: Hannes Reinecke <h...@suse.de>
-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 <jthumsh...@suse.com>
-Reviewed-by: Christoph Hellwig <h...@lst.de>
-Signed-off-by: Hannes Reinecke <h...@suse.de>
-Signed-off-by: Martin K. Petersen <martin.peter...@oracle.com>
-Acked-by: Takashi Iwai <ti...@suse.de>
-
----
- 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.kernel.org.tar.bz2 ++++++
++++ 30307 lines of diff (skipped)

++++++ patches.suse.tar.bz2 ++++++
++++ 5533 lines of diff (skipped)

++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:48.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:48.000000000 +0100
@@ -27,11 +27,6 @@
        # DO NOT MODIFY THEM!
        # Send separate patches upstream if you find a problem...
        ########################################################
-       patches.kernel.org/patch-4.4.1
-       patches.kernel.org/patch-4.4.1-2
-       patches.kernel.org/patch-4.4.2-3
-       patches.kernel.org/patch-4.4.3-4
-       patches.kernel.org/patch-4.4.4-5
 
        ########################################################
        # Build fixes that apply to the vanilla kernel too.
@@ -74,6 +69,7 @@
        ########################################################
        # Bug workarounds for binutils
        ########################################################
+       patches.suse/binutils2_26.patch
 
        ########################################################
        # Scheduler / Core
@@ -143,7 +139,6 @@
        
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
        ########################################################
@@ -161,7 +156,7 @@
        patches.arch/arm-exynos-dwmmc-modalias.patch
        
patches.arch/arm64-0001-usb-Add-support-for-Synopsis-H20AHB-EHCI-host-contro.patch
        patches.arch/arm64-0002-usb-fix-hcd-h20ahb-driver-depends.patch
-       patches.arch/arm64-0004-net-xgbe-Add-A0-silicon-support.patch
++needs_update  patches.arch/arm64-0004-net-xgbe-Add-A0-silicon-support.patch
        
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
 
@@ -194,6 +189,7 @@
        ########################################################
        patches.suse/connector-read-mostly
        patches.suse/kbd-ignore-gfx.patch
+       patches.suse/xen-pv-devmem_is_allowed.patch
 
        ########################################################
        #
@@ -324,28 +320,9 @@
        patches.fixes/scsi-ibmvscsi-module_alias.patch
        patches.suse/sd_init.mark_majors_busy.patch
 
-
-       patches.fixes/scsi-ignore-errors-from-scsi_dh_add_device
-
-       patches.fixes/floppy-refactor-open-flags-handling.patch
-       patches.fixes/floppy-fix-lock_fdc-signal-handling.patch
-
        ########################################################
        # DRM/Video
        ########################################################
-       patches.fixes/drm-radeon-Update-radeon_get_vblank_counter_kms.patch
-       
patches.fixes/0001-drm-i915-Fix-double-unref-in-intelfb_alloc-failure-p.patch
-       
patches.fixes/0002-drm-i915-Fix-failure-paths-around-initial-fbdev-allo.patch
-       
patches.fixes/0003-drm-i915-Pin-the-ifbdev-for-the-info-system_base-GGT.patch
-
-
-       patches.drivers/drm-radeon-Use-unlocked-gem-unreferencing
-       patches.drivers/drm-radeon-only-increment-sync_seq-when-a-fence-is-r
-       patches.drivers/drm-radeon-fix-dp-link-rate-selection-v2
-       patches.drivers/drm-radeon-Ensure-radeon-bo-is-unreserved-in-radeon_
-       patches.drivers/drm-radeon-only-init-fbdev-if-we-have-connectors
-       patches.drivers/drm-radeon-pm-Handle-failure-of-drm_vblank_get
-       patches.drivers/radeon-r100-Silence-may-be-used-uninitialized-warnin
 
        ########################################################
        # video4linux
@@ -354,7 +331,6 @@
        ########################################################
        # Network
        ########################################################
-       patches.drivers/ethernet-atheros-alx-sanitize-buffer-sizing-and-padd
 
        ########################################################
        # Wireless Networking
@@ -395,6 +371,8 @@
        ##########################################################
        # Sound
        ##########################################################
+       patches.drivers/ALSA-usb-audio-Fix-NULL-dereference-in-create_fixed
+       patches.drivers/ALSA-usb-audio-Add-sanity-checks-for-endpoint-access
 
        ########################################################
        # Char / serial
@@ -407,8 +385,6 @@
        # 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
        ########################################################
@@ -439,8 +415,6 @@
        #
        ##########################################################
 
-       # CVE-2016-0728: kernel: Use-after-free vulnerability in keyring 
facility
-
        ##########################################################
        # Audit
        ##########################################################
@@ -466,7 +440,8 @@
        ########################################################
        patches.suse/crasher.patch
        
patches.suse/revert-x86-remove-warning-and-warning_symbol-from-struct-stacktrace_ops
-       patches.suse/stack-unwind
+       patches.suse/stack-unwind.patch
+       patches.suse/stack-unwind-disable-kasan.patch
 +needs_updating        patches.arch/x86_64-unwind-annotations
 
        ########################################################

++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.9DSBad/_old  2016-03-17 16:49:48.000000000 +0100
+++ /var/tmp/diff_new_pack.9DSBad/_new  2016-03-17 16:49:48.000000000 +0100
@@ -1,3 +1,3 @@
-2016-03-10 08:24:48 +0100
-GIT Revision: 09dee88f33e09ab5c57a616ab5aebb07be941a87
+2016-03-16 18:30:21 +0100
+GIT Revision: b2c9ae5b1d122fe7e8501364ef1b9943207731e1
 GIT Branch: stable


Reply via email to