Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2015-10-01 09:28:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 2015-09-02 00:35:00.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2015-10-01 09:28:36.000000000 +0200
@@ -1,0 +2,189 @@
+Fri Sep 25 10:21:54 CEST 2015 - tiwai@suse.de
+
+- ALSA: hda - Disable power_save_node for Thinkpads (bsc#943982).
+- commit 6996a42
+
+-------------------------------------------------------------------
+Tue Sep 22 21:52:03 CEST 2015 - jslaby@suse.cz
+
+- Refresh patches.xen/xen3-stack-unwind.
+ XEN needs a fix for stack unwinder too.
+- commit 9c7cacf
+
+-------------------------------------------------------------------
+Tue Sep 22 16:49:30 CEST 2015 - jslaby@suse.cz
+
+- Update config files.
+- Refresh patches.suse/stack-unwind.
+- Refresh patches.xen/xen3-patch-2.6.27.
+ Reenable dwarf stack unwinder for C. Assembler is not dwarf-friendly
+ annotated (removed in upstream and neither
+ patches.arch/x86_64-unwind-annotations is enabled (yet)), so dwarf
+ unwinder does not work there (yet).
+ This should be fixed by Josh Poimbeouf's stacktool later. But until
+ then, dwarf-unwind at least C and use frame pointers for asm.
+ I.e. no more question marks for most cases:
+ [<ffffffff81008415>] try_stack_unwind+0x175/0x190
+ [<ffffffff81007293>] dump_trace+0x93/0x3a0
+ [<ffffffff8100847b>] show_trace_log_lvl+0x4b/0x60
+ [<ffffffff810076ac>] show_stack_log_lvl+0x10c/0x180
+ [<ffffffff81008515>] show_stack+0x25/0x50
+ [<ffffffff81364619>] dump_stack+0x4b/0x72
+ [<ffffffffa01a302e>] init1+0xe/0x20 [aaa]
+ [<ffffffff810002f3>] do_one_initcall+0xb3/0x200
+ [<ffffffff8116e4da>] do_init_module+0x5f/0x1f6
+ [<ffffffff810ee87e>] load_module+0x15fe/0x1b60
+ [<ffffffff810eefe8>] SYSC_finit_module+0x98/0xc0
+ [<ffffffff810ef02e>] SyS_finit_module+0xe/0x10
+ [<ffffffff816b07b6>] entry_SYSCALL_64_fastpath+0x16/0x75
+ DWARF2 unwinder stuck at entry_SYSCALL_64_fastpath+0x16/0x75
+ Leftover inexact backtrace:
+ <nothing>
+ Instead of the funny:
+ [<ffffffff81364619>] ? dump_stack+0x4b/0x72
+ [<ffffffffa022a02e>] ? init1+0xe/0x20 [aaa]
+ [<ffffffff810002f3>] ? do_one_initcall+0xb3/0x200
+ [<ffffffff8116e4a2>] ? do_init_module+0x27/0x1f6
+ [<ffffffff8116e4da>] ? do_init_module+0x5f/0x1f6
+ [<ffffffff810ee87e>] ? load_module+0x15fe/0x1b60
+ [<ffffffff810eaa40>] ? __symbol_put+0x50/0x50
+ [<ffffffff811e9501>] ? kernel_read+0x41/0x60
+ [<ffffffff810eefe8>] ? SYSC_finit_module+0x98/0xc0
+ [<ffffffff810ef02e>] ? SyS_finit_module+0xe/0x10
+ [<ffffffff816b07b6>] ? entry_SYSCALL_64_fastpath+0x16/0x75
+ where __symbol_put and do_init_module+0x27 should not be there at all.
+- commit 68d392a
+
+-------------------------------------------------------------------
+Tue Sep 22 09:24:12 CEST 2015 - jslaby@suse.cz
+
+- Linux 4.2.1.
+- commit 0d0e86c
+
+-------------------------------------------------------------------
+Mon Sep 14 17:37:27 CEST 2015 - jslaby@suse.cz
+
+- Refresh
+ patches.fixes/mmc-sdhci-fix-dma-memory-leak-in-sdhci_pre_req.patch.
+ Fix upstream status.
+- commit 9af8b5d
+
+-------------------------------------------------------------------
+Sun Sep 13 21:45:37 CEST 2015 - dmueller@suse.com
+
+- Update config files: ARM64: Raise CPUs to 128
+ There are machines with more than 64 CPUs, allow them
+ to be used. Update vanilla config from default.
+- commit de7016d
+
+-------------------------------------------------------------------
+Fri Sep 11 16:16:31 CEST 2015 - jslaby@suse.cz
+
+- Update config files.
+ Fix FW fixes fallout (bnc#944661).
+- commit 6a28e38
+
+-------------------------------------------------------------------
+Thu Sep 10 16:15:22 CEST 2015 - mmarek@suse.com
+
+- rpm/kernel-spec-macros: Include the version string in the Obsoletes line
+- commit 083cdb4
+
+-------------------------------------------------------------------
+Thu Sep 10 15:19:39 CEST 2015 - mmarek@suse.com
+
+- rpm/kernel-binary.spec.in: Obsolete previous builds of the same package (boo#867595)
+- commit ffb73eb
+
+-------------------------------------------------------------------
+Wed Sep 9 14:54:24 CEST 2015 - jdelvare@suse.de
+
+- config/x86_64/ec2: Align CONFIG_STRICT_DEVMEM
+ CONFIG_STRICT_DEVMEM is enabled in every other kernel flavor, so
+ enable it for x86_64/ec2 as well.
+- commit c156734
+
+-------------------------------------------------------------------
+Mon Sep 7 14:30:51 CEST 2015 - tiwai@suse.de
+
+- leds:lp55xx: Correct Kconfig dependency for f/w user helper
+ (boo#944661).
+- commit 589a02c
+
+-------------------------------------------------------------------
+Mon Sep 7 13:55:19 CEST 2015 - tiwai@suse.de
+
+- Disable CONFIG_FW_LOADER_USER_HELPER_FALLBACK that was reenabled unexpectedly (boo#944661)
+- commit 14a23c3
+
+-------------------------------------------------------------------
+Mon Sep 7 12:23:57 CEST 2015 - tiwai@suse.de
+
+- Update config files: enable leftover CONFIG_FB_TFT_HX8357D=m for arm
+- commit cae15fc
+
+-------------------------------------------------------------------
+Mon Sep 7 12:13:14 CEST 2015 - tiwai@suse.de
+
+- drm/vmwgfx: Allow dropped masters render-node like access on
+ legacy nodes v2 (boo#934266).
+- vmwgfx: Rework device initialization (boo#934266).
+- commit 28dbc80
+
+-------------------------------------------------------------------
+Mon Sep 7 10:55:54 CEST 2015 - jslaby@suse.cz
+
+- workqueue: Make flush_workqueue() available again to non
+ GPL modules.
+- commit 82076fa
+
+-------------------------------------------------------------------
+Mon Sep 7 00:44:39 CEST 2015 - jkosina@suse.cz
+
+- Update config files: update arm config files so that they are up-to-date
+ and don't break build.
+- commit c1a445e
+
+-------------------------------------------------------------------
+Mon Sep 7 00:39:59 CEST 2015 - jkosina@suse.cz
+
+- bcache: Fix writeback_thread never writing back incomplete
+ stripes.
+- commit 395add4
+
+-------------------------------------------------------------------
+Mon Aug 31 13:17:08 CEST 2015 - jbeulich@suse.com
+
+- Update Xen patches to 4.2-final.
+- commit 7b8109d
+
+-------------------------------------------------------------------
+Mon Aug 31 11:11:55 CEST 2015 - jslaby@suse.cz
+
+- Refresh
+ patches.apparmor/apparmor-compatibility-patch-for-v5-network-control.
+ Fix this:
+ patches.apparmor/apparmor-compatibility-patch-for-v5-network-control:25:
+ error: Timestamp after filename
+ by scripts/refresh_patch.sh.
+- commit 2089c9a
+
+-------------------------------------------------------------------
+Mon Aug 31 10:02:14 CEST 2015 - jslaby@suse.cz
+
+- Refresh
+ patches.fixes/btrfs-fix-stale-dir-entries-after-unlink-inode-eviction-and-fsync.
+ Fix this:
+ missing header for unified diff at line 107 of patch
+ (Patch is indented 4 spaces.)
+ can't find file to patch at input line 107
+ by commenting also the @@ sign.
+- commit 8e48b46
+
+-------------------------------------------------------------------
+Mon Aug 31 05:08:05 CEST 2015 - jeffm@suse.com
+
+- Update to 4.2-final.
+- commit c617119
+
+-------------------------------------------------------------------
@@ -23,0 +213,7 @@
+Wed Aug 26 17:23:55 CEST 2015 - mmarek@suse.com
+
+- rpm/constraints.in: Require 14GB worth of disk space on POWER
+ The builds started to fail randomly due to ENOSPC errors.
+- commit b57d276
+
+-------------------------------------------------------------------
++++ 408 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-desktop.changes: same change
kernel-docs.changes: same change
kernel-ec2.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa-xen.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-pv.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change
Old:
----
linux-4.1.tar.xz
New:
----
linux-4.2.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: A Debug Version of the Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
@@ -154,6 +154,7 @@
Provides: kernel-kdump-base = 2.6.28
Obsoletes: kernel-kdump-base <= 2.6.28
%endif
+%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
@@ -964,6 +965,7 @@
Provides: kernel-kdump-base = 2.6.28
Obsoletes: kernel-kdump-base <= 2.6.28
%endif
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -1006,6 +1008,7 @@
Provides: kernel-kdump-extra = 2.6.28
Obsoletes: kernel-kdump-extra <= 2.6.28
%endif
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -1061,6 +1064,7 @@
Provides: kernel-kdump-devel = 2.6.28
Obsoletes: kernel-kdump-devel <= 2.6.28
%endif
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
++++++ kernel-default.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: The Standard Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
@@ -186,6 +186,7 @@
Provides: kernel-bigsmp-base = 3.1
Obsoletes: kernel-bigsmp-base <= 3.1
%endif
+%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
@@ -251,7 +252,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 armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
%define kmp_target_cpu %_target_cpu
%ifarch %ix86
# Only i386/default supports i586, mark other flavors' packages as i686
@@ -1009,6 +1010,7 @@
Provides: kernel-bigsmp-base = 3.1
Obsoletes: kernel-bigsmp-base <= 3.1
%endif
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -1064,6 +1066,7 @@
Provides: kernel-bigsmp-extra = 3.1
Obsoletes: kernel-bigsmp-extra <= 3.1
%endif
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -1132,6 +1135,7 @@
Provides: kernel-bigsmp-devel = 3.1
Obsoletes: kernel-bigsmp-devel <= 3.1
%endif
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
++++++ kernel-desktop.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: Kernel optimized for the desktop
License: GPL-2.0
Group: System/Kernel
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
@@ -148,6 +148,7 @@
Provides: kernel = %version-%source_rel
+%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
@@ -967,6 +968,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -1018,6 +1020,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -1082,6 +1085,7 @@
Requires: kernel-devel%variant = %version-%source_rel
Supplements: packageand(%name:kernel-devel%variant)
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -16,7 +16,7 @@
#
-%define patchversion 4.1.6
+%define patchversion 4.2.1
%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.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
++++++ kernel-ec2.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: The Amazon EC2 Xen Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
@@ -148,6 +148,7 @@
Provides: kernel = %version-%source_rel
+%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
@@ -957,6 +958,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -998,6 +1000,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -1052,6 +1055,7 @@
Requires: kernel-devel%variant = %version-%source_rel
Supplements: packageand(%name:kernel-devel%variant)
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
kernel-lpae.spec: same change
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks
-%define patchversion 4.1.6
+%define patchversion 4.2.1
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -33,7 +33,7 @@
%ifarch %ix86 x86_64
BuildRequires: kernel-xen
%endif
-ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
+ExclusiveArch: aarch64 armv7hl %ix86 ppc64 ppc64le s390x x86_64
%if 0%{?suse_version} < 1315
# For SLE 11
BuildRequires: mkinitrd
@@ -45,9 +45,9 @@
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0
Group: SLES
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
++++++ kernel-obs-qa-xen.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -17,7 +17,7 @@
# needsrootforbuild
-%define patchversion 4.1.6
+%define patchversion 4.2.1
%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.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
++++++ kernel-obs-qa.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -17,7 +17,7 @@
# needsrootforbuild
-%define patchversion 4.1.6
+%define patchversion 4.2.1
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -28,7 +28,7 @@
# here as well to avoid that qa and build package build parallel
BuildRequires: kernel-obs-build
BuildRequires: modutils
-ExclusiveArch: aarch64 armv6hl armv7hl %ix86 ppc64 ppc64le s390x x86_64
+ExclusiveArch: aarch64 armv7hl %ix86 ppc64 ppc64le s390x x86_64
%if 0%{?suse_version} < 1200
# for SLE 11
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@@ -36,9 +36,9 @@
Summary: Basic QA tests for the kernel
License: GPL-2.0
Group: SLES
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: Kernel with PAE Support
License: GPL-2.0
Group: System/Kernel
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
@@ -156,6 +156,7 @@
Provides: kernel-vmi-base = 2.6.38
Obsoletes: kernel-vmi-base <= 2.6.38
%endif
+%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
@@ -972,6 +973,7 @@
Provides: kernel-vmi-base = 2.6.38
Obsoletes: kernel-vmi-base <= 2.6.38
%endif
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -1020,6 +1022,7 @@
Provides: kernel-vmi-extra = 2.6.38
Obsoletes: kernel-vmi-extra <= 2.6.38
%endif
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -1081,6 +1084,7 @@
Provides: kernel-vmi-devel = 2.6.38
Obsoletes: kernel-vmi-devel <= 2.6.38
%endif
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
++++++ kernel-pv.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: The para-virtualized Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
@@ -148,6 +148,7 @@
Provides: kernel = %version-%source_rel
+%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
@@ -956,6 +957,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -996,6 +998,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -1049,6 +1052,7 @@
Requires: kernel-devel%variant = %version-%source_rel
Supplements: packageand(%name:kernel-devel%variant)
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -17,8 +17,8 @@
# icecream 0
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%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.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -24,10 +24,10 @@
Summary: Kernel Symbol Versions (modversions)
License: GPL-2.0
Group: Development/Sources
-Version: 4.1.6
+Version: 4.2.1
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%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 armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
Requires: kernel-default-devel = %version-%source_rel
%endif
%ifarch %ix86 x86_64
@@ -62,7 +62,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 armv7hl ppc ppc64 ppc64le s390x x86_64
Prefix: /usr/src
%description
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: The Standard Kernel - without any SUSE patches
License: GPL-2.0
Group: System/Kernel
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
@@ -148,6 +148,7 @@
Provides: kernel = %version-%source_rel
+%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
@@ -213,7 +214,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 armv7hl %ix86 ppc ppc64 ppc64le s390x x86_64
%define kmp_target_cpu %_target_cpu
%ifarch %ix86
# Only i386/default supports i586, mark other flavors' packages as i686
@@ -954,6 +955,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -992,6 +994,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -1043,6 +1046,7 @@
Requires: kernel-devel%variant = %version-%source_rel
Supplements: packageand(%name:kernel-devel%variant)
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
++++++ kernel-xen.spec ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:44.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:44.000000000 +0200
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.1
-%define patchversion 4.1.6
+%define srcversion 4.2
+%define patchversion 4.2.1
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: The Xen Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.1.6
+Version: 4.2.1
%if 0%{?is_kotd}
-Release: <RELEASE>.gd867e86
+Release: <RELEASE>.g6996a42
%else
Release: 0
%endif
@@ -151,6 +151,7 @@
Obsoletes: kernel-xenpae <= 2.6.17
%endif
+%obsolete_rebuilds %name
Source0: http://www.kernel.org/pub/linux/kernel/v4.x/linux-%srcversion.tar.xz
Source2: source-post.sh
Source3: kernel-source.rpmlintrc
@@ -960,6 +961,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -1001,6 +1003,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -1055,6 +1058,7 @@
Requires: kernel-devel%variant = %version-%source_rel
Supplements: packageand(%name:kernel-devel%variant)
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
++++++ _constraints ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:45.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:45.000000000 +0200
@@ -45,7 +45,7 @@
<hardware>
<processors>4</processors>
<disk>
- <size unit="G">10</size>
+ <size unit="G">14</size>
</disk>
</hardware>
</overwrite>
++++++ config.conf ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:45.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:45.000000000 +0200
@@ -36,8 +36,8 @@
+ppc64le ppc64le/vanilla
# ARM architectures
-+armv6hl armv6hl/default
-+armv6hl armv6hl/vanilla
++armv6hl -!needs_updating armv6hl/default
++armv6hl -!needs_updating armv6hl/vanilla
+armv7hl armv7hl/default
+armv7hl armv7hl/vanilla
+armv7hl armv7hl/lpae
++++++ config.sh ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:45.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:45.000000000 +0200
@@ -1,5 +1,5 @@
# The version of the main tarball to use
-SRCVERSION=4.1
+SRCVERSION=4.2
# variant of the kernel-source package, either empty or "-rt"
VARIANT=
# buildservice projects to build the kernel against
++++++ config.tar.bz2 ++++++
++++ 25886 lines of diff (skipped)
++++++ constraints.in ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:46.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:46.000000000 +0200
@@ -29,7 +29,7 @@
<hardware>
<processors>4</processors>
<disk>
- <size unit="G">10</size>
+ <size unit="G">14</size>
</disk>
</hardware>
</overwrite>
++++++ kernel-binary.spec.in ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:46.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:46.000000000 +0200
@@ -148,6 +148,7 @@
Provides: kernel = %version-%source_rel
@PROVIDES_OBSOLETES@
@PROVIDES_OBSOLETES_BASE@
+%obsolete_rebuilds %name
@SOURCES@
BuildRoot: %{_tmppath}/%{name}-%{version}-build
ExclusiveArch: @ARCHS@
@@ -828,6 +829,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
@PROVIDES_OBSOLETES_BASE@
+%obsolete_rebuilds %name-base
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
%endif
@@ -866,6 +868,7 @@
Requires(post): perl-Bootloader
Requires(post): mkinitrd
@PROVIDES_OBSOLETES_EXTRA@
+%obsolete_rebuilds %name-extra
Supplements: packageand(product(SUSE_SLED):%{name}_%_target_cpu)
%ifarch %ix86
Conflicts: libc.so.6()(64bit)
@@ -917,6 +920,7 @@
Requires: kernel-devel%variant = %version-%source_rel
Supplements: packageand(%name:kernel-devel%variant)
@PROVIDES_OBSOLETES_DEVEL@
+%obsolete_rebuilds %name-devel
PreReq: coreutils
%description devel
++++++ kernel-spec-macros ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:46.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:46.000000000 +0200
@@ -11,8 +11,14 @@
# suffix, we keep that suffix and strip the rightmost digit component.
# This is used in KOTD builds: 2.1.g1234567 -> 2.g1234567
%define source_rel %release
+%define obsolete_rebuilds() %nil
%if %using_buildservice
%define source_rel %(echo %release | sed -r 's/\\.[0-9]+($|\\.[^.]*[^.0-9][^.]*$)/\\1/')
+# If the rebuild counter is > 1, obsolete all previous rebuilds (boo#867595)
+%define obsolete_rebuilds() %( %{verbose:set -x} \
+ set -- $(echo %release | sed -rn 's/(.*\\.)([0-9]+)($|\\.[^.]*[^.0-9][^.]*$)/\\1 \\2 \\3/p') \
+ seq 1 $(($2-1)) | sed "s/.*/Obsoletes: %1 = %version-$1&$3/" \
+)
%endif
# how the kernel release string (uname -r) should look like
++++++ linux-4.1.tar.xz -> linux-4.2.tar.xz ++++++
/work/SRC/openSUSE:Factory/kernel-source/linux-4.1.tar.xz /work/SRC/openSUSE:Factory/.kernel-source.new/linux-4.2.tar.xz differ: char 26, line 1
++++++ patches.apparmor.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.apparmor/apparmor-compatibility-patch-for-v5-network-control new/patches.apparmor/apparmor-compatibility-patch-for-v5-network-control
--- old/patches.apparmor/apparmor-compatibility-patch-for-v5-network-control 2013-09-24 15:55:10.000000000 +0200
+++ new/patches.apparmor/apparmor-compatibility-patch-for-v5-network-control 2015-08-31 11:11:55.000000000 +0200
@@ -21,8 +21,8 @@
create mode 100644 security/apparmor/include/net.h
create mode 100644 security/apparmor/net.c
---- a/security/apparmor/Makefile 2013-09-17 11:00:31.021703815 -0400
-+++ b/security/apparmor/Makefile 2013-09-17 11:00:42.645510072 -0400
+--- a/security/apparmor/Makefile
++++ b/security/apparmor/Makefile
@@ -4,10 +4,10 @@ obj-$(CONFIG_SECURITY_APPARMOR) += appar
apparmor-y := apparmorfs.o audit.o capability.o context.o ipc.o lib.o match.o \
@@ -60,9 +60,9 @@
$(call cmd,make-rlim)
+$(obj)/af_names.h : $(srctree)/include/linux/socket.h
+ $(call cmd,make-af)
---- a/security/apparmor/apparmorfs.c 2013-09-17 11:00:31.021703815 -0400
-+++ b/security/apparmor/apparmorfs.c 2013-09-17 11:00:42.645510072 -0400
-@@ -811,6 +811,7 @@ static struct aa_fs_entry aa_fs_entry_fe
+--- a/security/apparmor/apparmorfs.c
++++ b/security/apparmor/apparmorfs.c
+@@ -809,6 +809,7 @@ static struct aa_fs_entry aa_fs_entry_fe
AA_FS_FILE_U64("capability", VFS_CAP_FLAGS_MASK),
AA_FS_DIR("rlimit", aa_fs_entry_rlimit),
AA_FS_DIR("caps", aa_fs_entry_caps),
@@ -70,7 +70,7 @@
{ }
};
-@@ -820,6 +821,8 @@ static struct aa_fs_entry aa_fs_entry_ap
+@@ -818,6 +819,8 @@ static struct aa_fs_entry aa_fs_entry_ap
AA_FS_FILE_FOPS(".remove", 0640, &aa_fs_profile_remove),
AA_FS_FILE_FOPS("profiles", 0640, &aa_fs_profiles_fops),
AA_FS_DIR("features", aa_fs_entry_features),
@@ -79,9 +79,9 @@
{ }
};
---- a/security/apparmor/include/audit.h 2013-09-17 11:00:31.025703750 -0400
-+++ b/security/apparmor/include/audit.h 2013-09-17 11:00:42.645510072 -0400
-@@ -126,6 +126,10 @@ struct apparmor_audit_data {
+--- a/security/apparmor/include/audit.h
++++ b/security/apparmor/include/audit.h
+@@ -125,6 +125,10 @@ struct apparmor_audit_data {
u32 denied;
kuid_t ouid;
} fs;
@@ -92,8 +92,8 @@
};
};
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/security/apparmor/include/net.h 2013-09-17 11:00:42.645510072 -0400
+--- /dev/null
++++ b/security/apparmor/include/net.h
@@ -0,0 +1,40 @@
+/*
+ * AppArmor security module
@@ -135,8 +135,8 @@
+}
+
+#endif /* __AA_NET_H */
---- a/security/apparmor/include/policy.h 2013-09-17 11:00:31.025703750 -0400
-+++ b/security/apparmor/include/policy.h 2013-09-17 11:00:42.645510072 -0400
+--- a/security/apparmor/include/policy.h
++++ b/security/apparmor/include/policy.h
@@ -27,6 +27,7 @@
#include "capability.h"
#include "domain.h"
@@ -161,8 +161,8 @@
struct aa_rlimit rlimits;
unsigned char *hash;
---- a/security/apparmor/lsm.c 2013-09-17 11:00:31.025703750 -0400
-+++ b/security/apparmor/lsm.c 2013-09-17 11:00:42.645510072 -0400
+--- a/security/apparmor/lsm.c
++++ b/security/apparmor/lsm.c
@@ -32,6 +32,7 @@
#include "include/context.h"
#include "include/file.h"
@@ -171,7 +171,7 @@
#include "include/path.h"
#include "include/policy.h"
#include "include/procattr.h"
-@@ -615,6 +616,104 @@ static int apparmor_task_setrlimit(struc
+@@ -605,6 +606,104 @@ static int apparmor_task_setrlimit(struc
return error;
}
@@ -273,31 +273,31 @@
+ return aa_revalidate_sk(OP_SOCK_SHUTDOWN, sk);
+}
+
- static struct security_operations apparmor_ops = {
- .name = "apparmor",
-
-@@ -647,6 +746,19 @@ static struct security_operations apparm
- .getprocattr = apparmor_getprocattr,
- .setprocattr = apparmor_setprocattr,
-
-+ .socket_create = apparmor_socket_create,
-+ .socket_bind = apparmor_socket_bind,
-+ .socket_connect = apparmor_socket_connect,
-+ .socket_listen = apparmor_socket_listen,
-+ .socket_accept = apparmor_socket_accept,
-+ .socket_sendmsg = apparmor_socket_sendmsg,
-+ .socket_recvmsg = apparmor_socket_recvmsg,
-+ .socket_getsockname = apparmor_socket_getsockname,
-+ .socket_getpeername = apparmor_socket_getpeername,
-+ .socket_getsockopt = apparmor_socket_getsockopt,
-+ .socket_setsockopt = apparmor_socket_setsockopt,
-+ .socket_shutdown = apparmor_socket_shutdown,
-+
- .cred_alloc_blank = apparmor_cred_alloc_blank,
- .cred_free = apparmor_cred_free,
- .cred_prepare = apparmor_cred_prepare,
---- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ b/security/apparmor/net.c 2013-09-17 11:00:42.649510003 -0400
+ static struct security_hook_list apparmor_hooks[] = {
+ LSM_HOOK_INIT(ptrace_access_check, apparmor_ptrace_access_check),
+ LSM_HOOK_INIT(ptrace_traceme, apparmor_ptrace_traceme),
+@@ -634,6 +733,19 @@ static struct security_hook_list apparmo
+ LSM_HOOK_INIT(getprocattr, apparmor_getprocattr),
+ LSM_HOOK_INIT(setprocattr, apparmor_setprocattr),
+
++ LSM_HOOK_INIT(socket_create, apparmor_socket_create),
++ LSM_HOOK_INIT(socket_bind, apparmor_socket_bind),
++ LSM_HOOK_INIT(socket_connect, apparmor_socket_connect),
++ LSM_HOOK_INIT(socket_listen, apparmor_socket_listen),
++ LSM_HOOK_INIT(socket_accept, apparmor_socket_accept),
++ LSM_HOOK_INIT(socket_sendmsg, apparmor_socket_sendmsg),
++ LSM_HOOK_INIT(socket_recvmsg, apparmor_socket_recvmsg),
++ LSM_HOOK_INIT(socket_getsockname, apparmor_socket_getsockname),
++ LSM_HOOK_INIT(socket_getpeername, apparmor_socket_getpeername),
++ LSM_HOOK_INIT(socket_getsockopt, apparmor_socket_getsockopt),
++ LSM_HOOK_INIT(socket_setsockopt, apparmor_socket_setsockopt),
++ LSM_HOOK_INIT(socket_shutdown, apparmor_socket_shutdown),
++
+ LSM_HOOK_INIT(cred_alloc_blank, apparmor_cred_alloc_blank),
+ LSM_HOOK_INIT(cred_free, apparmor_cred_free),
+ LSM_HOOK_INIT(cred_prepare, apparmor_cred_prepare),
+--- /dev/null
++++ b/security/apparmor/net.c
@@ -0,0 +1,184 @@
+/*
+ * AppArmor security module
@@ -483,9 +483,9 @@
+
+ return error;
+}
---- a/security/apparmor/policy.c 2013-09-17 11:00:31.029703685 -0400
-+++ b/security/apparmor/policy.c 2013-09-17 11:00:42.649510003 -0400
-@@ -602,6 +602,7 @@ void aa_free_profile(struct aa_profile *
+--- a/security/apparmor/policy.c
++++ b/security/apparmor/policy.c
+@@ -603,6 +603,7 @@ void aa_free_profile(struct aa_profile *
aa_free_file_rules(&profile->file);
aa_free_cap_rules(&profile->caps);
@@ -493,8 +493,8 @@
aa_free_rlimit_rules(&profile->rlimits);
kzfree(profile->dirname);
---- a/security/apparmor/policy_unpack.c 2013-09-17 11:00:31.029703685 -0400
-+++ b/security/apparmor/policy_unpack.c 2013-09-17 11:00:42.649510003 -0400
+--- a/security/apparmor/policy_unpack.c
++++ b/security/apparmor/policy_unpack.c
@@ -193,6 +193,19 @@ fail:
return 0;
}
++++++ patches.arch.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-0004-net-xgbe-Add-A0-silicon-support.patch new/patches.arch/arm64-0004-net-xgbe-Add-A0-silicon-support.patch
--- old/patches.arch/arm64-0004-net-xgbe-Add-A0-silicon-support.patch 2015-08-03 20:25:04.000000000 +0200
+++ new/patches.arch/arm64-0004-net-xgbe-Add-A0-silicon-support.patch 2015-07-06 22:44:45.000000000 +0200
@@ -10370,9 +10370,9 @@
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
@@ -34,4 +34,5 @@ obj-$(CONFIG_MDIO_BUS_MUX_MMIOREG) += md
+ obj-$(CONFIG_MDIO_BUS_MUX_MMIOREG) += mdio-mux-mmioreg.o
obj-$(CONFIG_MDIO_SUN4I) += mdio-sun4i.o
obj-$(CONFIG_MDIO_MOXART) += mdio-moxart.o
- obj-$(CONFIG_AMD_XGBE_PHY) += amd-xgbe-phy.o
+obj-$(CONFIG_AMD_XGBE_PHY) += amd-xgbe-phy-a0.o
obj-$(CONFIG_MDIO_BCM_UNIMAC) += mdio-bcm-unimac.o
--- /dev/null
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-0005-arm64-dts-Add-X-Gene-reboot-driver-dts-node.patch new/patches.arch/arm64-0005-arm64-dts-Add-X-Gene-reboot-driver-dts-node.patch
--- old/patches.arch/arm64-0005-arm64-dts-Add-X-Gene-reboot-driver-dts-node.patch 2015-08-03 20:25:04.000000000 +0200
+++ new/patches.arch/arm64-0005-arm64-dts-Add-X-Gene-reboot-driver-dts-node.patch 2015-07-06 22:44:45.000000000 +0200
@@ -31,7 +31,7 @@
#address-cells = <2>;
#size-cells = <2>;
@@ -469,6 +474,13 @@
- clocks = <&pcie4clk 0>;
+ msi-parent = <&msi>;
};
+ reboot: reboot@17000014 {
++++++ patches.drivers.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/0001-qmi_wwan-Add-support-for-Dell-Wireless-5809e-4G-Mode.patch new/patches.drivers/0001-qmi_wwan-Add-support-for-Dell-Wireless-5809e-4G-Mode.patch
--- old/patches.drivers/0001-qmi_wwan-Add-support-for-Dell-Wireless-5809e-4G-Mode.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/0001-qmi_wwan-Add-support-for-Dell-Wireless-5809e-4G-Mode.patch 2015-09-25 10:21:54.000000000 +0200
@@ -0,0 +1,35 @@
+From 22ebbe4c34da96f1e283baae5956e39d629c18a3 Mon Sep 17 00:00:00 2001
+From: Pieter Hollants
+Date: Mon, 20 Jul 2015 10:14:13 +0200
+Subject: [PATCH] qmi_wwan: Add support for Dell Wireless 5809e 4G Modem
+References: bnc#937974
+Git-Commit: 2070c48cf2b78af89ba529c00992eaaa18df8ef7
+Patch-Mainline: Queued in subsystem maintainer repository
+Git-repo: http://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git
+
+Added the USB IDs 0x413c:0x81b1 for the "Dell Wireless 5809e Gobi(TM) 4G
+LTE Mobile Broadband Card", a Dell-branded Sierra Wireless EM7305 LTE
+card in M.2 form factor, used eg. in Dell's Latitude E7540 Notebook
+series.
+
+Signed-off-by: Pieter Hollants
+Signed-off-by: Oliver Neukum
+---
+ drivers/net/usb/qmi_wwan.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
+index f603f36..f06c687 100644
+--- a/drivers/net/usb/qmi_wwan.c
++++ b/drivers/net/usb/qmi_wwan.c
+@@ -784,6 +784,7 @@ static const struct usb_device_id products[] = {
+ {QMI_FIXED_INTF(0x413c, 0x81a4, 8)}, /* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card */
+ {QMI_FIXED_INTF(0x413c, 0x81a8, 8)}, /* Dell Wireless 5808 Gobi(TM) 4G LTE Mobile Broadband Card */
+ {QMI_FIXED_INTF(0x413c, 0x81a9, 8)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card */
++ {QMI_FIXED_INTF(0x413c, 0x81b1, 8)}, /* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card */
+ {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
+ {QMI_FIXED_INTF(0x03f0, 0x581d, 4)}, /* HP lt4112 LTE/HSPA+ Gobi 4G Module (Huawei me906e) */
+
+--
+2.1.4
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/0001-vmwgfx-Rework-device-initialization.patch new/patches.drivers/0001-vmwgfx-Rework-device-initialization.patch
--- old/patches.drivers/0001-vmwgfx-Rework-device-initialization.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/0001-vmwgfx-Rework-device-initialization.patch 2015-09-25 10:21:54.000000000 +0200
@@ -0,0 +1,872 @@
+From 153b3d5b037eeb01d1e5610958a5bbd79885b2be Mon Sep 17 00:00:00 2001
+From: Thomas Hellstrom
+Date: Thu, 25 Jun 2015 10:47:43 -0700
+Subject: [PATCH] vmwgfx: Rework device initialization
+Git-commit: 153b3d5b037eeb01d1e5610958a5bbd79885b2be
+Patch-mainline: v4.3-rc1
+References: boo#934266
+
+This commit reworks device initialization so that we always enable the
+FIFO at driver load, deferring SVGA enable until either first modeset
+or fbdev enable.
+This should always leave the fifo properly enabled for render- and
+control nodes.
+In addition,
+*) We disable the use of VRAM when SVGA is not enabled.
+*) We simplify PM support so that we only throw out resources on hibernate,
+not on suspend, since the device keeps its state on suspend.
+
+Signed-off-by: Thomas Hellstrom
+Reviewed-by: Sinclair Yeh
+Acked-by: Takashi Iwai
+
+---
+ drivers/gpu/drm/vmwgfx/vmwgfx_context.c | 8
+ drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 337 +++++++++++++++++---------------
+ drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 19 +
+ drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | 4
+ drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 12 -
+ drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 1
+ drivers/gpu/drm/vmwgfx/vmwgfx_mob.c | 6
+ drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 1
+ drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 4
+ drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 12 -
+ 10 files changed, 230 insertions(+), 174 deletions(-)
+
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
+@@ -140,7 +140,7 @@ static void vmw_hw_context_destroy(struc
+ cmd->body.cid = cpu_to_le32(res->id);
+
+ vmw_fifo_commit(dev_priv, sizeof(*cmd));
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+ }
+
+ static int vmw_gb_context_init(struct vmw_private *dev_priv,
+@@ -220,7 +220,7 @@ static int vmw_context_init(struct vmw_p
+ cmd->body.cid = cpu_to_le32(res->id);
+
+ vmw_fifo_commit(dev_priv, sizeof(*cmd));
+- (void) vmw_3d_resource_inc(dev_priv, false);
++ vmw_fifo_resource_inc(dev_priv);
+ vmw_resource_activate(res, vmw_hw_context_destroy);
+ return 0;
+
+@@ -281,7 +281,7 @@ static int vmw_gb_context_create(struct
+ cmd->header.size = sizeof(cmd->body);
+ cmd->body.cid = res->id;
+ vmw_fifo_commit(dev_priv, sizeof(*cmd));
+- (void) vmw_3d_resource_inc(dev_priv, false);
++ vmw_fifo_resource_inc(dev_priv);
+
+ return 0;
+
+@@ -414,7 +414,7 @@ static int vmw_gb_context_destroy(struct
+ if (dev_priv->query_cid == res->id)
+ dev_priv->query_cid_valid = false;
+ vmw_resource_release_id(res);
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+
+ return 0;
+ }
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+@@ -339,24 +339,47 @@ static int vmw_dummy_query_bo_create(str
+ return ret;
+ }
+
+-static int vmw_request_device(struct vmw_private *dev_priv)
++/**
++ * vmw_request_device_late - Perform late device setup
++ *
++ * @dev_priv: Pointer to device private.
++ *
++ * This function performs setup of otables and enables large command
++ * buffer submission. These tasks are split out to a separate function
++ * because it reverts vmw_release_device_early and is intended to be used
++ * by an error path in the hibernation code.
++ */
++static int vmw_request_device_late(struct vmw_private *dev_priv)
+ {
+ int ret;
+
+- ret = vmw_fifo_init(dev_priv, &dev_priv->fifo);
+- if (unlikely(ret != 0)) {
+- DRM_ERROR("Unable to initialize FIFO.\n");
+- return ret;
+- }
+- vmw_fence_fifo_up(dev_priv->fman);
+ if (dev_priv->has_mob) {
+ ret = vmw_otables_setup(dev_priv);
+ if (unlikely(ret != 0)) {
+ DRM_ERROR("Unable to initialize "
+ "guest Memory OBjects.\n");
+- goto out_no_mob;
++ return ret;
+ }
+ }
++
++ return 0;
++}
++
++static int vmw_request_device(struct vmw_private *dev_priv)
++{
++ int ret;
++
++ ret = vmw_fifo_init(dev_priv, &dev_priv->fifo);
++ if (unlikely(ret != 0)) {
++ DRM_ERROR("Unable to initialize FIFO.\n");
++ return ret;
++ }
++ vmw_fence_fifo_up(dev_priv->fman);
++
++ ret = vmw_request_device_late(dev_priv);
++ if (ret)
++ goto out_no_mob;
++
+ ret = vmw_dummy_query_bo_create(dev_priv);
+ if (unlikely(ret != 0))
+ goto out_no_query_bo;
+@@ -364,15 +387,25 @@ static int vmw_request_device(struct vmw
+ return 0;
+
+ out_no_query_bo:
+- if (dev_priv->has_mob)
++ if (dev_priv->has_mob) {
++ (void) ttm_bo_evict_mm(&dev_priv->bdev, VMW_PL_MOB);
+ vmw_otables_takedown(dev_priv);
++ }
+ out_no_mob:
+ vmw_fence_fifo_down(dev_priv->fman);
+ vmw_fifo_release(dev_priv, &dev_priv->fifo);
+ return ret;
+ }
+
+-static void vmw_release_device(struct vmw_private *dev_priv)
++/**
++ * vmw_release_device_early - Early part of fifo takedown.
++ *
++ * @dev_priv: Pointer to device private struct.
++ *
++ * This is the first part of command submission takedown, to be called before
++ * buffer management is taken down.
++ */
++static void vmw_release_device_early(struct vmw_private *dev_priv)
+ {
+ /*
+ * Previous destructions should've released
+@@ -382,64 +415,24 @@ static void vmw_release_device(struct vm
+ BUG_ON(dev_priv->pinned_bo != NULL);
+
+ ttm_bo_unref(&dev_priv->dummy_query_bo);
+- if (dev_priv->has_mob)
++ if (dev_priv->has_mob) {
++ ttm_bo_evict_mm(&dev_priv->bdev, VMW_PL_MOB);
+ vmw_otables_takedown(dev_priv);
+- vmw_fence_fifo_down(dev_priv->fman);
+- vmw_fifo_release(dev_priv, &dev_priv->fifo);
+-}
+-
+-
+-/**
+- * Increase the 3d resource refcount.
+- * If the count was prevously zero, initialize the fifo, switching to svga
+- * mode. Note that the master holds a ref as well, and may request an
+- * explicit switch to svga mode if fb is not running, using @unhide_svga.
+- */
+-int vmw_3d_resource_inc(struct vmw_private *dev_priv,
+- bool unhide_svga)
+-{
+- int ret = 0;
+-
+- mutex_lock(&dev_priv->release_mutex);
+- if (unlikely(dev_priv->num_3d_resources++ == 0)) {
+- ret = vmw_request_device(dev_priv);
+- if (unlikely(ret != 0))
+- --dev_priv->num_3d_resources;
+- } else if (unhide_svga) {
+- vmw_write(dev_priv, SVGA_REG_ENABLE,
+- vmw_read(dev_priv, SVGA_REG_ENABLE) &
+- ~SVGA_REG_ENABLE_HIDE);
+ }
+-
+- mutex_unlock(&dev_priv->release_mutex);
+- return ret;
+ }
+
+ /**
+- * Decrease the 3d resource refcount.
+- * If the count reaches zero, disable the fifo, switching to vga mode.
+- * Note that the master holds a refcount as well, and may request an
+- * explicit switch to vga mode when it releases its refcount to account
+- * for the situation of an X server vt switch to VGA with 3d resources
+- * active.
++ * vmw_release_device_late - Late part of fifo takedown.
++ *
++ * @dev_priv: Pointer to device private struct.
++ *
++ * This is the last part of the command submission takedown, to be called when
++ * command submission is no longer needed. It may wait on pending fences.
+ */
+-void vmw_3d_resource_dec(struct vmw_private *dev_priv,
+- bool hide_svga)
++static void vmw_release_device_late(struct vmw_private *dev_priv)
+ {
+- int32_t n3d;
+-
+- mutex_lock(&dev_priv->release_mutex);
+- if (unlikely(--dev_priv->num_3d_resources == 0))
+- vmw_release_device(dev_priv);
+- else if (hide_svga)
+- vmw_write(dev_priv, SVGA_REG_ENABLE,
+- vmw_read(dev_priv, SVGA_REG_ENABLE) |
+- SVGA_REG_ENABLE_HIDE);
+-
+- n3d = (int32_t) dev_priv->num_3d_resources;
+- mutex_unlock(&dev_priv->release_mutex);
+-
+- BUG_ON(n3d < 0);
++ vmw_fence_fifo_down(dev_priv->fman);
++ vmw_fifo_release(dev_priv, &dev_priv->fifo);
+ }
+
+ /**
+@@ -603,6 +596,7 @@ static int vmw_driver_load(struct drm_de
+ spin_lock_init(&dev_priv->hw_lock);
+ spin_lock_init(&dev_priv->waiter_lock);
+ spin_lock_init(&dev_priv->cap_lock);
++ spin_lock_init(&dev_priv->svga_lock);
+
+ for (i = vmw_res_context; i < vmw_res_max; ++i) {
+ idr_init(&dev_priv->res_idr[i]);
+@@ -714,17 +708,6 @@ static int vmw_driver_load(struct drm_de
+ dev_priv->active_master = &dev_priv->fbdev_master;
+
+
+- ret = ttm_bo_device_init(&dev_priv->bdev,
+- dev_priv->bo_global_ref.ref.object,
+- &vmw_bo_driver,
+- dev->anon_inode->i_mapping,
+- VMWGFX_FILE_PAGE_OFFSET,
+- false);
+- if (unlikely(ret != 0)) {
+- DRM_ERROR("Failed initializing TTM buffer object driver.\n");
+- goto out_err1;
+- }
+-
+ dev_priv->mmio_mtrr = arch_phys_wc_add(dev_priv->mmio_start,
+ dev_priv->mmio_size);
+
+@@ -787,13 +770,28 @@ static int vmw_driver_load(struct drm_de
+ goto out_no_fman;
+ }
+
++ ret = ttm_bo_device_init(&dev_priv->bdev,
++ dev_priv->bo_global_ref.ref.object,
++ &vmw_bo_driver,
++ dev->anon_inode->i_mapping,
++ VMWGFX_FILE_PAGE_OFFSET,
++ false);
++ if (unlikely(ret != 0)) {
++ DRM_ERROR("Failed initializing TTM buffer object driver.\n");
++ goto out_no_bdev;
++ }
+
++ /*
++ * Enable VRAM, but initially don't use it until SVGA is enabled and
++ * unhidden.
++ */
+ ret = ttm_bo_init_mm(&dev_priv->bdev, TTM_PL_VRAM,
+ (dev_priv->vram_size >> PAGE_SHIFT));
+ if (unlikely(ret != 0)) {
+ DRM_ERROR("Failed initializing memory manager for VRAM.\n");
+ goto out_no_vram;
+ }
++ dev_priv->bdev.man[TTM_PL_VRAM].use_type = false;
+
+ dev_priv->has_gmr = true;
+ if (((dev_priv->capabilities & (SVGA_CAP_GMR | SVGA_CAP_GMR2)) == 0) ||
+@@ -814,18 +812,18 @@ static int vmw_driver_load(struct drm_de
+ }
+ }
+
+- vmw_kms_save_vga(dev_priv);
+-
+- /* Start kms and overlay systems, needs fifo. */
+ ret = vmw_kms_init(dev_priv);
+ if (unlikely(ret != 0))
+ goto out_no_kms;
+ vmw_overlay_init(dev_priv);
+
++ ret = vmw_request_device(dev_priv);
++ if (ret)
++ goto out_no_fifo;
++
+ if (dev_priv->enable_fb) {
+- ret = vmw_3d_resource_inc(dev_priv, true);
+- if (unlikely(ret != 0))
+- goto out_no_fifo;
++ vmw_fifo_resource_inc(dev_priv);
++ vmw_svga_enable(dev_priv);
+ vmw_fb_init(dev_priv);
+ }
+
+@@ -838,13 +836,14 @@ out_no_fifo:
+ vmw_overlay_close(dev_priv);
+ vmw_kms_close(dev_priv);
+ out_no_kms:
+- vmw_kms_restore_vga(dev_priv);
+ if (dev_priv->has_mob)
+ (void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_MOB);
+ if (dev_priv->has_gmr)
+ (void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_GMR);
+ (void)ttm_bo_clean_mm(&dev_priv->bdev, TTM_PL_VRAM);
+ out_no_vram:
++ (void)ttm_bo_device_release(&dev_priv->bdev);
++out_no_bdev:
+ vmw_fence_manager_takedown(dev_priv->fman);
+ out_no_fman:
+ if (dev_priv->capabilities & SVGA_CAP_IRQMASK)
+@@ -860,8 +859,6 @@ out_err4:
+ iounmap(dev_priv->mmio_virt);
+ out_err3:
+ arch_phys_wc_del(dev_priv->mmio_mtrr);
+- (void)ttm_bo_device_release(&dev_priv->bdev);
+-out_err1:
+ vmw_ttm_global_release(dev_priv);
+ out_err0:
+ for (i = vmw_res_context; i < vmw_res_max; ++i)
+@@ -883,18 +880,22 @@ static int vmw_driver_unload(struct drm_
+ vfree(dev_priv->ctx.cmd_bounce);
+ if (dev_priv->enable_fb) {
+ vmw_fb_close(dev_priv);
+- vmw_kms_restore_vga(dev_priv);
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
++ vmw_svga_disable(dev_priv);
+ }
++
+ vmw_kms_close(dev_priv);
+ vmw_overlay_close(dev_priv);
+
+- if (dev_priv->has_mob)
+- (void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_MOB);
+ if (dev_priv->has_gmr)
+ (void)ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_GMR);
+ (void)ttm_bo_clean_mm(&dev_priv->bdev, TTM_PL_VRAM);
+
++ vmw_release_device_early(dev_priv);
++ if (dev_priv->has_mob)
++ (void) ttm_bo_clean_mm(&dev_priv->bdev, VMW_PL_MOB);
++ (void) ttm_bo_device_release(&dev_priv->bdev);
++ vmw_release_device_late(dev_priv);
+ vmw_fence_manager_takedown(dev_priv->fman);
+ if (dev_priv->capabilities & SVGA_CAP_IRQMASK)
+ drm_irq_uninstall(dev_priv->dev);
+@@ -1148,27 +1149,13 @@ static int vmw_master_set(struct drm_dev
+ struct vmw_master *vmaster = vmw_master(file_priv->master);
+ int ret = 0;
+
+- if (!dev_priv->enable_fb) {
+- ret = vmw_3d_resource_inc(dev_priv, true);
+- if (unlikely(ret != 0))
+- return ret;
+- vmw_kms_save_vga(dev_priv);
+- vmw_write(dev_priv, SVGA_REG_TRACES, 0);
+- }
+-
+ if (active) {
+ BUG_ON(active != &dev_priv->fbdev_master);
+ ret = ttm_vt_lock(&active->lock, false, vmw_fp->tfile);
+ if (unlikely(ret != 0))
+- goto out_no_active_lock;
++ return ret;
+
+ ttm_lock_set_kill(&active->lock, true, SIGTERM);
+- ret = ttm_bo_evict_mm(&dev_priv->bdev, TTM_PL_VRAM);
+- if (unlikely(ret != 0)) {
+- DRM_ERROR("Unable to clean VRAM on "
+- "master drop.\n");
+- }
+-
+ dev_priv->active_master = NULL;
+ }
+
+@@ -1182,14 +1169,6 @@ static int vmw_master_set(struct drm_dev
+ dev_priv->active_master = vmaster;
+
+ return 0;
+-
+-out_no_active_lock:
+- if (!dev_priv->enable_fb) {
+- vmw_kms_restore_vga(dev_priv);
+- vmw_3d_resource_dec(dev_priv, true);
+- vmw_write(dev_priv, SVGA_REG_TRACES, 1);
+- }
+- return ret;
+ }
+
+ static void vmw_master_drop(struct drm_device *dev,
+@@ -1214,16 +1193,9 @@ static void vmw_master_drop(struct drm_d
+ }
+
+ ttm_lock_set_kill(&vmaster->lock, false, SIGTERM);
+- vmw_execbuf_release_pinned_bo(dev_priv);
+
+- if (!dev_priv->enable_fb) {
+- ret = ttm_bo_evict_mm(&dev_priv->bdev, TTM_PL_VRAM);
+- if (unlikely(ret != 0))
+- DRM_ERROR("Unable to clean VRAM on master drop.\n");
+- vmw_kms_restore_vga(dev_priv);
+- vmw_3d_resource_dec(dev_priv, true);
+- vmw_write(dev_priv, SVGA_REG_TRACES, 1);
+- }
++ if (!dev_priv->enable_fb)
++ vmw_svga_disable(dev_priv);
+
+ dev_priv->active_master = &dev_priv->fbdev_master;
+ ttm_lock_set_kill(&dev_priv->fbdev_master.lock, false, SIGTERM);
+@@ -1233,6 +1205,74 @@ static void vmw_master_drop(struct drm_d
+ vmw_fb_on(dev_priv);
+ }
+
++/**
++ * __vmw_svga_enable - Enable SVGA mode, FIFO and use of VRAM.
++ *
++ * @dev_priv: Pointer to device private struct.
++ * Needs the reservation sem to be held in non-exclusive mode.
++ */
++void __vmw_svga_enable(struct vmw_private *dev_priv)
++{
++ spin_lock(&dev_priv->svga_lock);
++ if (!dev_priv->bdev.man[TTM_PL_VRAM].use_type) {
++ vmw_write(dev_priv, SVGA_REG_ENABLE, SVGA_REG_ENABLE);
++ dev_priv->bdev.man[TTM_PL_VRAM].use_type = true;
++ }
++ spin_unlock(&dev_priv->svga_lock);
++}
++
++/**
++ * vmw_svga_enable - Enable SVGA mode, FIFO and use of VRAM.
++ *
++ * @dev_priv: Pointer to device private struct.
++ */
++void vmw_svga_enable(struct vmw_private *dev_priv)
++{
++ ttm_read_lock(&dev_priv->reservation_sem, false);
++ __vmw_svga_enable(dev_priv);
++ ttm_read_unlock(&dev_priv->reservation_sem);
++}
++
++/**
++ * __vmw_svga_disable - Disable SVGA mode and use of VRAM.
++ *
++ * @dev_priv: Pointer to device private struct.
++ * Needs the reservation sem to be held in exclusive mode.
++ * Will not empty VRAM. VRAM must be emptied by caller.
++ */
++void __vmw_svga_disable(struct vmw_private *dev_priv)
++{
++ spin_lock(&dev_priv->svga_lock);
++ if (dev_priv->bdev.man[TTM_PL_VRAM].use_type) {
++ dev_priv->bdev.man[TTM_PL_VRAM].use_type = false;
++ vmw_write(dev_priv, SVGA_REG_ENABLE,
++ SVGA_REG_ENABLE_ENABLE_HIDE);
++ }
++ spin_unlock(&dev_priv->svga_lock);
++}
++
++/**
++ * vmw_svga_disable - Disable SVGA_MODE, and use of VRAM. Keep the fifo
++ * running.
++ *
++ * @dev_priv: Pointer to device private struct.
++ * Will empty VRAM.
++ */
++void vmw_svga_disable(struct vmw_private *dev_priv)
++{
++ ttm_write_lock(&dev_priv->reservation_sem, false);
++ spin_lock(&dev_priv->svga_lock);
++ if (dev_priv->bdev.man[TTM_PL_VRAM].use_type) {
++ dev_priv->bdev.man[TTM_PL_VRAM].use_type = false;
++ vmw_write(dev_priv, SVGA_REG_ENABLE,
++ SVGA_REG_ENABLE_ENABLE_HIDE);
++ spin_unlock(&dev_priv->svga_lock);
++ if (ttm_bo_evict_mm(&dev_priv->bdev, TTM_PL_VRAM))
++ DRM_ERROR("Failed evicting VRAM buffers.\n");
++ } else
++ spin_unlock(&dev_priv->svga_lock);
++ ttm_write_unlock(&dev_priv->reservation_sem);
++}
+
+ static void vmw_remove(struct pci_dev *pdev)
+ {
+@@ -1250,21 +1290,21 @@ static int vmwgfx_pm_notifier(struct not
+
+ switch (val) {
+ case PM_HIBERNATION_PREPARE:
+- case PM_SUSPEND_PREPARE:
+ ttm_suspend_lock(&dev_priv->reservation_sem);
+
+- /**
++ /*
+ * This empties VRAM and unbinds all GMR bindings.
+ * Buffer contents is moved to swappable memory.
+ */
+ vmw_execbuf_release_pinned_bo(dev_priv);
+ vmw_resource_evict_all(dev_priv);
++ vmw_release_device_early(dev_priv);
+ ttm_bo_swapout_all(&dev_priv->bdev);
+-
++ vmw_fence_fifo_down(dev_priv->fman);
+ break;
+ case PM_POST_HIBERNATION:
+- case PM_POST_SUSPEND:
+ case PM_POST_RESTORE:
++ vmw_fence_fifo_up(dev_priv->fman);
+ ttm_suspend_unlock(&dev_priv->reservation_sem);
+
+ break;
+@@ -1276,20 +1316,13 @@ static int vmwgfx_pm_notifier(struct not
+ return 0;
+ }
+
+-/**
+- * These might not be needed with the virtual SVGA device.
+- */
+-
+ static int vmw_pci_suspend(struct pci_dev *pdev, pm_message_t state)
+ {
+ struct drm_device *dev = pci_get_drvdata(pdev);
+ struct vmw_private *dev_priv = vmw_priv(dev);
+
+- if (dev_priv->num_3d_resources != 0) {
+- DRM_INFO("Can't suspend or hibernate "
+- "while 3D resources are active.\n");
++ if (dev_priv->refuse_hibernation)
+ return -EBUSY;
+- }
+
+ pci_save_state(pdev);
+ pci_disable_device(pdev);
+@@ -1321,56 +1354,62 @@ static int vmw_pm_resume(struct device *
+ return vmw_pci_resume(pdev);
+ }
+
+-static int vmw_pm_prepare(struct device *kdev)
++static int vmw_pm_freeze(struct device *kdev)
+ {
+ struct pci_dev *pdev = to_pci_dev(kdev);
+ struct drm_device *dev = pci_get_drvdata(pdev);
+ struct vmw_private *dev_priv = vmw_priv(dev);
+
+- /**
+- * Release 3d reference held by fbdev and potentially
+- * stop fifo.
+- */
+ dev_priv->suspended = true;
+ if (dev_priv->enable_fb)
+- vmw_3d_resource_dec(dev_priv, true);
+-
+- if (dev_priv->num_3d_resources != 0) {
+-
+- DRM_INFO("Can't suspend or hibernate "
+- "while 3D resources are active.\n");
++ vmw_fifo_resource_dec(dev_priv);
+
++ if (atomic_read(&dev_priv->num_fifo_resources) != 0) {
++ DRM_ERROR("Can't hibernate while 3D resources are active.\n");
+ if (dev_priv->enable_fb)
+- vmw_3d_resource_inc(dev_priv, true);
++ vmw_fifo_resource_inc(dev_priv);
++ WARN_ON(vmw_request_device_late(dev_priv));
+ dev_priv->suspended = false;
+ return -EBUSY;
+ }
+
++ if (dev_priv->enable_fb)
++ __vmw_svga_disable(dev_priv);
++
++ vmw_release_device_late(dev_priv);
++
+ return 0;
+ }
+
+-static void vmw_pm_complete(struct device *kdev)
++static int vmw_pm_restore(struct device *kdev)
+ {
+ struct pci_dev *pdev = to_pci_dev(kdev);
+ struct drm_device *dev = pci_get_drvdata(pdev);
+ struct vmw_private *dev_priv = vmw_priv(dev);
++ int ret;
+
+ vmw_write(dev_priv, SVGA_REG_ID, SVGA_ID_2);
+ (void) vmw_read(dev_priv, SVGA_REG_ID);
+
+- /**
+- * Reclaim 3d reference held by fbdev and potentially
+- * start fifo.
+- */
+ if (dev_priv->enable_fb)
+- vmw_3d_resource_inc(dev_priv, false);
++ vmw_fifo_resource_inc(dev_priv);
++
++ ret = vmw_request_device(dev_priv);
++ if (ret)
++ return ret;
++
++ if (dev_priv->enable_fb)
++ __vmw_svga_enable(dev_priv);
+
+ dev_priv->suspended = false;
++
++ return 0;
+ }
+
+ static const struct dev_pm_ops vmw_pm_ops = {
+- .prepare = vmw_pm_prepare,
+- .complete = vmw_pm_complete,
++ .freeze = vmw_pm_freeze,
++ .thaw = vmw_pm_restore,
++ .restore = vmw_pm_restore,
+ .suspend = vmw_pm_suspend,
+ .resume = vmw_pm_resume,
+ };
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+@@ -484,6 +484,7 @@ struct vmw_private {
+
+ bool stealth;
+ bool enable_fb;
++ spinlock_t svga_lock;
+
+ /**
+ * Master management.
+@@ -493,9 +494,10 @@ struct vmw_private {
+ struct vmw_master fbdev_master;
+ struct notifier_block pm_nb;
+ bool suspended;
++ bool refuse_hibernation;
+
+ struct mutex release_mutex;
+- uint32_t num_3d_resources;
++ atomic_t num_fifo_resources;
+
+ /*
+ * Replace this with an rwsem as soon as we have down_xx_interruptible()
+@@ -587,8 +589,9 @@ static inline uint32_t vmw_read(struct v
+ return val;
+ }
+
+-int vmw_3d_resource_inc(struct vmw_private *dev_priv, bool unhide_svga);
+-void vmw_3d_resource_dec(struct vmw_private *dev_priv, bool hide_svga);
++extern void vmw_svga_enable(struct vmw_private *dev_priv);
++extern void vmw_svga_disable(struct vmw_private *dev_priv);
++
+
+ /**
+ * GMR utilities - vmwgfx_gmr.c
+@@ -1116,4 +1119,14 @@ static inline struct ttm_mem_global *vmw
+ {
+ return (struct ttm_mem_global *) dev_priv->mem_global_ref.object;
+ }
++
++static inline void vmw_fifo_resource_inc(struct vmw_private *dev_priv)
++{
++ atomic_inc(&dev_priv->num_fifo_resources);
++}
++
++static inline void vmw_fifo_resource_dec(struct vmw_private *dev_priv)
++{
++ atomic_dec(&dev_priv->num_fifo_resources);
++}
+ #endif
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c
+@@ -596,7 +596,10 @@ int vmw_fb_off(struct vmw_private *vmw_p
+
+ info = vmw_priv->fb_info;
+ par = info->par;
++ if (!par->bo_ptr)
++ return 0;
+
++ vmw_kms_save_vga(vmw_priv);
+ spin_lock_irqsave(&par->dirty.lock, flags);
+ par->dirty.active = false;
+ spin_unlock_irqrestore(&par->dirty.lock, flags);
+@@ -648,6 +651,7 @@ int vmw_fb_on(struct vmw_private *vmw_pr
+ spin_lock_irqsave(&par->dirty.lock, flags);
+ par->dirty.active = true;
+ spin_unlock_irqrestore(&par->dirty.lock, flags);
++ vmw_kms_restore_vga(vmw_priv);
+
+ err_no_buffer:
+ vmw_fb_set_par(info);
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
+@@ -98,7 +98,6 @@ int vmw_fifo_init(struct vmw_private *de
+ __le32 __iomem *fifo_mem = dev_priv->mmio_virt;
+ uint32_t max;
+ uint32_t min;
+- uint32_t dummy;
+
+ fifo->static_buffer_size = VMWGFX_FIFO_STATIC_SIZE;
+ fifo->static_buffer = vmalloc(fifo->static_buffer_size);
+@@ -112,10 +111,6 @@ int vmw_fifo_init(struct vmw_private *de
+ mutex_init(&fifo->fifo_mutex);
+ init_rwsem(&fifo->rwsem);
+
+- /*
+- * Allow mapping the first page read-only to user-space.
+- */
+-
+ DRM_INFO("width %d\n", vmw_read(dev_priv, SVGA_REG_WIDTH));
+ DRM_INFO("height %d\n", vmw_read(dev_priv, SVGA_REG_HEIGHT));
+ DRM_INFO("bpp %d\n", vmw_read(dev_priv, SVGA_REG_BITS_PER_PIXEL));
+@@ -123,7 +118,9 @@ int vmw_fifo_init(struct vmw_private *de
+ dev_priv->enable_state = vmw_read(dev_priv, SVGA_REG_ENABLE);
+ dev_priv->config_done_state = vmw_read(dev_priv, SVGA_REG_CONFIG_DONE);
+ dev_priv->traces_state = vmw_read(dev_priv, SVGA_REG_TRACES);
+- vmw_write(dev_priv, SVGA_REG_ENABLE, 1);
++
++ vmw_write(dev_priv, SVGA_REG_ENABLE, SVGA_REG_ENABLE_ENABLE_HIDE);
++ vmw_write(dev_priv, SVGA_REG_TRACES, 0);
+
+ min = 4;
+ if (dev_priv->capabilities & SVGA_CAP_EXTENDED_FIFO)
+@@ -155,7 +152,8 @@ int vmw_fifo_init(struct vmw_private *de
+ atomic_set(&dev_priv->marker_seq, dev_priv->last_read_seqno);
+ iowrite32(dev_priv->last_read_seqno, fifo_mem + SVGA_FIFO_FENCE);
+ vmw_marker_queue_init(&fifo->marker_queue);
+- return vmw_fifo_send_fence(dev_priv, &dummy);
++
++ return 0;
+ }
+
+ void vmw_fifo_ping_host(struct vmw_private *dev_priv, uint32_t reason)
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+@@ -280,6 +280,7 @@ static int vmw_ldu_crtc_set_config(struc
+ }
+
+ vmw_fb_off(dev_priv);
++ vmw_svga_enable(dev_priv);
+
+ crtc->primary->fb = fb;
+ encoder->crtc = crtc;
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
+@@ -574,7 +574,7 @@ void vmw_mob_unbind(struct vmw_private *
+ vmw_fence_single_bo(bo, NULL);
+ ttm_bo_unreserve(bo);
+ }
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+ }
+
+ /*
+@@ -627,7 +627,7 @@ int vmw_mob_bind(struct vmw_private *dev
+ mob->pt_level += VMW_MOBFMT_PTDEPTH_1 - SVGA3D_MOBFMT_PTDEPTH_1;
+ }
+
+- (void) vmw_3d_resource_inc(dev_priv, false);
++ vmw_fifo_resource_inc(dev_priv);
+
+ cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd));
+ if (unlikely(cmd == NULL)) {
+@@ -648,7 +648,7 @@ int vmw_mob_bind(struct vmw_private *dev
+ return 0;
+
+ out_no_cmd_space:
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+ if (pt_set_up)
+ ttm_bo_unref(&mob->pt_bo);
+
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
+@@ -332,6 +332,7 @@ static int vmw_sou_crtc_set_config(struc
+ }
+
+ vmw_fb_off(dev_priv);
++ vmw_svga_enable(dev_priv);
+
+ if (mode->hdisplay != crtc->mode.hdisplay ||
+ mode->vdisplay != crtc->mode.vdisplay) {
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
+@@ -165,7 +165,7 @@ static int vmw_gb_shader_create(struct v
+ cmd->body.type = shader->type;
+ cmd->body.sizeInBytes = shader->size;
+ vmw_fifo_commit(dev_priv, sizeof(*cmd));
+- (void) vmw_3d_resource_inc(dev_priv, false);
++ vmw_fifo_resource_inc(dev_priv);
+
+ return 0;
+
+@@ -275,7 +275,7 @@ static int vmw_gb_shader_destroy(struct
+ vmw_fifo_commit(dev_priv, sizeof(*cmd));
+ mutex_unlock(&dev_priv->binding_mutex);
+ vmw_resource_release_id(res);
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+
+ return 0;
+ }
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
+@@ -340,7 +340,7 @@ static void vmw_hw_surface_destroy(struc
+ dev_priv->used_memory_size -= res->backup_size;
+ mutex_unlock(&dev_priv->cmdbuf_mutex);
+ }
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+ }
+
+ /**
+@@ -576,14 +576,14 @@ static int vmw_surface_init(struct vmw_p
+
+ BUG_ON(res_free == NULL);
+ if (!dev_priv->has_mob)
+- (void) vmw_3d_resource_inc(dev_priv, false);
++ vmw_fifo_resource_inc(dev_priv);
+ ret = vmw_resource_init(dev_priv, res, true, res_free,
+ (dev_priv->has_mob) ? &vmw_gb_surface_func :
+ &vmw_legacy_surface_func);
+
+ if (unlikely(ret != 0)) {
+ if (!dev_priv->has_mob)
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+ res_free(res);
+ return ret;
+ }
+@@ -1028,7 +1028,7 @@ static int vmw_gb_surface_create(struct
+ if (likely(res->id != -1))
+ return 0;
+
+- (void) vmw_3d_resource_inc(dev_priv, false);
++ vmw_fifo_resource_inc(dev_priv);
+ ret = vmw_resource_alloc_id(res);
+ if (unlikely(ret != 0)) {
+ DRM_ERROR("Failed to allocate a surface id.\n");
+@@ -1068,7 +1068,7 @@ static int vmw_gb_surface_create(struct
+ out_no_fifo:
+ vmw_resource_release_id(res);
+ out_no_id:
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+ return ret;
+ }
+
+@@ -1213,7 +1213,7 @@ static int vmw_gb_surface_destroy(struct
+ vmw_fifo_commit(dev_priv, sizeof(*cmd));
+ mutex_unlock(&dev_priv->binding_mutex);
+ vmw_resource_release_id(res);
+- vmw_3d_resource_dec(dev_priv, false);
++ vmw_fifo_resource_dec(dev_priv);
+
+ return 0;
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/0002-drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch new/patches.drivers/0002-drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch
--- old/patches.drivers/0002-drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/0002-drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch 2015-09-25 10:21:54.000000000 +0200
@@ -0,0 +1,57 @@
+From aa3469ce7afd86a670d22375a64f1b5a06707725 Mon Sep 17 00:00:00 2001
+From: Thomas Hellstrom
+Date: Thu, 27 Aug 2015 10:06:24 -0700
+Subject: [PATCH] drm/vmwgfx: Allow dropped masters render-node like access on legacy nodes v2
+Git-commit: aa3469ce7afd86a670d22375a64f1b5a06707725
+Patch-mainline: v4.3-rc1
+References: boo#934266
+
+Applications like gnome-shell may try to render after dropping master
+privileges. Since the driver should now be safe against this scenario,
+allow those applications to use their legacy node like a render node.
+
+V2: Add missing return statement.
+
+Signed-off-by: Thomas Hellstrom
+Reviewed-by: Sinclair Yeh
+Acked-by: Takashi Iwai
+
+---
+ drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 7 ++++++-
+ drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 6 ++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+@@ -993,10 +993,15 @@ static struct vmw_master *vmw_master_che
+ }
+
+ /*
+- * Check if we were previously master, but now dropped.
++ * Check if we were previously master, but now dropped. In that
++ * case, allow at least render node functionality.
+ */
+ if (vmw_fp->locked_master) {
+ mutex_unlock(&dev->master_mutex);
++
++ if (flags & DRM_RENDER_ALLOW)
++ return NULL;
++
+ DRM_ERROR("Dropped master trying to access ioctl that "
+ "requires authentication.\n");
+ return ERR_PTR(-EACCES);
+--- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
++++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
+@@ -906,6 +906,12 @@ vmw_surface_handle_reference(struct vmw_
+ "surface reference.\n");
+ return -EACCES;
+ }
++ if (ACCESS_ONCE(vmw_fpriv(file_priv)->locked_master)) {
++ DRM_ERROR("Locked master refused legacy "
++ "surface reference.\n");
++ return -EACCES;
++ }
++
+ handle = u_handle;
+ }
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/ALSA-hda-Disable-power_save_node-for-Thinkpads new/patches.drivers/ALSA-hda-Disable-power_save_node-for-Thinkpads
--- old/patches.drivers/ALSA-hda-Disable-power_save_node-for-Thinkpads 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/ALSA-hda-Disable-power_save_node-for-Thinkpads 2015-09-25 10:21:54.000000000 +0200
@@ -0,0 +1,82 @@
+From 7f57d803ee03730d570dc59a9e3e4842b58dd5cc Mon Sep 17 00:00:00 2001
+From: Takashi Iwai
+Date: Thu, 24 Sep 2015 17:36:51 +0200
+Subject: [PATCH] ALSA: hda - Disable power_save_node for Thinkpads
+Git-commit: 7f57d803ee03730d570dc59a9e3e4842b58dd5cc
+Patch-mainline: 4.3-rc3
+References: bsc#943982
+
+Lenovo Thinkpads with recent Realtek codecs seem suffering from click
+noises at power transition since the introduction of widget power
+saving in 4.1 kernel. Although this might be solved by some delays in
+appropriate points, as a quick workaround, just disable the
+power_save_node feature for now. The gain it gives is relatively
+small, and this makes the situation back to pre 4.1 time.
+
+This patch ended up with a bit more code changes than usual because
+the existing fixup for Thinkpads is highly chained. Instead of adding
+yet another chain, combine a few of them into a single fixup entry, as
+a gratis cleanup.
+
+Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=943982
+Cc: # v4.1+
+Signed-off-by: Takashi Iwai
+
+---
+ sound/pci/hda/patch_realtek.c | 31 +++++++++++++++++++------------
+ 1 file changed, 19 insertions(+), 12 deletions(-)
+
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -4188,6 +4188,24 @@ static void alc_fixup_disable_aamix(stru
+ }
+ }
+
++/* fixup for Thinkpad docks: add dock pins, avoid HP parser fixup */
++static void alc_fixup_tpt440_dock(struct hda_codec *codec,
++ const struct hda_fixup *fix, int action)
++{
++ static const struct hda_pintbl pincfgs[] = {
++ { 0x16, 0x21211010 }, /* dock headphone */
++ { 0x19, 0x21a11010 }, /* dock mic */
++ { }
++ };
++ struct alc_spec *spec = codec->spec;
++
++ if (action == HDA_FIXUP_ACT_PRE_PROBE) {
++ spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
++ codec->power_save_node = 0; /* avoid click noises */
++ snd_hda_apply_pincfgs(codec, pincfgs);
++ }
++}
++
+ static void alc_shutup_dell_xps13(struct hda_codec *codec)
+ {
+ struct alc_spec *spec = codec->spec;
+@@ -4562,7 +4580,6 @@ enum {
+ ALC255_FIXUP_HEADSET_MODE_NO_HP_MIC,
+ ALC293_FIXUP_DELL1_MIC_NO_PRESENCE,
+ ALC292_FIXUP_TPT440_DOCK,
+- ALC292_FIXUP_TPT440_DOCK2,
+ ALC283_FIXUP_BXBT2807_MIC,
+ ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED,
+ ALC282_FIXUP_ASPIRE_V5_PINS,
+@@ -5029,17 +5046,7 @@ static const struct hda_fixup alc269_fix
+ },
+ [ALC292_FIXUP_TPT440_DOCK] = {
+ .type = HDA_FIXUP_FUNC,
+- .v.func = alc269_fixup_pincfg_no_hp_to_lineout,
+- .chained = true,
+- .chain_id = ALC292_FIXUP_TPT440_DOCK2
+- },
+- [ALC292_FIXUP_TPT440_DOCK2] = {
+- .type = HDA_FIXUP_PINS,
+- .v.pins = (const struct hda_pintbl[]) {
+- { 0x16, 0x21211010 }, /* dock headphone */
+- { 0x19, 0x21a11010 }, /* dock mic */
+- { }
+- },
++ .v.func = alc_fixup_tpt440_dock,
+ .chained = true,
+ .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST
+ },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/bcache-fix-writeback-thread-incomplete-stripes-starvation.patch new/patches.drivers/bcache-fix-writeback-thread-incomplete-stripes-starvation.patch
--- old/patches.drivers/bcache-fix-writeback-thread-incomplete-stripes-starvation.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/bcache-fix-writeback-thread-incomplete-stripes-starvation.patch 2015-09-25 10:21:54.000000000 +0200
@@ -0,0 +1,51 @@
+From: Vojtech Pavlik
+To: Kent Overstreet
+Cc: linux-kernel@vger.kernel.org, linux-bcache@vger.kernel.org, Kent Overstreet , Emmanuel Florac , Jiri Kosina , Jens Axboe
+Subject: [PATCH] bcache: Fix writeback_thread never writing back incomplete stripes.
+Patch-mainline: not yet, submitted
+
+Fix writeback_thread never finishing writing back all dirty data in bcache when
+partial_stripes_expensive is set, and spinning, consuming 100% of CPU instead.
+
+Signed-off-by: Vojtech Pavlik
+---
+
+This is a fix for the current upstream bcache, not the devel branch.
+
+If partial_stripes_expensive is set for a cache set, then writeback_thread
+always attempts to write full stripes out back to the backing device first.
+However, since it does that based on a bitmap and not a simple linear
+search, like the rest of the code of refill_dirty(), it changes the
+last_scanned pointer so that never points to 'end'. refill_dirty() then
+never tries to scan from 'start', resulting in the writeback_thread
+looping, consuming 100% of CPU, but never making progress in writing out
+the incomplete dirty stripes in the cache.
+
+Scanning the tree after not finding enough full stripes fixes the issue.
+
+Incomplete dirty stripes are written to the backing device, the device
+eventually reaches a clean state if there is nothing dirtying data and
+writeback_thread sleeps. This also fixes the problem of the cache device
+not being possible to detach in the partial_stripes_expensive scenario.
+
+It may be more efficient to separate the last_scanned field for normal and
+stripe scans instead.
+
+ drivers/md/bcache/writeback.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/md/bcache/writeback.c b/drivers/md/bcache/writeback.c
+index f1986bc..6f8b81d 100644
+--- a/drivers/md/bcache/writeback.c
++++ b/drivers/md/bcache/writeback.c
+@@ -382,6 +382,7 @@ static bool refill_dirty(struct cached_dev *dc)
+ refill_full_stripes(dc);
+ if (array_freelist_empty(&buf->freelist))
+ return false;
++ bch_refill_keybuf(dc->disk.c, buf, &end, dirty_pred);
+ }
+
+ if (bkey_cmp(&buf->last_scanned, &end) >= 0) {
+--
+2.1.4
+
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/0001-NFSv4-When-returning-a-delegation-don-t-reclaim-an-i.patch new/patches.fixes/0001-NFSv4-When-returning-a-delegation-don-t-reclaim-an-i.patch
--- old/patches.fixes/0001-NFSv4-When-returning-a-delegation-don-t-reclaim-an-i.patch 2015-08-28 12:59:34.000000000 +0200
+++ new/patches.fixes/0001-NFSv4-When-returning-a-delegation-don-t-reclaim-an-i.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
-From: NeilBrown
-Date: Wed, 24 Jun 2015 12:56:20 +1000
-Subject: [PATCH] NFSv4: When returning a delegation, don't reclaim an
- incompatible open mode.
-Patch-mainline: not yet
-References: bnc#934202
-
-It is possible to have an active open with one mode, and a delegation
-for the same file with a different mode.
-In particular, a WR_ONLY open and an RD_ONLY delegation.
-
-When returning the delegation, we currently try to claim opens for
-every open type (n_rdwr, n_rdonly, n_wronly). As there is no harm
-in claiming an open for a mode that we already have, this is often
-simplest.
-
-However if the delegation only provides a subset of the modes that we
-currently have open, this will produce an error from the server. e.g.
-
-NFS: nfs4_handle_delegation_recall_error: unhandled error -13
-
-So when claiming open modes prior to returning a delegation, skip the
-open request if the mode is not covered by the delegation - the open_stateid
-must already cover that mode, so there is nothing to do.
-
-Signed-off-by: NeilBrown
----
- fs/nfs/nfs4proc.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -1553,6 +1553,13 @@ static int nfs4_open_recover_helper(stru
- struct nfs4_state *newstate;
- int ret;
-
-+ if ((opendata->o_arg.claim == NFS4_OPEN_CLAIM_DELEGATE_CUR ||
-+ opendata->o_arg.claim == NFS4_OPEN_CLAIM_DELEG_CUR_FH) &&
-+ (opendata->o_arg.u.delegation_type & fmode) != fmode)
-+ /* This mode can't have been delegated, so we must have
-+ * a valid open_stateid to cover it - not need to reclaim.
-+ */
-+ return 0;
- opendata->o_arg.open_flags = 0;
- opendata->o_arg.fmode = fmode;
- opendata->o_arg.share_access = nfs4_map_atomic_open_share(
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 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/0001-NFSv4-do-not-accept-an-incompatible-delegation.patch 2015-09-14 17:37:27.000000000 +0200
@@ -0,0 +1,56 @@
+From: Neil Brown
+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
+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/btrfs-fix-stale-dir-entries-after-unlink-inode-eviction-and-fsync new/patches.fixes/btrfs-fix-stale-dir-entries-after-unlink-inode-eviction-and-fsync
--- old/patches.fixes/btrfs-fix-stale-dir-entries-after-unlink-inode-eviction-and-fsync 2015-08-28 12:59:34.000000000 +0200
+++ new/patches.fixes/btrfs-fix-stale-dir-entries-after-unlink-inode-eviction-and-fsync 2015-09-14 17:37:27.000000000 +0200
@@ -104,7 +104,7 @@
generic/098 4s ... - output mismatch (see /home/fdmanana/git/hub/xfstests/results//generic/098.out.bad)
# --- tests/generic/098.out 2015-07-23 18:01:12.616175932 +0100
# +++ /home/fdmanana/git/hub/xfstests/results//generic/098.out.bad 2015-07-23 18:04:58.924138308 +0100
- @@ -1,3 +1,6 @@
+# @@ -1,3 +1,6 @@
QA output created by 098
Entries in testdir:
+bar
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip-take-two.patch new/patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip-take-two.patch
--- old/patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip-take-two.patch 2015-08-28 12:59:34.000000000 +0200
+++ new/patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip-take-two.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-From: Chris Wilson
-Date: Mon, 27 Apr 2015 13:41:15 +0100
-Subject: drm/i915: Ensure cache flushes prior to doing CS flips -- take two
-Patch-mainline: not yet
-References: bnc#931300
-
-Synchronising to an object active on the same ring is a no-op, for the
-benefit of execbuffer scheduler. However, for CS flips this means that
-we can forgo checking whether the last write request of the object is
-actually queued and more importantly whether the cache flush for the
-write was emitted.
-
-Signed-off-by: Chris Wilson
-Signed-off-by: Daniel Vetter
-Signed-off-by: Jiri Slaby
----
- drivers/gpu/drm/i915/intel_display.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -10022,6 +10022,13 @@ static int intel_queue_mmio_flip(struct
- uint32_t flags)
- {
- struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
-+ int ret;
-+
-+ if (obj->last_write_req) {
-+ ret = i915_gem_check_olr(obj->last_write_req);
-+ if (ret)
-+ return ret;
-+ }
-
- i915_gem_request_assign(&intel_crtc->mmio_flip.req,
- obj->last_write_req);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip.patch new/patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip.patch
--- old/patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip.patch 2015-08-28 12:59:34.000000000 +0200
+++ new/patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,40 +0,0 @@
-From: Chris Wilson
-Date: Mon, 27 Apr 2015 13:41:15 +0100
-Subject: drm/i915: Ensure cache flushes prior to doing CS flips
-Patch-mainline: 4.2-rc1
-Git-commit: d94b5030d26b4f45510a092262bc2b542a00bd7c
-References: bnc#931300
-
-Synchronising to an object active on the same ring is a no-op, for the
-benefit of execbuffer scheduler. However, for CS flips this means that
-we can forgo checking whether the last write request of the object is
-actually queued and more importantly whether the cache flush for the
-write was emitted.
-
-Signed-off-by: Chris Wilson
-Signed-off-by: Daniel Vetter
-Signed-off-by: Jiri Slaby
----
- drivers/gpu/drm/i915/intel_display.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index c890e03939fa..3c8801cecd3f 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -11040,6 +11040,12 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
- i915_gem_request_assign(&work->flip_queued_req,
- obj->last_write_req);
- } else {
-+ if (obj->last_write_req) {
-+ ret = i915_gem_check_olr(obj->last_write_req);
-+ if (ret)
-+ goto cleanup_unpin;
-+ }
-+
- ret = dev_priv->display.queue_flip(dev, crtc, fb, obj, ring,
- page_flip_flags);
- if (ret)
---
-2.4.3
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/leds-lp55xx-Correct-Kconfig-dependency-for-f-w-user- new/patches.fixes/leds-lp55xx-Correct-Kconfig-dependency-for-f-w-user-
--- old/patches.fixes/leds-lp55xx-Correct-Kconfig-dependency-for-f-w-user- 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/leds-lp55xx-Correct-Kconfig-dependency-for-f-w-user- 2015-09-14 17:37:27.000000000 +0200
@@ -0,0 +1,38 @@
+From: Takashi Iwai
+Date: Mon, 7 Sep 2015 14:09:22 +0200
+Subject: [PATCH] leds:lp55xx: Correct Kconfig dependency for f/w user helper
+Patch-mainline: Submitted, Mon, 7 Sep 2015, LKML
+Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
+References: boo#944661
+
+The commit [b67893206fc0: leds:lp55xx: fix firmware loading error]
+tries to address the firmware file handling with user helper, but it
+sets a wrong Kconfig CONFIG_FW_LOADER_USER_HELPER_FALLBACK. Since the
+wrong option was enabled, the system got a regression -- it suffers
+from the unexpected long delays for non-present firmware files.
+
+This patch corrects the Kconfig dependency to the right one,
+CONFIG_FW_LOADER_USER_HELPER. This doesn't change the fallback
+behavior but only enables UMH when needed.
+
+Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=944661
+Fixes: b67893206fc0 ('leds:lp55xx: fix firmware loading error')
+Cc: # v4.2+
+Signed-off-by: Takashi Iwai
+Acked-by: Takashi Iwai
+
+---
+ drivers/leds/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/leds/Kconfig
++++ b/drivers/leds/Kconfig
+@@ -229,7 +229,7 @@ config LEDS_LP55XX_COMMON
+ tristate "Common Driver for TI/National LP5521/5523/55231/5562/8501"
+ depends on LEDS_LP5521 || LEDS_LP5523 || LEDS_LP5562 || LEDS_LP8501
+ select FW_LOADER
+- select FW_LOADER_USER_HELPER_FALLBACK
++ select FW_LOADER_USER_HELPER
+ help
+ This option supports common operations for LP5521/5523/55231/5562/8501
+ devices.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/mmc-sdhci-fix-dma-memory-leak-in-sdhci_pre_req.patch new/patches.fixes/mmc-sdhci-fix-dma-memory-leak-in-sdhci_pre_req.patch
--- old/patches.fixes/mmc-sdhci-fix-dma-memory-leak-in-sdhci_pre_req.patch 2015-08-28 12:59:34.000000000 +0200
+++ new/patches.fixes/mmc-sdhci-fix-dma-memory-leak-in-sdhci_pre_req.patch 2015-09-14 17:37:27.000000000 +0200
@@ -1,9 +1,8 @@
From: Haibo Chen
Date: Tue, 25 Aug 2015 10:02:11 +0800
Subject: mmc: sdhci: fix dma memory leak in sdhci_pre_req()
-Patch-mainline: Queued in subsystem maintainer repository
+Patch-mainline: v4.3-rc1
Git-commit: d31911b9374a76560d2c8ea4aa6ce5781621e81d
-Git-repo: git://git.linaro.org/people/ulf.hansson/mmc.git#next
References: bnc#934531
Currently one mrq->data maybe execute dma_map_sg() twice
@@ -19,24 +18,22 @@
This patch use another method to map the dma memory for the mrq->data
which can fix this dma memory leak issue.
-[js] add sg_count to mmc_data as happenned in 208489032bdd8d (mmc:
- mediatek: Add Mediatek MMC driver).
-
Fixes: 348487cb28e6 ("mmc: sdhci: use pipeline mmc requests to improve performance")
Reported-and-tested-by: Jiri Slaby
Signed-off-by: Haibo Chen
Signed-off-by: Ulf Hansson
Signed-off-by: Jiri Slaby
---
- drivers/mmc/host/sdhci.c | 67 +++++++++++++++++------------------------------
- drivers/mmc/host/sdhci.h | 8 ++---
- include/linux/mmc/core.h | 1
- 3 files changed, 30 insertions(+), 46 deletions(-)
+ drivers/mmc/host/sdhci.c | 67 ++++++++++++++++++------------------------------
+ drivers/mmc/host/sdhci.h | 8 +++---
+ 2 files changed, 29 insertions(+), 46 deletions(-)
+diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
+index 0f1a8876e3b1..31678b55b5ec 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
-@@ -55,8 +55,7 @@ static int sdhci_execute_tuning(struct m
- static void sdhci_tuning_timer(unsigned long data);
+@@ -54,8 +54,7 @@ static void sdhci_finish_command(struct sdhci_host *);
+ static int sdhci_execute_tuning(struct mmc_host *mmc, u32 opcode);
static void sdhci_enable_preset_value(struct sdhci_host *host, bool enable);
static int sdhci_pre_dma_transfer(struct sdhci_host *host,
- struct mmc_data *data,
@@ -45,7 +42,7 @@
static int sdhci_do_get_cd(struct sdhci_host *host);
#ifdef CONFIG_PM
-@@ -510,7 +509,7 @@ static int sdhci_adma_table_pre(struct s
+@@ -495,7 +494,7 @@ static int sdhci_adma_table_pre(struct sdhci_host *host,
goto fail;
BUG_ON(host->align_addr & host->align_mask);
@@ -54,7 +51,7 @@
if (host->sg_count < 0)
goto unmap_align;
-@@ -649,9 +648,11 @@ static void sdhci_adma_table_post(struct
+@@ -634,9 +633,11 @@ static void sdhci_adma_table_post(struct sdhci_host *host,
}
}
@@ -67,7 +64,7 @@
}
static u8 sdhci_calc_timeout(struct sdhci_host *host, struct mmc_command *cmd)
-@@ -847,7 +848,7 @@ static void sdhci_prepare_data(struct sd
+@@ -832,7 +833,7 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd)
} else {
int sg_cnt;
@@ -76,7 +73,7 @@
if (sg_cnt <= 0) {
/*
* This only happens when someone fed
-@@ -963,11 +964,13 @@ static void sdhci_finish_data(struct sdh
+@@ -948,11 +949,13 @@ static void sdhci_finish_data(struct sdhci_host *host)
if (host->flags & SDHCI_USE_ADMA)
sdhci_adma_table_post(host, data);
else {
@@ -91,7 +88,7 @@
}
}
-@@ -2129,49 +2132,36 @@ static void sdhci_post_req(struct mmc_ho
+@@ -2116,49 +2119,36 @@ static void sdhci_post_req(struct mmc_host *mmc, struct mmc_request *mrq,
struct mmc_data *data = mrq->data;
if (host->flags & SDHCI_REQ_USE_DMA) {
@@ -155,7 +152,7 @@
return sg_count;
}
-@@ -2181,16 +2171,10 @@ static void sdhci_pre_req(struct mmc_hos
+@@ -2168,16 +2158,10 @@ static void sdhci_pre_req(struct mmc_host *mmc, struct mmc_request *mrq,
{
struct sdhci_host *host = mmc_priv(mmc);
@@ -174,7 +171,7 @@
}
static void sdhci_card_event(struct mmc_host *mmc)
-@@ -3088,7 +3072,6 @@ int sdhci_add_host(struct sdhci_host *ho
+@@ -3049,7 +3033,6 @@ int sdhci_add_host(struct sdhci_host *host)
host->max_clk = host->ops->get_max_clock(host);
}
@@ -182,6 +179,8 @@
/*
* In case of Host Controller v3.00, find out whether clock
* multiplier is supported.
+diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
+index 67046ca0c1f0..7c02ff46c8ac 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -309,9 +309,10 @@ struct sdhci_adma2_64_desc {
@@ -198,21 +197,14 @@
};
struct sdhci_host {
-@@ -506,7 +507,6 @@ struct sdhci_host {
+@@ -505,7 +506,6 @@ struct sdhci_host {
+ unsigned int tuning_mode; /* Re-tuning mode supported by host */
#define SDHCI_TUNING_MODE_1 0
- struct timer_list tuning_timer; /* Timer for tuning */
- struct sdhci_host_next next_data;
unsigned long private[0] ____cacheline_aligned;
};
---- a/include/linux/mmc/core.h
-+++ b/include/linux/mmc/core.h
-@@ -121,6 +121,7 @@ struct mmc_data {
- struct mmc_request *mrq; /* associated request */
-
- unsigned int sg_len; /* size of scatter list */
-+ int sg_count; /* mapped sg entries */
- struct scatterlist *sg; /* I/O scatter list */
- s32 host_cookie; /* host private data */
- };
+--
+2.5.0
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/workqueue-Make-flush_workqueue-available-again-to-no.patch new/patches.fixes/workqueue-Make-flush_workqueue-available-again-to-no.patch
--- old/patches.fixes/workqueue-Make-flush_workqueue-available-again-to-no.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/workqueue-Make-flush_workqueue-available-again-to-no.patch 2015-09-14 17:37:27.000000000 +0200
@@ -0,0 +1,34 @@
+From: Tim Gardner
+Date: Tue, 4 Aug 2015 11:26:04 -0600
+Subject: workqueue: Make flush_workqueue() available again to non GPL modules
+Patch-mainline: v4.3-rc1
+Git-commit: 1dadafa86a779884f14a6e7a3ddde1a57b0a0a65
+
+Commit 37b1ef31a568fc02e53587620226e5f3c66454c8 ("workqueue: move
+flush_scheduled_work() to workqueue.h") moved the exported non GPL
+flush_scheduled_work() from a function to an inline wrapper.
+Unfortunately, it directly calls flush_workqueue() which is a GPL function.
+This has the effect of changing the licensing requirement for this function
+and makes it unavailable to non GPL modules.
+
+See commit ad7b1f841f8a54c6d61ff181451f55b68175e15a ("workqueue: Make
+schedule_work() available again to non GPL modules") for precedent.
+
+Signed-off-by: Tim Gardner
+Signed-off-by: Tejun Heo
+Signed-off-by: Jiri Slaby
+---
+ kernel/workqueue.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -2614,7 +2614,7 @@ void flush_workqueue(struct workqueue_st
+ out_unlock:
+ mutex_unlock(&wq->mutex);
+ }
+-EXPORT_SYMBOL_GPL(flush_workqueue);
++EXPORT_SYMBOL(flush_workqueue);
+
+ /**
+ * drain_workqueue - drain a workqueue
++++++ patches.kernel.org.tar.bz2 ++++++
++++ 33148 lines of diff (skipped)
++++++ patches.suse.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/8250-sysrq-ctrl_o.patch new/patches.suse/8250-sysrq-ctrl_o.patch
--- old/patches.suse/8250-sysrq-ctrl_o.patch 2015-08-28 11:17:01.000000000 +0200
+++ new/patches.suse/8250-sysrq-ctrl_o.patch 2015-09-22 17:17:36.000000000 +0200
@@ -113,14 +113,14 @@
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -102,6 +102,8 @@ static unsigned int skip_txen_test; /* f
- #define CONFIG_SERIAL_MANY_PORTS 1
- #endif
+ #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
+
+#define arch_8250_sysrq_via_ctrl_o(a,b) 0
+
+ #include
/*
- * HUB6 is always on. This will be removed once the header
- * files have been cleaned.
+ * SERIAL_PORT_DFNS tells us about built-in ports that have no
@@ -1423,7 +1425,11 @@ receive_chars(struct uart_8250_port *up,
do {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-fix-hang-during-inode-eviction-due-to-concurre.patch new/patches.suse/btrfs-fix-hang-during-inode-eviction-due-to-concurre.patch
--- old/patches.suse/btrfs-fix-hang-during-inode-eviction-due-to-concurre.patch 2015-08-28 11:17:01.000000000 +0200
+++ new/patches.suse/btrfs-fix-hang-during-inode-eviction-due-to-concurre.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,164 +0,0 @@
-From: Filipe Manana
-Date: Tue, 26 May 2015 00:55:42 +0100
-Patch-mainline: 4.2-rc1
-Git-commit: 6ca0709756710c47ec604dd08b9fc45929d36390
-References: bnc#937403
-Subject: [PATCH] Btrfs: fix hang during inode eviction due to concurrent
- readahead
-
-Zygo Blaxell and other users have reported occasional hangs while an
-inode is being evicted, leading to traces like the following:
-
-[ 5281.972322] INFO: task rm:20488 blocked for more than 120 seconds.
-[ 5281.973836] Not tainted 4.0.0-rc5-btrfs-next-9+ #2
-[ 5281.974818] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
-[ 5281.976364] rm D ffff8800724cfc38 0 20488 7747 0x00000000
-[ 5281.977506] ffff8800724cfc38 ffff8800724cfc38 ffff880065da5c50 0000000000000001
-[ 5281.978461] ffff8800724cffd8 ffff8801540a5f50 0000000000000008 ffff8801540a5f78
-[ 5281.979541] ffff8801540a5f50 ffff8800724cfc58 ffffffff8143107e 0000000000000123
-[ 5281.981396] Call Trace:
-[ 5281.982066] [<ffffffff8143107e>] schedule+0x74/0x83
-[ 5281.983341] [<ffffffffa03b33cf>] wait_on_state+0xac/0xcd [btrfs]
-[ 5281.985127] [<ffffffff81075cd6>] ? signal_pending_state+0x31/0x31
-[ 5281.986715] [<ffffffffa03b4b71>] wait_extent_bit.constprop.32+0x7c/0xde [btrfs]
-[ 5281.988680] [<ffffffffa03b540b>] lock_extent_bits+0x5d/0x88 [btrfs]
-[ 5281.990200] [<ffffffffa03a621d>] btrfs_evict_inode+0x24e/0x5be [btrfs]
-[ 5281.991781] [<ffffffff8116964d>] evict+0xa0/0x148
-[ 5281.992735] [<ffffffff8116a43d>] iput+0x18f/0x1e5
-[ 5281.993796] [<ffffffff81160d4a>] do_unlinkat+0x15b/0x1fa
-[ 5281.994806] [<ffffffff81435b54>] ? ret_from_sys_call+0x1d/0x58
-[ 5281.996120] [<ffffffff8107d314>] ? trace_hardirqs_on_caller+0x18f/0x1ab
-[ 5281.997562] [<ffffffff8123960b>] ? trace_hardirqs_on_thunk+0x3a/0x3f
-[ 5281.998815] [<ffffffff81161a16>] SyS_unlinkat+0x29/0x2b
-[ 5281.999920] [<ffffffff81435b32>] system_call_fastpath+0x12/0x17
-[ 5282.001299] 1 lock held by rm/20488:
-[ 5282.002066] #0: (sb_writers#12){.+.+.+}, at: [<ffffffff8116dd81>] mnt_want_write+0x24/0x4b
-
-This happens when we have readahead, which calls readpages(), happening
-right before the inode eviction handler is invoked. So the reason is
-essentially:
-
-1) readpages() is called while a reference on the inode is held, so
- eviction can not be triggered before readpages() returns. It also
- locks one or more ranges in the inode's io_tree (which is done at
- extent_io.c:__do_contiguous_readpages());
-
-2) readpages() submits several read bios, all with an end io callback
- that runs extent_io.c:end_bio_extent_readpage() and that is executed
- by other task when a bio finishes, corresponding to a work queue
- (fs_info->end_io_workers) worker kthread. This callback unlocks
- the ranges in the inode's io_tree that were previously locked in
- step 1;
-
-3) readpages() returns, the reference on the inode is dropped;
-
-4) One or more of the read bios previously submitted are still not
- complete (their end io callback was not yet invoked or has not
- yet finished execution);
-
-5) Inode eviction is triggered (through an unlink call for example).
- The inode reference count was not incremented before submitting
- the read bios, therefore this is possible;
-
-6) The eviction handler starts executing and enters the loop that
- iterates over all extent states in the inode's io_tree;
-
-7) The loop picks one extent state record and uses its ->start and
- ->end fields, after releasing the inode's io_tree spinlock, to
- call lock_extent_bits() and clear_extent_bit(). The call to lock
- the range [state->start, state->end] blocks because the whole
- range or a part of it was locked by the previous call to
- readpages() and the corresponding end io callback, which unlocks
- the range was not yet executed;
-
-8) The end io callback for the read bio is executed and unlocks the
- range [state->start, state->end] (or a superset of that range).
- And at clear_extent_bit() the extent_state record state is used
- as a second argument to split_state(), which sets state->start to
- a larger value;
-
-9) The task executing the eviction handler is woken up by the task
- executing the bio's end io callback (through clear_state_bit) and
- the eviction handler locks the range
- [old value for state->start, state->end]. Shortly after, when
- calling clear_extent_bit(), it unlocks the range
- [new value for state->start, state->end], so it ends up unlocking
- only part of the range that it locked, leaving an extent state
- record in the io_tree that represents the unlocked subrange;
-
-10) The eviction handler loop, in its next iteration, gets the
- extent_state record for the subrange that it did not unlock in the
- previous step and then tries to lock it, resulting in an hang.
-
-So fix this by not using the ->start and ->end fields of an existing
-extent_state record. This is a simple solution, and an alternative
-could be to bump the inode's reference count before submitting each
-read bio and having it dropped in the bio's end io callback. But that
-would be a more invasive/complex change and would not protect against
-other possible places that are not holding a reference on the inode
-as well. Something to consider in the future.
-
-Many thanks to Zygo Blaxell for reporting, in the mailing list, the
-issue, a set of scripts to trigger it and testing this fix.
-
-Reported-by: Zygo Blaxell
-Tested-by: Zygo Blaxell
-Signed-off-by: Filipe Manana
-Signed-off-by: Chris Mason
----
- fs/btrfs/inode.c | 26 +++++++++++++++++++++-----
- 1 file changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
-index 8bb0136..855935f 100644
---- a/fs/btrfs/inode.c
-+++ b/fs/btrfs/inode.c
-@@ -4986,24 +4986,40 @@ static void evict_inode_truncate_pages(struct inode *inode)
- }
- write_unlock(&map_tree->lock);
-
-+ /*
-+ * Keep looping until we have no more ranges in the io tree.
-+ * We can have ongoing bios started by readpages (called from readahead)
-+ * that didn't get their end io callbacks called yet or they are still
-+ * in progress ((extent_io.c:end_bio_extent_readpage()). This means some
-+ * ranges can still be locked and eviction started because before
-+ * submitting those bios, which are executed by a separate task (work
-+ * queue kthread), inode references (inode->i_count) were not taken
-+ * (which would be dropped in the end io callback of each bio).
-+ * Therefore here we effectively end up waiting for those bios and
-+ * anyone else holding locked ranges without having bumped the inode's
-+ * reference count - if we don't do it, when they access the inode's
-+ * io_tree to unlock a range it may be too late, leading to an
-+ * use-after-free issue.
-+ */
- spin_lock(&io_tree->lock);
- while (!RB_EMPTY_ROOT(&io_tree->state)) {
- struct extent_state *state;
- struct extent_state *cached_state = NULL;
-+ u64 start;
-+ u64 end;
-
- node = rb_first(&io_tree->state);
- state = rb_entry(node, struct extent_state, rb_node);
-- atomic_inc(&state->refs);
-+ start = state->start;
-+ end = state->end;
- spin_unlock(&io_tree->lock);
-
-- lock_extent_bits(io_tree, state->start, state->end,
-- 0, &cached_state);
-- clear_extent_bit(io_tree, state->start, state->end,
-+ lock_extent_bits(io_tree, start, end, 0, &cached_state);
-+ clear_extent_bit(io_tree, start, end,
- EXTENT_LOCKED | EXTENT_DIRTY |
- EXTENT_DELALLOC | EXTENT_DO_ACCOUNTING |
- EXTENT_DEFRAG, 1, 1,
- &cached_state, GFP_NOFS);
-- free_extent_state(state);
-
- cond_resched();
- spin_lock(&io_tree->lock);
---
-1.8.4.5
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/crasher-26.diff new/patches.suse/crasher-26.diff
--- old/patches.suse/crasher-26.diff 2015-08-28 11:17:01.000000000 +0200
+++ new/patches.suse/crasher-26.diff 2015-09-22 17:17:36.000000000 +0200
@@ -19,9 +19,9 @@
+ help
+ Slab cache memory tester. Only use this as a module
+
- config MSM_SMD_PKT
- bool "Enable device interface for some SMD packet ports"
- default n
+ config TILE_SROM
+ bool "Character-device access via hypervisor to the Tilera SPI ROM"
+ depends on TILE
--- a/drivers/char/Makefile
+++ b/drivers/char/Makefile
@@ -57,6 +57,7 @@ obj-$(CONFIG_IPMI_HANDLER) += ipmi/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/scsi-netlink-ml new/patches.suse/scsi-netlink-ml
--- old/patches.suse/scsi-netlink-ml 2015-08-28 11:17:01.000000000 +0200
+++ new/patches.suse/scsi-netlink-ml 2015-09-22 17:17:36.000000000 +0200
@@ -18,9 +18,9 @@
--- a/drivers/scsi/scsi_error.c
+++ b/drivers/scsi/scsi_error.c
@@ -25,6 +25,8 @@
+ #include
#include
#include
- #include
+#include
+#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/stack-unwind new/patches.suse/stack-unwind
--- old/patches.suse/stack-unwind 2015-08-28 11:17:01.000000000 +0200
+++ new/patches.suse/stack-unwind 2015-09-22 17:17:36.000000000 +0200
@@ -22,10 +22,43 @@
Update Jun 24 2014 jeffm:
- VSYSCALL_START / END replaced upstream with
VSYSCALL_ADDR / VSYSCALL_ADDR + PAGE_SIZE
+Update Sep 22 2015 jslaby:
+- Enablement after manual dwarf annotations are gone from upstream
+
+TODO:
+* annotate arch_unwind_init_running by FRAME_BEGIN/END in both entry_32/64.S.
+ (Only after stacktool is merged.)
+* assembler not unwound properly, as annotations are gone -- frame ptr is used
+ for the rest of the stack instead (as always).
+
+---
+ Makefile | 5
+ arch/x86/Kconfig | 2
+ arch/x86/Makefile | 11
+ arch/x86/entry/calling.h | 13
+ arch/x86/entry/entry_32.S | 33
+ arch/x86/entry/entry_64.S | 32
+ arch/x86/include/asm/stacktrace.h | 4
+ arch/x86/include/asm/switch_to.h | 10
+ arch/x86/include/asm/unwind.h | 159 +++
+ arch/x86/kernel/dumpstack.c | 88 ++
+ arch/x86/kernel/dumpstack_32.c | 4
+ arch/x86/kernel/dumpstack_64.c | 7
+ arch/x86/kernel/vmlinux.lds.S | 2
+ arch/x86/tools/relocs.c | 1
+ include/asm-generic/vmlinux.lds.h | 22
+ include/linux/module.h | 3
+ include/linux/unwind.h | 135 +++
+ init/main.c | 3
+ kernel/Makefile | 1
+ kernel/module.c | 32
+ kernel/unwind.c | 1652 ++++++++++++++++++++++++++++++++++++++
+ lib/Kconfig.debug | 24
+ 22 files changed, 2237 insertions(+), 6 deletions(-)
--- a/Makefile
+++ b/Makefile
-@@ -727,6 +727,11 @@ endif
+@@ -729,6 +729,11 @@ endif
KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments)
@@ -39,7 +72,7 @@
KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g)
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -627,7 +627,7 @@ config X86_32_IRIS
+@@ -635,7 +635,7 @@ config X86_32_IRIS
config SCHED_OMIT_FRAME_POINTER
def_bool y
prompt "Single-depth WCHAN output"
@@ -50,7 +83,30 @@
is disabled then wchan values will recurse back to the
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
-@@ -163,7 +163,9 @@ KBUILD_CFLAGS += -pipe
+@@ -149,6 +149,11 @@ endif
+ sp-$(CONFIG_X86_32) := esp
+ sp-$(CONFIG_X86_64) := rsp
+
++# do binutils support CFI?
++cfi := $(call as-instr,.cfi_startproc\n.cfi_rel_offset $(sp-y)$(comma)0\n.cfi_endproc,-DCONFIG_AS_CFI=1)
++# is .cfi_signal_frame supported too?
++cfi-sections := $(call as-instr,.cfi_sections .debug_frame,-DCONFIG_AS_CFI_SECTIONS=1)
++
+ # does binutils support specific instructions?
+ asinstr := $(call as-instr,fxsaveq (%rax),-DCONFIG_AS_FXSAVEQ=1)
+ asinstr += $(call as-instr,pshufb %xmm0$(comma)%xmm0,-DCONFIG_AS_SSSE3=1)
+@@ -156,8 +161,8 @@ asinstr += $(call as-instr,crc32l %eax$(
+ avx_instr := $(call as-instr,vxorps %ymm0$(comma)%ymm1$(comma)%ymm2,-DCONFIG_AS_AVX=1)
+ avx2_instr :=$(call as-instr,vpbroadcastb %xmm0$(comma)%ymm1,-DCONFIG_AS_AVX2=1)
+
+-KBUILD_AFLAGS += $(asinstr) $(avx_instr) $(avx2_instr)
+-KBUILD_CFLAGS += $(asinstr) $(avx_instr) $(avx2_instr)
++KBUILD_AFLAGS += $(cfi) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr)
++KBUILD_CFLAGS += $(cfi) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr)
+
+ LDFLAGS := -m elf_$(UTS_MACHINE)
+
+@@ -166,7 +171,9 @@ KBUILD_CFLAGS += -pipe
# Workaround for a gcc prelease that unfortunately was shipped in a suse release
KBUILD_CFLAGS += -Wno-sign-compare
#
@@ -60,27 +116,111 @@
# prevent gcc from generating any FP code by mistake
KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow
KBUILD_CFLAGS += $(call cc-option,-mno-avx,)
---- a/arch/x86/include/asm/dwarf2.h
-+++ b/arch/x86/include/asm/dwarf2.h
-@@ -35,7 +35,8 @@
- #define CFI_SIGNAL_FRAME
- #endif
+--- a/arch/x86/entry/calling.h
++++ b/arch/x86/entry/calling.h
+@@ -46,6 +46,19 @@ For 32-bit we have the following convent
+
+ */
--#if defined(CONFIG_AS_CFI_SECTIONS) && defined(__ASSEMBLY__)
+#if !defined(CONFIG_UNWIND_INFO) && defined(CONFIG_AS_CFI_SECTIONS) \
-+ && defined(__ASSEMBLY__)
- /*
- * Emit CFI data in .debug_frame sections, not .eh_frame sections.
- * The latter we currently just discard since we don't do DWARF
-@@ -53,7 +54,7 @@
- * Due to the structure of pre-exisiting code, don't use assembler line
- * comment character # to ignore the arguments. Instead, use a dummy macro.
- */
--.macro cfi_ignore a=0, b=0, c=0, d=0
-+.macro cfi_ignore a=0, b=0, c=0, d=0, e=0, f=0, g=0, h=0
- .endm
++ && defined(__ASSEMBLY__)
++ /*
++ * Emit CFI data in .debug_frame sections, not .eh_frame sections.
++ * The latter we currently just discard since we don't do DWARF
++ * unwinding at runtime. So only the offline DWARF information is
++ * useful to anyone. Note we should not use this directive if this
++ * file is used in the vDSO assembly, or if vmlinux.lds.S gets
++ * changed so it doesn't discard .eh_frame.
++ */
++ .cfi_sections .debug_frame
++#endif
++
+ #ifdef CONFIG_X86_64
+
+ /*
+--- a/arch/x86/entry/entry_32.S
++++ b/arch/x86/entry/entry_32.S
+@@ -224,6 +224,39 @@ ENTRY(ret_from_fork)
+ jmp syscall_exit
+ END(ret_from_fork)
+
++#ifdef CONFIG_STACK_UNWIND
++ENTRY(arch_unwind_init_running)
++ movl 4(%esp), %edx
++ movl (%esp), %ecx
++ leal 4(%esp), %eax
++ movl %ebx, PT_EBX(%edx)
++ xorl %ebx, %ebx
++ movl %ebx, PT_ECX(%edx)
++ movl %ebx, PT_EDX(%edx)
++ movl %esi, PT_ESI(%edx)
++ movl %edi, PT_EDI(%edx)
++ movl %ebp, PT_EBP(%edx)
++ movl %ebx, PT_EAX(%edx)
++ movl $__USER_DS, PT_DS(%edx)
++ movl $__USER_DS, PT_ES(%edx)
++ movl $__KERNEL_PERCPU, PT_FS(%edx)
++ movl $__KERNEL_STACK_CANARY, PT_GS(%edx)
++ movl %eax, PT_OLDESP(%edx)
++ movl 16(%esp), %eax
++ movl %ebx, PT_ORIG_EAX(%edx)
++ movl %ecx, PT_EIP(%edx)
++ movl 12(%esp), %ecx
++ movl $__KERNEL_CS, PT_CS(%edx)
++ movl %eax, 12(%esp)
++ movl 8(%esp), %eax
++ movl %ecx, 8(%esp)
++ movl %ebx, PT_EFLAGS(%edx)
++ movl PT_EBX(%edx), %ebx
++ movl $__KERNEL_DS, PT_OLDSS(%edx)
++ jmpl *%eax
++ENDPROC(arch_unwind_init_running)
++#endif
++
+ ENTRY(ret_from_kernel_thread)
+ pushl %eax
+ call schedule_tail
+--- a/arch/x86/entry/entry_64.S
++++ b/arch/x86/entry/entry_64.S
+@@ -973,6 +973,38 @@ ENTRY(do_softirq_own_stack)
+ ret
+ END(do_softirq_own_stack)
+
++#ifdef CONFIG_STACK_UNWIND
++ENTRY(arch_unwind_init_running)
++ movq %r15, R15(%rdi)
++ movq %r14, R14(%rdi)
++ xchgq %rsi, %rdx
++ movq %r13, R13(%rdi)
++ movq %r12, R12(%rdi)
++ xorl %eax, %eax
++ movq %rbp, RBP(%rdi)
++ movq %rbx, RBX(%rdi)
++ movq (%rsp), %r9
++ xchgq %rdx, %rcx
++ movq %rax, R11(%rdi)
++ movq %rax, R10(%rdi)
++ movq %rax, R9(%rdi)
++ movq %rax, R8(%rdi)
++ movq %rax, RAX(%rdi)
++ movq %rax, RCX(%rdi)
++ movq %rax, RDX(%rdi)
++ movq %rax, RSI(%rdi)
++ movq %rax, RDI(%rdi)
++ movq %rax, ORIG_RAX(%rdi)
++ movq %r9, RIP(%rdi)
++ leaq 8(%rsp), %r9
++ movq $__KERNEL_CS, CS(%rdi)
++ movq %rax, EFLAGS(%rdi)
++ movq %r9, RSP(%rdi)
++ movq $__KERNEL_DS, SS(%rdi)
++ jmpq *%rcx
++END(arch_unwind_init_running)
++#endif
++
+ #ifdef CONFIG_XEN
+ idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
- #define CFI_STARTPROC cfi_ignore
--- a/arch/x86/include/asm/stacktrace.h
+++ b/arch/x86/include/asm/stacktrace.h
@@ -92,6 +92,10 @@ extern void
@@ -96,7 +236,7 @@
/* The form of the top of the frame on the stack */
--- a/arch/x86/include/asm/switch_to.h
+++ b/arch/x86/include/asm/switch_to.h
-@@ -100,6 +100,15 @@ do { \
+@@ -100,12 +100,22 @@ do { \
#define __switch_canary_iparam
#endif /* CC_STACKPROTECTOR */
@@ -109,10 +249,9 @@
+#define THREAD_RETURN_SYM
+#endif
+
- /*
- * There is no need to save or restore flags, because flags are always
- * clean in kernel mode, with the possible exception of IOPL. Kernel IOPL
-@@ -110,6 +119,7 @@ do { \
+ /* Save restore flags to clear handle leaking NT */
+ #define switch_to(prev, next, last) \
+ asm volatile(SAVE_CONTEXT \
"movq %%rsp,%P[threadrsp](%[prev])\n\t" /* save RSP */ \
"movq %P[threadrsp](%[next]),%%rsp\n\t" /* restore RSP */ \
"call __switch_to\n\t" \
@@ -120,7 +259,7 @@
"movq "__percpu_arg([current_task])",%%rsi\n\t" \
__switch_canary \
"movq %P[thread_info](%%rsi),%%r8\n\t" \
---- a/dev/null
+--- /dev/null
+++ b/arch/x86/include/asm/unwind.h
@@ -0,0 +1,159 @@
+#ifndef _ASM_X86_UNWIND_H
@@ -374,7 +513,7 @@
/*
* x86-64 can have up to three kernel stacks:
* process stack
-@@ -367,3 +437,21 @@ static int __init code_bytes_setup(char
+@@ -367,3 +437,21 @@ static int __init code_bytes_setup(char
return 1;
}
__setup("code_bytes=", code_bytes_setup);
@@ -432,93 +571,6 @@
if (!stack) {
if (regs)
stack = (unsigned long *)regs->sp;
---- a/arch/x86/kernel/entry_32.S
-+++ b/arch/x86/kernel/entry_32.S
-@@ -299,6 +299,41 @@ ENTRY(ret_from_fork)
- CFI_ENDPROC
- END(ret_from_fork)
-
-+#ifdef CONFIG_STACK_UNWIND
-+ENTRY(arch_unwind_init_running)
-+ CFI_STARTPROC
-+ movl 4(%esp), %edx
-+ movl (%esp), %ecx
-+ leal 4(%esp), %eax
-+ movl %ebx, PT_EBX(%edx)
-+ xorl %ebx, %ebx
-+ movl %ebx, PT_ECX(%edx)
-+ movl %ebx, PT_EDX(%edx)
-+ movl %esi, PT_ESI(%edx)
-+ movl %edi, PT_EDI(%edx)
-+ movl %ebp, PT_EBP(%edx)
-+ movl %ebx, PT_EAX(%edx)
-+ movl $__USER_DS, PT_DS(%edx)
-+ movl $__USER_DS, PT_ES(%edx)
-+ movl $__KERNEL_PERCPU, PT_FS(%edx)
-+ movl $__KERNEL_STACK_CANARY, PT_GS(%edx)
-+ movl %eax, PT_OLDESP(%edx)
-+ movl 16(%esp), %eax
-+ movl %ebx, PT_ORIG_EAX(%edx)
-+ movl %ecx, PT_EIP(%edx)
-+ movl 12(%esp), %ecx
-+ movl $__KERNEL_CS, PT_CS(%edx)
-+ movl %eax, 12(%esp)
-+ movl 8(%esp), %eax
-+ movl %ecx, 8(%esp)
-+ movl %ebx, PT_EFLAGS(%edx)
-+ movl PT_EBX(%edx), %ebx
-+ movl $__KERNEL_DS, PT_OLDSS(%edx)
-+ jmpl *%eax
-+ CFI_ENDPROC
-+ENDPROC(arch_unwind_init_running)
-+#endif
-+
- ENTRY(ret_from_kernel_thread)
- CFI_STARTPROC
- pushl_cfi %eax
---- a/arch/x86/kernel/entry_64.S
-+++ b/arch/x86/kernel/entry_64.S
-@@ -1140,6 +1140,40 @@ ENTRY(do_softirq_own_stack)
- CFI_ENDPROC
- END(do_softirq_own_stack)
-
-+#ifdef CONFIG_STACK_UNWIND
-+ENTRY(arch_unwind_init_running)
-+ CFI_STARTPROC
-+ movq %r15, R15(%rdi)
-+ movq %r14, R14(%rdi)
-+ xchgq %rsi, %rdx
-+ movq %r13, R13(%rdi)
-+ movq %r12, R12(%rdi)
-+ xorl %eax, %eax
-+ movq %rbp, RBP(%rdi)
-+ movq %rbx, RBX(%rdi)
-+ movq (%rsp), %r9
-+ xchgq %rdx, %rcx
-+ movq %rax, R11(%rdi)
-+ movq %rax, R10(%rdi)
-+ movq %rax, R9(%rdi)
-+ movq %rax, R8(%rdi)
-+ movq %rax, RAX(%rdi)
-+ movq %rax, RCX(%rdi)
-+ movq %rax, RDX(%rdi)
-+ movq %rax, RSI(%rdi)
-+ movq %rax, RDI(%rdi)
-+ movq %rax, ORIG_RAX(%rdi)
-+ movq %r9, RIP(%rdi)
-+ leaq 8(%rsp), %r9
-+ movq $__KERNEL_CS, CS(%rdi)
-+ movq %rax, EFLAGS(%rdi)
-+ movq %r9, RSP(%rdi)
-+ movq $__KERNEL_DS, SS(%rdi)
-+ jmpq *%rcx
-+ CFI_ENDPROC
-+END(arch_unwind_init_running)
-+#endif
-+
- #ifdef CONFIG_XEN
- idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
-
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -332,7 +332,9 @@ SECTIONS
@@ -578,7 +630,7 @@
+#endif
--- a/include/linux/module.h
+++ b/include/linux/module.h
-@@ -284,6 +284,9 @@ struct module {
+@@ -398,6 +398,9 @@ struct module {
/* Size of RO sections of the module (text+rodata) */
unsigned int init_ro_size, core_ro_size;
@@ -588,7 +640,7 @@
/* Arch-specific module values */
struct mod_arch_specific arch;
---- a/dev/null
+--- /dev/null
+++ b/include/linux/unwind.h
@@ -0,0 +1,135 @@
+#ifndef _LINUX_UNWIND_H
@@ -736,7 +788,7 @@
#include
#include
#include
-@@ -498,6 +499,7 @@ asmlinkage __visible void __init start_k
+@@ -503,6 +504,7 @@ asmlinkage __visible void __init start_k
* Need to run as early as possible, to initialize the
* lockdep hash:
*/
@@ -744,7 +796,7 @@
lockdep_init();
set_task_stack_end_magic(&init_task);
smp_setup_processor_id();
-@@ -523,6 +525,7 @@ asmlinkage __visible void __init start_k
+@@ -528,6 +530,7 @@ asmlinkage __visible void __init start_k
setup_arch(&command_line);
mm_init_cpumask(&init_mm);
setup_command_line(command_line);
@@ -754,7 +806,7 @@
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
--- a/kernel/Makefile
+++ b/kernel/Makefile
-@@ -49,6 +49,7 @@ obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) +=
+@@ -49,6 +49,7 @@ obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) +=
obj-$(CONFIG_MODULES) += module.o
obj-$(CONFIG_MODULE_SIG) += module_signing.o
obj-$(CONFIG_KALLSYMS) += kallsyms.o
@@ -772,7 +824,7 @@
#include
#include
#include
-@@ -195,7 +196,7 @@ struct load_info {
+@@ -344,7 +345,7 @@ struct load_info {
unsigned int num_debug;
bool sig_ok;
struct {
@@ -781,7 +833,7 @@
} index;
};
-@@ -607,6 +608,27 @@ bool is_module_percpu_address(unsigned l
+@@ -764,6 +765,27 @@ bool is_module_percpu_address(unsigned l
#endif /* CONFIG_SMP */
@@ -809,7 +861,7 @@
#define MODINFO_ATTR(field) \
static void setup_modinfo_##field(struct module *mod, const char *s) \
{ \
-@@ -1919,6 +1941,8 @@ static void free_module(struct module *m
+@@ -2089,6 +2111,8 @@ static void free_module(struct module *m
/* Remove dynamic debug info */
ddebug_remove_module(mod->name);
@@ -818,7 +870,7 @@
/* Arch-specific cleanup. */
module_arch_cleanup(mod);
-@@ -2752,6 +2776,8 @@ static struct module *setup_load_info(st
+@@ -2907,6 +2931,8 @@ static struct module *setup_load_info(st
info->index.pcpu = find_pcpusec(info);
@@ -827,7 +879,7 @@
/* Check module struct version now, before we try to use module. */
if (!check_modstruct_version(info->sechdrs, info->index.vers, mod))
return ERR_PTR(-ENOEXEC);
-@@ -3194,6 +3220,7 @@ static noinline int do_init_module(struc
+@@ -3349,6 +3375,7 @@ static noinline int do_init_module(struc
/* Drop initial reference. */
module_put(mod);
trim_init_extable(mod);
@@ -835,7 +887,7 @@
#ifdef CONFIG_KALLSYMS
mod->num_symtab = mod->core_num_syms;
mod->symtab = mod->core_symtab;
-@@ -3436,6 +3463,9 @@ static int load_module(struct load_info
+@@ -3606,6 +3633,9 @@ static int load_module(struct load_info
if (err < 0)
goto bug_cleanup;
@@ -845,7 +897,7 @@
/* Get rid of temporary copy. */
free_copy(info);
---- a/dev/null
+--- /dev/null
+++ b/kernel/unwind.c
@@ -0,0 +1,1652 @@
+/*
@@ -2527,7 +2579,7 @@
config BOOT_PRINTK_DELAY
bool "Delay each boot printk message by N milliseconds"
depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
-@@ -1486,7 +1504,8 @@ config FAULT_INJECTION_STACKTRACE_FILTER
+@@ -1553,7 +1571,8 @@ config FAULT_INJECTION_STACKTRACE_FILTER
depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
depends on !X86_64
select STACKTRACE
@@ -2537,7 +2589,7 @@
help
Provide stacktrace filter for fault-injection capabilities
-@@ -1496,7 +1515,8 @@ config LATENCYTOP
+@@ -1563,7 +1582,8 @@ config LATENCYTOP
depends on DEBUG_KERNEL
depends on STACKTRACE_SUPPORT
depends on PROC_FS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/supported-flag new/patches.suse/supported-flag
--- old/patches.suse/supported-flag 2015-08-28 11:17:01.000000000 +0200
+++ new/patches.suse/supported-flag 2015-09-22 17:17:36.000000000 +0200
@@ -30,7 +30,7 @@
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
-@@ -3654,6 +3654,14 @@ bytes respectively. Such letter suffixes
+@@ -3789,6 +3789,14 @@ bytes respectively. Such letter suffixes
unknown_nmi_panic
[X86] Cause panic on unknown NMI.
@@ -47,7 +47,7 @@
(default -1 = authorized except for wireless USB,
--- a/Documentation/sysctl/kernel.txt
+++ b/Documentation/sysctl/kernel.txt
-@@ -843,6 +843,18 @@ can be ORed together:
+@@ -869,6 +869,18 @@ can be ORed together:
signature.
16384 - A soft lockup has previously occurred on the system.
32768 - The kernel has been live patched.
@@ -68,7 +68,7 @@
--- a/Makefile
+++ b/Makefile
-@@ -411,6 +411,11 @@ KBUILD_AFLAGS_MODULE := -DMODULE
+@@ -400,6 +400,11 @@ KBUILD_AFLAGS_MODULE := -DMODULE
KBUILD_CFLAGS_MODULE := -DMODULE
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds
@@ -82,7 +82,7 @@
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
-@@ -425,6 +425,9 @@ extern int panic_on_oops;
+@@ -438,6 +438,9 @@ extern int panic_on_oops;
extern int panic_on_unrecovered_nmi;
extern int panic_on_io_nmi;
extern int panic_on_warn;
@@ -90,9 +90,9 @@
+extern int unsupported;
+#endif
extern int sysctl_panic_on_stackoverflow;
- /*
- * Only to be used by arch init code. If the user over-wrote the default
-@@ -472,6 +475,15 @@ extern enum system_states {
+
+ extern bool crash_kexec_post_notifiers;
+@@ -489,6 +492,15 @@ extern enum system_states {
#define TAINT_SOFTLOCKUP 14
#define TAINT_LIVEPATCH 15
@@ -110,7 +110,7 @@
#define hex_asc_hi(x) hex_asc[((x) & 0xf0) >> 4]
--- a/include/linux/module.h
+++ b/include/linux/module.h
-@@ -381,6 +381,9 @@ struct module *__module_address(unsigned
+@@ -417,6 +417,9 @@ struct module *__module_address(unsigned
bool is_module_address(unsigned long addr);
bool is_module_percpu_address(unsigned long addr);
bool is_module_text_address(unsigned long addr);
@@ -214,7 +214,7 @@
/*
* Mutex protects:
* 1) List of modules (also safely readable with preempt_disable),
-@@ -995,6 +1011,12 @@ static size_t module_flags_taint(struct
+@@ -1157,6 +1173,12 @@ static size_t module_flags_taint(struct
buf[l++] = 'C';
if (mod->taints & (1 << TAINT_UNSIGNED_MODULE))
buf[l++] = 'E';
@@ -227,7 +227,7 @@
/*
* TAINT_FORCED_RMMOD: could be added.
* TAINT_CPU_OUT_OF_SPEC, TAINT_MACHINE_CHECK, TAINT_BAD_PAGE don't
-@@ -1072,6 +1094,33 @@ static ssize_t show_taint(struct module_
+@@ -1234,6 +1256,33 @@ static ssize_t show_taint(struct module_
static struct module_attribute modinfo_taint =
__ATTR(taint, 0444, show_taint, NULL);
@@ -261,7 +261,7 @@
static struct module_attribute *modinfo_attrs[] = {
&module_uevent,
&modinfo_version,
-@@ -1080,6 +1129,9 @@ static struct module_attribute *modinfo_
+@@ -1242,6 +1291,9 @@ static struct module_attribute *modinfo_
&modinfo_coresize,
&modinfo_initsize,
&modinfo_taint,
@@ -271,7 +271,7 @@
#ifdef CONFIG_MODULE_UNLOAD
&modinfo_refcnt,
#endif
-@@ -1626,9 +1678,37 @@ static int mod_sysfs_setup(struct module
+@@ -1800,9 +1852,37 @@ static int mod_sysfs_setup(struct module
add_sect_attrs(mod, info);
add_notes_attrs(mod, info);
@@ -309,7 +309,7 @@
out_unreg_param:
module_param_sysfs_remove(mod);
out_unreg_holders:
-@@ -3836,6 +3916,9 @@ void print_modules(void)
+@@ -4068,6 +4148,9 @@ void print_modules(void)
if (last_unloaded_module[0])
pr_cont(" [last unloaded: %s]", last_unloaded_module);
pr_cont("\n");
@@ -321,7 +321,7 @@
#ifdef CONFIG_MODVERSIONS
--- a/kernel/panic.c
+++ b/kernel/panic.c
-@@ -226,6 +226,10 @@ static const struct tnt tnts[] = {
+@@ -228,6 +228,10 @@ static const struct tnt tnts[] = {
{ TAINT_UNSIGNED_MODULE, 'E', ' ' },
{ TAINT_SOFTLOCKUP, 'L', ' ' },
{ TAINT_LIVEPATCH, 'K', ' ' },
@@ -332,7 +332,7 @@
};
/**
-@@ -246,6 +250,8 @@ static const struct tnt tnts[] = {
+@@ -249,6 +253,8 @@ static const struct tnt tnts[] = {
* 'E' - Unsigned module has been loaded.
* 'L' - A soft lockup has previously occurred.
* 'K' - Kernel has been live patched.
@@ -343,7 +343,7 @@
*/
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
-@@ -769,6 +769,15 @@ static struct ctl_table kern_table[] = {
+@@ -759,6 +759,15 @@ static struct ctl_table kern_table[] = {
.extra1 = &pid_max_min,
.extra2 = &pid_max_max,
},
@@ -376,7 +376,7 @@
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
-@@ -1685,6 +1685,50 @@ static char *remove_dot(char *s)
+@@ -1918,6 +1918,50 @@ static char *remove_dot(char *s)
return s;
}
@@ -427,7 +427,7 @@
static void read_symbols(char *modname)
{
const char *symname;
-@@ -1899,6 +1943,15 @@ static void add_staging_flag(struct buff
+@@ -2132,6 +2176,15 @@ static void add_staging_flag(struct buff
buf_printf(b, "\nMODULE_INFO(staging, \"Y\");\n");
}
@@ -443,7 +443,7 @@
/**
* Record CRCs for unresolved symbols
**/
-@@ -2040,6 +2093,15 @@ static void write_if_changed(struct buff
+@@ -2273,6 +2326,15 @@ static void write_if_changed(struct buff
fclose(file);
}
@@ -459,7 +459,7 @@
/* parse Module.symvers file. line format:
* 0x12345678<tab>symbol<tab>module[[<tab>export]<tab>something]
**/
-@@ -2135,12 +2197,15 @@ int main(int argc, char **argv)
+@@ -2368,12 +2430,15 @@ int main(int argc, char **argv)
struct buffer buf = { };
char *kernel_read = NULL, *module_read = NULL;
char *dump_write = NULL, *files_source = NULL;
@@ -476,7 +476,7 @@
switch (opt) {
case 'i':
kernel_read = optarg;
-@@ -2181,11 +2246,20 @@ int main(int argc, char **argv)
+@@ -2414,11 +2479,20 @@ int main(int argc, char **argv)
case 'w':
warn_unresolved = 1;
break;
@@ -497,7 +497,7 @@
if (kernel_read)
read_dump(kernel_read, 1);
if (module_read)
-@@ -2222,6 +2296,9 @@ int main(int argc, char **argv)
+@@ -2455,6 +2529,9 @@ int main(int argc, char **argv)
add_header(&buf, mod);
add_intree_flag(&buf, !external_module);
add_staging_flag(&buf, mod->name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/suse-hv-storvsc-sg_tablesize.patch new/patches.suse/suse-hv-storvsc-sg_tablesize.patch
--- old/patches.suse/suse-hv-storvsc-sg_tablesize.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/suse-hv-storvsc-sg_tablesize.patch 2015-09-22 17:17:36.000000000 +0200
@@ -0,0 +1,28 @@
+Subject: hv_storvsc: use small sg_tablesize on x86
+From:
+Patch-mainline: Never, upstream may provide different fix
+References: bnc#937256
+
+Reducing the sg_tablesize allows booting of SP4 kernels in 32bit VMs, after
+commit be0cf6ca301c61458dc4aa1a37acf4f58d2ed3d6 ("scsi: storvsc: Set the
+tablesize based on the information given by the host")
+
+[ 5.567138] hv_storvsc vmbus_1: adjusting sg_tablesize 0x800 -> 0x20
+
+
+diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
+index 4a65916..e2245c7 100644
+--- a/drivers/scsi/storvsc_drv.c
++++ b/drivers/scsi/storvsc_drv.c
+@@ -1951,6 +1951,11 @@ static int storvsc_probe(struct hv_device *device,
+ * from the host.
+ */
+ host->sg_tablesize = (stor_device->max_transfer_bytes >> PAGE_SHIFT);
++#if defined(CONFIG_X86_32)
++ dev_warn(&device->device, "adjusting sg_tablesize 0x%x -> 0x%x",
++ host->sg_tablesize, MAX_MULTIPAGE_BUFFER_COUNT);
++ host->sg_tablesize = MAX_MULTIPAGE_BUFFER_COUNT;
++#endif
+
+ /* Register the HBA and start the scsi bus scan */
+ ret = scsi_add_host(host, &device->device);
++++++ patches.xen.tar.bz2 ++++++
++++ 30983 lines of diff (skipped)
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:48.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:48.000000000 +0200
@@ -27,12 +27,7 @@
# DO NOT MODIFY THEM!
# Send separate patches upstream if you find a problem...
########################################################
- patches.kernel.org/patch-4.1.1
- patches.kernel.org/patch-4.1.1-2
- patches.kernel.org/patch-4.1.2-3
- patches.kernel.org/patch-4.1.3-4
- patches.kernel.org/patch-4.1.4-5
- patches.kernel.org/patch-4.1.5-6
+ patches.kernel.org/patch-4.2.1
########################################################
# Build fixes that apply to the vanilla kernel too.
@@ -72,6 +67,7 @@
########################################################
# Simple export additions/removals
########################################################
+ patches.fixes/workqueue-Make-flush_workqueue-available-again-to-no.patch
########################################################
# Bug workarounds for binutils
@@ -168,16 +164,15 @@
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
- patches.arch/arm64-gpex-0001-device-core-Introduce-per-device-MSI-domain-pointer.patch
- patches.arch/arm64-gpex-0002-PCI-MSI-add-hooks-to-populate-the-msi_domain-field.patch
- patches.arch/arm64-gpex-0003-PCI-MSI-of-add-support-for-OF-provided-msi_domain.patch
- patches.arch/arm64-gpex-0004-PCI-MSI-Let-pci_msi_get_domain-use-struct-device-s-m.patch
- patches.arch/arm64-gpex-0005-irqchip-GICv2m-Get-rid-of-struct-msi_controller.patch
- patches.arch/arm64-gpex-0006-irqchip-gicv3-its-Get-rid-of-struct-msi_controller.patch
- patches.arch/arm64-gpex-0007-PCI-MSI-Drop-domain-field-from-msi_controller.patch
- patches.arch/arm64-gpex-0008-PCI-MSI-of-Allow-msi_domain-lookup-using-the-PHB-nod.patch
- patches.arch/arm64-gpex-0009-pci-Enable-pci-host-generic-support-for-ARM64.patch
-
++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
+ patches.arch/arm64-gpex-0009-pci-Enable-pci-host-generic-support-for-ARM64.patch
########################################################
# S/390
@@ -231,6 +226,7 @@
# Suse specific stuff
########################################################
patches.suse/suse-hv-guest-os-id.patch
+ patches.suse/suse-hv-storvsc-sg_tablesize.patch
########################################################
# Networking, IPv6
@@ -240,8 +236,7 @@
########################################################
# NFS
########################################################
-
- patches.fixes/0001-NFSv4-When-returning-a-delegation-don-t-reclaim-an-i.patch
+ patches.fixes/0001-NFSv4-do-not-accept-an-incompatible-delegation.patch
########################################################
# lockd + statd
@@ -264,7 +259,6 @@
# btrfs
########################################################
patches.suse/btrfs-use-correct-device-for-maps.patch
- patches.suse/btrfs-fix-hang-during-inode-eviction-due-to-concurre.patch
patches.fixes/btrfs-fix-stale-directory-entries-after-fsync-log-replay
patches.fixes/btrfs-fix-stale-dir-entries-after-unlink-inode-eviction-and-fsync
@@ -347,12 +341,14 @@
patches.drivers/0004-bcache-unregister-reboot-notifier-when-bcache-fails-.patch
patches.drivers/0005-fix-a-leak-in-bch_cached_dev_run.patch
+ patches.drivers/bcache-fix-writeback-thread-incomplete-stripes-starvation.patch
+
########################################################
# DRM/Video
########################################################
+jeffm patches.fixes/nouveau-fix-race-with-fence-signaling
- patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip.patch
- patches.fixes/drm-i915-Ensure-cache-flushes-prior-to-doing-CS-flip-take-two.patch
+ patches.drivers/0001-vmwgfx-Rework-device-initialization.patch
+ patches.drivers/0002-drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch
########################################################
# video4linux
@@ -389,6 +385,8 @@
# USB
########################################################
+ patches.drivers/0001-qmi_wwan-Add-support-for-Dell-Wireless-5809e-4G-Mode.patch
+
########################################################
# I2C
########################################################
@@ -402,6 +400,7 @@
##########################################################
# Sound
##########################################################
+ patches.drivers/ALSA-hda-Disable-power_save_node-for-Thinkpads
########################################################
# Char / serial
@@ -414,6 +413,7 @@
# Needs updating WRT d27769ec (block: add GENHD_FL_NO_PART_SCAN)
+hare patches.suse/no-partition-scan
patches.fixes/mmc-sdhci-fix-dma-memory-leak-in-sdhci_pre_req.patch
+ patches.fixes/leds-lp55xx-Correct-Kconfig-dependency-for-f-w-user-
########################################################
# Other drivers we have added to the tree
@@ -471,7 +471,7 @@
patches.suse/crasher-26.diff
patches.suse/revert-x86-remove-warning-and-warning_symbol-from-struct-stacktrace_ops
patches.suse/stack-unwind
- patches.arch/x86_64-unwind-annotations
++needs_updating patches.arch/x86_64-unwind-annotations
########################################################
# Kdump
@@ -596,6 +596,7 @@
patches.xen/xen3-patch-3.19
patches.xen/xen3-patch-4.0
patches.xen/xen3-patch-4.1
+ patches.xen/xen3-patch-4.2
# ports of other patches
patches.xen/xen3-stack-unwind
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.pwNTkG/_old 2015-10-01 09:28:48.000000000 +0200
+++ /var/tmp/diff_new_pack.pwNTkG/_new 2015-10-01 09:28:48.000000000 +0200
@@ -1,3 +1,3 @@
-2015-08-28 12:59:34 +0200
-GIT Revision: d867e863d55239553067c5f9ac7ecdd96076bd9f
+2015-09-25 10:21:54 +0200
+GIT Revision: 6996a42b7e04d743c62cbcd0a390cf8f357908f0
GIT Branch: stable