Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2015-11-06 00:04:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-11-02 12:54:26.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2015-11-06 00:04:04.000000000 +0100
@@ -1,0 +2,13 @@
+Mon Nov 2 16:34:24 CET 2015 - jslaby@suse.cz
+
+- rpm/kernel-binary.spec.in: sync with master
+- commit 7b374a4
+
+-------------------------------------------------------------------
+Mon Nov 2 15:00:23 CET 2015 - jeffm@suse.com
+
+- Update to 4.3-final.
+ - 1 patch eliminated.
+- commit e20b856
+
+-------------------------------------------------------------------
@@ -12 +25 @@
-- commit ef2823b
+- commit 1b5a73d
@@ -47,0 +61,2 @@
+- config: arm: Enable ADS7846 touchscreen driver
+ This SPI connected chip is common on RPi TFT displays.
@@ -70,0 +86,2 @@
+- [media] media/vivid-osd: fix info leak in ioctl (CVE-2015-7884,
+ bnc#951626).
@@ -75 +92 @@
-- commit 8031e24
+- commit f554650
@@ -85,0 +103,14 @@
+Thu Oct 22 08:34:29 CEST 2015 - jbeulich@suse.com
+
+- supported.conf: Add pv-ops Xen drivers, 8250-base, and xhci-pci.
+- commit ff3f596
+
+-------------------------------------------------------------------
+Wed Oct 21 15:55:58 CEST 2015 - guillaume.gardet@free.fr
+
+- config: arm: Enable CONFIG_PPS_CLIENT_GPIO
+ Set CONFIG_PPS_CLIENT_GPIO=m for all ARM configs to be able to use GPS
+ with PPS line connected to a GPIO, as a high-precision time reference.
+- commit f01eb6a
+
+-------------------------------------------------------------------
@@ -98,0 +130,22 @@
+Tue Oct 20 20:33:33 CEST 2015 - tiwai@suse.de
+
+- Disable leftover CONFIG_FW_LOADER_USER_HELPER_FALLBACK in armv7hl/* (boo#951260)
+- commit 007f6ba
+
+-------------------------------------------------------------------
+Tue Oct 20 20:32:31 CEST 2015 - tiwai@suse.de
+
+- [media] c8sectpfe: Remove select on
+ CONFIG_FW_LOADER_USER_HELPER_FALLBACK (boo#951260).
+- drm/sti: Remove select of CONFIG_FW_LOADER_USER_HELPER_FALLBACK
+ (boo#951260).
+- commit 23d5c78
+
+-------------------------------------------------------------------
+Tue Oct 20 17:19:55 CEST 2015 - tiwai@suse.de
+
+- Disable CONFIG_RT_GROUP_SCHED (boo#950955)
+ Even people originally demanded suggest to drop it now...
+- commit 58efde7
+
+-------------------------------------------------------------------
@@ -111,0 +165,21 @@
+Mon Oct 19 19:25:24 CEST 2015 - jeffm@suse.com
+
+- config: Re-enable DEBUG_INFO on ec2 flavors.
+ It was disabled in commit a104accda85, but is enabled explicitly in the
+ spec file. The options that depend on it must be in the config file for
+ the build to succeed.
+- commit 4415ce9
+
+-------------------------------------------------------------------
+Mon Oct 19 19:00:18 CEST 2015 - jeffm@suse.com
+
+- Update to 4.3-rc6.
+- commit d6b2a93
+
+-------------------------------------------------------------------
+Fri Oct 16 16:34:28 CEST 2015 - mmarek@suse.com
+
+- Delete unused rpm/config-subst.
+- commit 01841f4
+
+-------------------------------------------------------------------
@@ -144,0 +219,21 @@
+Thu Oct 15 16:28:49 CEST 2015 - jbeulich@suse.com
+
+- Update Xen patches to 4.3-rc5 and c/s 1293.
+- netback: coalesce (guest) RX SKBs as needed (bsc#919154).
+- config.conf: Re-enable Xen and PV configs.
+- Update config files.
+- commit a104acc
+
+-------------------------------------------------------------------
+Wed Oct 14 21:30:18 CEST 2015 - matwey.kornilov@gmail.com
+
+- config: armv7hl: Enable new OMAP serial driver
+- commit 54af7c7
+
+-------------------------------------------------------------------
+Mon Oct 12 16:01:33 CEST 2015 - jeffm@suse.com
+
+- Update to 4.3-rc5.
+- commit 36c0ed4
+
+-------------------------------------------------------------------
@@ -151,0 +247,36 @@
+Mon Oct 5 13:40:15 CEST 2015 - dmueller@suse.com
+
+- Update config files.
+ Disable CONFIG_LEDS_BCM6328 and CONFIG_LEDS_BCM6358, as those
+ are MIPS and unlikely to exist on an ARM board.
+- commit efc53bd
+
+-------------------------------------------------------------------
+Mon Oct 5 05:22:22 CEST 2015 - jeffm@suse.com
+
+- Update to 4.3-rc4.
+- commit 48d7e75
+
+-------------------------------------------------------------------
+Sun Oct 4 21:19:16 CEST 2015 - matwey.kornilov@gmail.com
+
+- config: armv7hl: Sync vanilla with default
+ Let vanilla follow changes made in default.
+- commit 00ad273
+
+-------------------------------------------------------------------
+Sun Oct 4 20:06:44 CEST 2015 - afaerber@suse.de
+
+- config: armv7hl: Disable all msm8916/apq8016 options
+ They are arm64 SoCs, so not needed for armv7hl.
+- commit b333226
+
+-------------------------------------------------------------------
+Sun Oct 4 18:09:55 CEST 2015 - matwey.kornilov@gmail.com
+
+- config: armv7hl: Enable preemption
+ This patch is to follow 1fcdac3f3d277ffea3462af635a3dea6b854a09a.
+ [AF/MK: Enable preemption for vanilla config as well]
+- commit d795f96
+
+-------------------------------------------------------------------
@@ -163,0 +295,3 @@
+- config: armv7hl: Enable missing STMMAC Ethernet options
+ This attempts to fix regressions from 4.1 like built-in Ethernet on
+ Cubietruck not working.
@@ -170 +304 @@
-- commit 35c44c6
+- commit 7a85c9f
@@ -177 +311,8 @@
-- commit 1193b90
+- commit fee03a3
+
+-------------------------------------------------------------------
+Wed Sep 30 02:34:37 CEST 2015 - jlee@suse.com
+
+- Update config files. (bsc#947816)
+ Put # CONFIG_KEXEC_VERIFY_SIG is not set (bsc#947816)
+- commit ab4942d
@@ -186,0 +328,7 @@
+Wed Sep 30 01:37:00 CEST 2015 - jeffm@suse.com
+
+- Update to 4.3-rc3.
+- Eliminated 1 patch.
+- commit 66bc908
+
+-------------------------------------------------------------------
@@ -204,0 +353,7 @@
+Fri Sep 25 22:51:28 CEST 2015 - mmarek@suse.cz
+
+- Delete patches.suse/kconfig-automate-kernel-desktop.
+ No longer needed.
+- commit 74bcdcc
+
+-------------------------------------------------------------------
@@ -216,0 +372,29 @@
+Wed Sep 23 14:41:58 CEST 2015 - dmueller@suse.com
+
+- Backport of https://lkml.org/lkml/2015/9/11/507
+ Fixes a build issue with aarch64, see
+ http://www.spinics.net/lists/arm-kernel/msg446809.html.
+- Update config files.
+- commit 2947252
+
+-------------------------------------------------------------------
+Wed Sep 23 13:49:33 CEST 2015 - dmueller@suse.com
+
+- Delete
+ patches.arch/arm64-0007-arm64-Do-not-call-enable-PCI-resources-when-specify-.patch.
+- commit a608d6a
+
+-------------------------------------------------------------------
+Wed Sep 23 13:47:42 CEST 2015 - jdelvare@suse.de
+
+- Update x86 config files: CONFIG_SURFACE_PRO3_BUTTON=m
++++ 206 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/kernel-source/kernel-debug.changes
++++ and /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes
kernel-default.changes: same change
kernel-docs.changes: same change
kernel-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.2.tar.xz
New:
----
linux-4.3.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:16.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:16.000000000 +0100
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.2
-%define patchversion 4.2.5
+%define srcversion 4.3
+%define patchversion 4.3.0
%define variant %{nil}
%define vanilla_only 0
@@ -58,9 +58,9 @@
Summary: A Debug Version of the Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
@@ -530,6 +530,11 @@
%if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif
+%ifarch %ix86
+# XXX: do not sign on x86, as the repackaging changes kernel-pae
+# from i686 to i586
+BRP_PESIGN_FILES=""
+%endif
# get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary
kernel-default.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:16.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:16.000000000 +0100
@@ -16,7 +16,7 @@
#
-%define patchversion 4.2.5
+%define patchversion 4.3.0
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -27,9 +27,9 @@
Summary: Kernel Documentation (man pages)
License: GPL-2.0
Group: Documentation/Man
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
++++++ kernel-ec2.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.2
-%define patchversion 4.2.5
+%define srcversion 4.3
+%define patchversion 4.3.0
%define variant %{nil}
%define vanilla_only 0
@@ -58,9 +58,9 @@
Summary: The Amazon EC2 Xen Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
@@ -526,6 +526,11 @@
%if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif
+%ifarch %ix86
+# XXX: do not sign on x86, as the repackaging changes kernel-pae
+# from i686 to i586
+BRP_PESIGN_FILES=""
+%endif
# get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary
kernel-lpae.spec: same change
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks
-%define patchversion 4.2.5
+%define patchversion 4.3.0
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -45,9 +45,9 @@
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0
Group: SLES
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
++++++ kernel-obs-qa-xen.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -17,7 +17,7 @@
# needsrootforbuild
-%define patchversion 4.2.5
+%define patchversion 4.3.0
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -36,9 +36,9 @@
Summary: Basic QA tests for the kernel
License: GPL-2.0
Group: SLES
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
kernel-obs-qa.spec: same change
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.2
-%define patchversion 4.2.5
+%define srcversion 4.3
+%define patchversion 4.3.0
%define variant %{nil}
%define vanilla_only 0
@@ -58,9 +58,9 @@
Summary: Kernel with PAE Support
License: GPL-2.0
Group: System/Kernel
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
@@ -542,6 +542,11 @@
%if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif
+%ifarch %ix86
+# XXX: do not sign on x86, as the repackaging changes kernel-pae
+# from i686 to i586
+BRP_PESIGN_FILES=""
+%endif
# get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary
++++++ kernel-pv.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.2
-%define patchversion 4.2.5
+%define srcversion 4.3
+%define patchversion 4.3.0
%define variant %{nil}
%define vanilla_only 0
@@ -58,9 +58,9 @@
Summary: The para-virtualized Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
@@ -525,6 +525,11 @@
%if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif
+%ifarch %ix86
+# XXX: do not sign on x86, as the repackaging changes kernel-pae
+# from i686 to i586
+BRP_PESIGN_FILES=""
+%endif
# get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -17,8 +17,8 @@
# icecream 0
-%define srcversion 4.2
-%define patchversion 4.2.5
+%define srcversion 4.3
+%define patchversion 4.3.0
%define variant %{nil}
%define vanilla_only 0
@@ -30,9 +30,9 @@
Summary: The Linux Kernel Sources
License: GPL-2.0
Group: Development/Sources
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -24,10 +24,10 @@
Summary: Kernel Symbol Versions (modversions)
License: GPL-2.0
Group: Development/Sources
-Version: 4.2.5
+Version: 4.3.0
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -19,8 +19,8 @@
# This makes the OBS store the project cert as %_sourcedir/_projectcert.crt
# needssslcertforbuild
-%define srcversion 4.2
-%define patchversion 4.2.5
+%define srcversion 4.3
+%define patchversion 4.3.0
%define variant %{nil}
%define vanilla_only 0
@@ -58,9 +58,9 @@
Summary: The Standard Kernel - without any SUSE patches
License: GPL-2.0
Group: System/Kernel
-Version: 4.2.5
+Version: 4.3.0
%if 0%{?is_kotd}
-Release: <RELEASE>.g0491388
+Release: <RELEASE>.g7b374a4
%else
Release: 0
%endif
@@ -523,6 +523,11 @@
%if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif
+%ifarch %ix86
+# XXX: do not sign on x86, as the repackaging changes kernel-pae
+# from i686 to i586
+BRP_PESIGN_FILES=""
+%endif
# get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary
kernel-xen.spec: same change
++++++ config.sh ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:17.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:17.000000000 +0100
@@ -1,5 +1,5 @@
# The version of the main tarball to use
-SRCVERSION=4.2
+SRCVERSION=4.3
# variant of the kernel-source package, either empty or "-rt"
VARIANT=
# buildservice projects to build the kernel against
++++++ config.tar.bz2 ++++++
++++ 23791 lines of diff (skipped)
++++++ kernel-binary.spec.in ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:18.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:18.000000000 +0100
@@ -399,6 +399,11 @@
%if %CONFIG_EFI_STUB == "y"
BRP_PESIGN_FILES="$BRP_PESIGN_FILES /boot/vmlinuz-%kernelrelease-%build_flavor"
%endif
+%ifarch %ix86
+# XXX: do not sign on x86, as the repackaging changes kernel-pae
+# from i686 to i586
+BRP_PESIGN_FILES=""
+%endif
# get rid of /usr/lib/rpm/brp-strip-debug
# strip removes too much from the vmlinux ELF binary
++++++ linux-4.2.tar.xz -> linux-4.3.tar.xz ++++++
/work/SRC/openSUSE:Factory/kernel-source/linux-4.2.tar.xz /work/SRC/openSUSE:Factory/.kernel-source.new/linux-4.3.tar.xz differ: char 26, line 1
++++++ 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-07-06 22:44:45.000000000 +0200
+++ new/patches.arch/arm64-0004-net-xgbe-Add-A0-silicon-support.patch 2015-09-30 01:37:00.000000000 +0200
@@ -10369,12 +10369,13 @@
+#endif
--- a/drivers/net/phy/Makefile
+++ b/drivers/net/phy/Makefile
-@@ -34,4 +34,5 @@ obj-$(CONFIG_MDIO_BUS_MUX_MMIOREG) += md
+@@ -34,5 +34,6 @@ 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-a0.o
obj-$(CONFIG_MDIO_BCM_UNIMAC) += mdio-bcm-unimac.o
+ obj-$(CONFIG_MICROCHIP_PHY) += microchip.o
--- /dev/null
+++ b/drivers/net/phy/amd-xgbe-phy-a0.c
@@ -0,0 +1,1800 @@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-0006-arm64-Select-reboot-driver-for-X-Gene-platform.patch new/patches.arch/arm64-0006-arm64-Select-reboot-driver-for-X-Gene-platform.patch
--- old/patches.arch/arm64-0006-arm64-Select-reboot-driver-for-X-Gene-platform.patch 2015-07-06 22:44:45.000000000 +0200
+++ new/patches.arch/arm64-0006-arm64-Select-reboot-driver-for-X-Gene-platform.patch 2015-09-30 01:37:00.000000000 +0200
@@ -16,8 +16,8 @@
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 9532f8d..d9784c8 100644
---- a/arch/arm64/Kconfig
-+++ b/arch/arm64/Kconfig
+--- a/arch/arm64/Kconfig.platforms
++++ b/arch/arm64/Kconfig.platforms
@@ -159,6 +159,8 @@ config ARCH_VEXPRESS
config ARCH_XGENE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-0007-arm64-Do-not-call-enable-PCI-resources-when-specify-.patch new/patches.arch/arm64-0007-arm64-Do-not-call-enable-PCI-resources-when-specify-.patch
--- old/patches.arch/arm64-0007-arm64-Do-not-call-enable-PCI-resources-when-specify-.patch 2015-07-06 22:44:45.000000000 +0200
+++ new/patches.arch/arm64-0007-arm64-Do-not-call-enable-PCI-resources-when-specify-.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,44 +0,0 @@
-From 64cca9d43139d05744b8be00ccf54d42e58d278f Mon Sep 17 00:00:00 2001
-From: Suravee Suthikulpanit
-Date: Sun, 28 Sep 2014 15:53:29 -0500
-Subject: [PATCH 07/10] arm64: Do not call enable PCI resources when specify
- PCI_PROBE_ONLY
-Patch-mainline: No
-References: bnc#902632
-
-When specify PCI_PROBE_ONLY, the resource parent does not get assigned.
-Therefore, pci_enable_resources() return error saying that
-"BAR x not claimed".
-
-Note: This same logic is also used in the arch/arm/kernel/bios32.c
-
-Cc: Liviu Dudau
-Cc: Bjorn Helgaas
-Cc: Will Deacon
-Cc: Catalin Marinas
-Signed-off-by: Suravee Suthikulpanit
-Signed-off-by: Alexander Graf
-
----
- arch/arm64/kernel/pci.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c
-index ce5836c..7fd4d2b 100644
---- a/arch/arm64/kernel/pci.c
-+++ b/arch/arm64/kernel/pci.c
-@@ -68,3 +68,11 @@ void pci_bus_assign_domain_nr(struct pci_bus *bus, struct device *parent)
- return NULL;
- }
- #endif
-+
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
-+{
-+ if (pci_has_flag(PCI_PROBE_ONLY))
-+ return 0;
-+
-+ return pci_enable_resources(dev, mask);
-+}
---
-2.1.0
-
++++++ 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 2015-10-28 08:49:09.000000000 +0100
+++ new/patches.drivers/0001-qmi_wwan-Add-support-for-Dell-Wireless-5809e-4G-Mode.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,35 +0,0 @@
-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 2015-10-28 08:49:09.000000000 +0100
+++ new/patches.drivers/0001-vmwgfx-Rework-device-initialization.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,872 +0,0 @@
-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 2015-10-28 08:49:09.000000000 +0100
+++ new/patches.drivers/0002-drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,57 +0,0 @@
-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-Fix-deadlock-at-error-in-building-PCM new/patches.drivers/ALSA-hda-Fix-deadlock-at-error-in-building-PCM
--- old/patches.drivers/ALSA-hda-Fix-deadlock-at-error-in-building-PCM 2015-10-28 08:49:09.000000000 +0100
+++ new/patches.drivers/ALSA-hda-Fix-deadlock-at-error-in-building-PCM 1970-01-01 01:00:00.000000000 +0100
@@ -1,65 +0,0 @@
-From d289619a219dd01e255d7b5e30f9171b25efea48 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai
-Date: Tue, 20 Oct 2015 16:23:55 +0200
-Subject: [PATCH] ALSA: hda - Fix deadlock at error in building PCM
-Git-commit: d289619a219dd01e255d7b5e30f9171b25efea48
-Patch-mainline: Queued in subsystem maintainer repository
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound.git
-References: bsc#948758
-
-The HDA codec driver issues snd_hda_codec_reset() at the error path of
-PCM build. This was needed in the earlier code base, but the recent
-rewrite to use the standard bus binding made this a deadlock:
- modprobe D 0000000000000005 0 720 716 0x00000080
- Call Trace:
- [<ffffffff816a5dbe>] schedule+0x3e/0x90
- [<ffffffff816a61a5>] schedule_preempt_disabled+0x15/0x20
- [<ffffffff816a7ae5>] __mutex_lock_slowpath+0xb5/0x120
- [<ffffffff816a7b6b>] mutex_lock+0x1b/0x30
- [<ffffffff8148656b>] device_release_driver+0x1b/0x30
- [<ffffffff81485c15>] bus_remove_device+0x105/0x180
- [<ffffffff814822b9>] device_del+0x139/0x260
- [<ffffffffa05e0ec5>] snd_hdac_device_unregister+0x25/0x30 [snd_hda_core]
- [<ffffffffa074fa6a>] snd_hda_codec_reset+0x2a/0x70 [snd_hda_codec]
- [<ffffffffa075007b>] snd_hda_codec_build_pcms+0x18b/0x1b0 [snd_hda_codec]
- [<ffffffffa074a44e>] hda_codec_driver_probe+0xbe/0x140 [snd_hda_codec]
- [<ffffffff81486ac4>] driver_probe_device+0x1f4/0x460
- [<ffffffff81486dc0>] __driver_attach+0x90/0xa0
- [<ffffffff81484844>] bus_for_each_dev+0x64/0xa0
- [<ffffffff814862de>] driver_attach+0x1e/0x20
- [<ffffffff81485e7b>] bus_add_driver+0x1eb/0x280
- [<ffffffff81487680>] driver_register+0x60/0xe0
- [<ffffffffa074a0da>] __hda_codec_driver_register+0x5a/0x60 [snd_hda_codec]
- [<ffffffffa070a01e>] realtek_driver_init+0x1e/0x1000 [snd_hda_codec_realtek]
- [<ffffffff810002f3>] do_one_initcall+0xb3/0x200
- [<ffffffff816a1fc5>] do_init_module+0x60/0x1f8
- [<ffffffff810ee5c3>] load_module+0x1653/0x1bd0
- [<ffffffff810eed48>] SYSC_finit_module+0x98/0xc0
- [<ffffffff810eed8e>] SyS_finit_module+0xe/0x10
- [<ffffffff816aa032>] entry_SYSCALL_64_fastpath+0x16/0x75
-
-The simple fix is just to remove this call, since we don't need to
-think about unbinding at there any longer.
-
-Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=948758
-Cc: # v4.1+
-Signed-off-by: Takashi Iwai
-
----
- sound/pci/hda/hda_codec.c | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
---- a/sound/pci/hda/hda_codec.c
-+++ b/sound/pci/hda/hda_codec.c
-@@ -3438,10 +3438,8 @@ int snd_hda_codec_build_pcms(struct hda_
- int dev, err;
-
- err = snd_hda_codec_parse_pcms(codec);
-- if (err < 0) {
-- snd_hda_codec_reset(codec);
-+ if (err < 0)
- return err;
-- }
-
- /* attach a new PCM streams */
- list_for_each_entry(cpcm, &codec->pcm_list_head, list) {
++++++ patches.fixes.tar.bz2 ++++++
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-10-26 15:37:15.000000000 +0100
+++ new/patches.fixes/btrfs-fix-stale-dir-entries-after-unlink-inode-eviction-and-fsync 1970-01-01 01:00:00.000000000 +0100
@@ -1,172 +0,0 @@
-From: Filipe Manana
-Date: Fri, 24 Jul 2015 06:30:42 +0100
-Subject: Btrfs: fix stale dir entries after unlink, inode eviction and fsync
-Patch-mainline: Submitted, http://www.spinics.net/lists/linux-btrfs/msg45634.html
-References: bsc#942925
-
-If we remove a hard link from an inode, the inode gets evicted, then
-we fsync the inode and then power fail/crash, when the log tree is
-replayed, the parent directory inode still has entries pointing to
-the name that no longer exists, while our inode no longer has the
-BTRFS_INODE_REF_KEY item matching the deleted hard link (as expected),
-leaving the filesystem in an inconsistent state. The stale directory
-entries can not be deleted (an attempt to delete them causes -ESTALE
-errors), which makes it impossible to delete the parent directory.
-
-This happens because we track the id of the transaction where the last
-unlink operation for the inode happened (last_unlink_trans) in an
-in-memory only field of the inode, that is, a value that is never
-persisted in the inode item stored on the fs/subvol btree. So if an
-inode is evicted and loaded again, the value for last_unlink_trans is
-set to 0, which prevents the fsync from logging the parent directory
-at btrfs_log_inode_parent(). So fix this by setting last_unlink_trans
-to the id of the transaction that last modified the inode when we
-load the inode. This is a pessimistic approach but it always ensures
-correctness with the trade off of ocassional full transaction commits
-when an fsync is done against the inode in the same transaction where
-it was evicted and reloaded.
-
-The following test case for fstests triggers the problem:
-
- seq=`basename $0`
- seqres=$RESULT_DIR/$seq
- echo "QA output created by $seq"
- tmp=/tmp/$$
- status=1 # failure is the default!
- trap "_cleanup; exit \$status" 0 1 2 3 15
-
- _cleanup()
- {
- _cleanup_flakey
- rm -f $tmp.*
- }
-
- # get standard environment, filters and checks
- . ./common/rc
- . ./common/filter
- . ./common/dmflakey
-
- # real QA test starts here
- _need_to_be_root
- _supported_fs generic
- _supported_os Linux
- _require_scratch
- _require_dm_flakey
- _require_metadata_journaling $SCRATCH_DEV
-
- rm -f $seqres.full
-
- _scratch_mkfs >>$seqres.full 2>&1
- _init_flakey
- _mount_flakey
-
- # Create our test file with 2 hard links.
- mkdir $SCRATCH_MNT/testdir
- touch $SCRATCH_MNT/testdir/foo
- ln $SCRATCH_MNT/testdir/foo $SCRATCH_MNT/testdir/bar
-
- # Make sure everything done so far is durably persisted.
- sync
-
- # Now remove one of the links, trigger inode eviction and then fsync
- # our inode.
- unlink $SCRATCH_MNT/testdir/bar
- echo 2 > /proc/sys/vm/drop_caches
- $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/testdir/foo
-
- # Silently drop all writes on our scratch device to simulate a power failure.
- _load_flakey_table $FLAKEY_DROP_WRITES
- _unmount_flakey
-
- # Allow writes again and mount the fs to trigger log/journal replay.
- _load_flakey_table $FLAKEY_ALLOW_WRITES
- _mount_flakey
-
- # Now verify our directory entries.
- echo "Entries in testdir:"
- ls -1 $SCRATCH_MNT/testdir
-
- # If we remove our inode, its parent should become empty and therefore we should
- # be able to remove the parent.
- rm -f $SCRATCH_MNT/testdir/*
- rmdir $SCRATCH_MNT/testdir
-
- _unmount_flakey
-
- # The fstests framework will call fsck against our filesystem which will verify
- # that all metadata is in a consistent state.
-
- status=0
- exit
-
-The test failed on btrfs with:
-
- 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 @@
- QA output created by 098
- Entries in testdir:
- +bar
- foo
- +rm: cannot remove '/home/fdmanana/btrfs-tests/scratch_1/testdir/foo': Stale file handle
- +rmdir: failed to remove '/home/fdmanana/btrfs-tests/scratch_1/testdir': Directory not empty
- ...
- (Run 'diff -u tests/generic/098.out /home/fdmanana/git/hub/xfstests/results//generic/098.out.bad' to see the entire diff)
- _check_btrfs_filesystem: filesystem on /dev/sdc is inconsistent (see /home/fdmanana/git/hub/xfstests/results//generic/098.full)
-
- $ cat /home/fdmanana/git/hub/xfstests/results//generic/098.full
- (...)
- checking fs roots
- root 5 inode 258 errors 2001, no inode item, link count wrong
- unresolved ref dir 257 index 0 namelen 3 name foo filetype 1 errors 6, no dir index, no inode ref
- unresolved ref dir 257 index 3 namelen 3 name bar filetype 1 errors 5, no dir item, no inode ref
- Checking filesystem on /dev/sdc
- (...)
-
-Signed-off-by: Filipe Manana
-Acked-by: Jeff Mahoney
----
- fs/btrfs/inode.c | 28 ++++++++++++++++++++++++++++
- 1 file changed, 28 insertions(+)
-
-diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
-index cf7dc05..6847f93 100644
---- a/fs/btrfs/inode.c
-+++ b/fs/btrfs/inode.c
-@@ -3654,6 +3654,34 @@ cache_index:
- set_bit(BTRFS_INODE_NEEDS_FULL_SYNC,
- &BTRFS_I(inode)->runtime_flags);
-
-+ /*
-+ * We don't persist the id of the transaction where an unlink operation
-+ * against the inode was last made. So here we assume the inode might
-+ * have been evicted, and therefore the exact value of last_unlink_trans
-+ * lost, and set it to last_trans to avoid metadata inconsistencies
-+ * between the inode and its if the inode is fsync'ed and the log
-+ * replayed. For example, in the scenario:
-+ *
-+ * touch mydir/foo
-+ * ln mydir/foo mydir/bar
-+ * sync
-+ * unlink mydir/bar
-+ * echo 2 > /proc/sys/vm/drop_caches # evicts inode
-+ * xfs_io -c fsync mydir/foo
-+ * <power failure>
-+ * mount fs, triggers fsync log replay
-+ *
-+ * We must make sure that when we fsync our inode foo we also log its
-+ * parent inode, otherwise after log replay the parent still has the
-+ * dentry with the "bar" name but our inode foo has a link count of 1
-+ * and doesn't have an inode ref with the name "bar" anymore.
-+ *
-+ * Setting last_unlink_trans to last_trans is a pessimistic approach,
-+ * but it guarantees correctness at the expense of ocassional full
-+ * transaction commits on fsync.
-+ */
-+ BTRFS_I(inode)->last_unlink_trans = BTRFS_I(inode)->last_trans;
-+
- path->slots[0]++;
- if (inode->i_nlink != 1 ||
- path->slots[0] >= btrfs_header_nritems(leaf))
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/btrfs-fix-stale-directory-entries-after-fsync-log-replay new/patches.fixes/btrfs-fix-stale-directory-entries-after-fsync-log-replay
--- old/patches.fixes/btrfs-fix-stale-directory-entries-after-fsync-log-replay 2015-10-26 15:37:15.000000000 +0100
+++ new/patches.fixes/btrfs-fix-stale-directory-entries-after-fsync-log-replay 1970-01-01 01:00:00.000000000 +0100
@@ -1,244 +0,0 @@
-From: Filipe Manana
-Date: Wed, 22 Jul 2015 04:54:54 +0100
-Subject: Btrfs: fix stale directory entries after fsync log replay
-Patch-mainline: Submitted, http://www.spinics.net/lists/linux-btrfs/msg45480.html
-References: bsc#942925
-
-We have another case where after an fsync log replay we get an inode with
-a wrong link count (smaller than it should be) and a number of directory
-entries greater than its link count. This happens when we add a new link
-hard link to our inode A and then we fsync some other inode B that has
-the side effect of logging the parent directory inode too. In this case
-at log replay time we add the new hard link to our inode (the item with
-key BTRFS_INODE_REF_KEY) when processing the parent directory but we
-never adjust the link count of our inode A. As a result we get stale dir
-entries for our inode A that can never be deleted and therefore it makes
-it impossible to remove the parent directory (as its i_size can never
-decrease back to 0).
-
-A simple reproducer for fstests that triggers this issue:
-
- seq=`basename $0`
- seqres=$RESULT_DIR/$seq
- echo "QA output created by $seq"
- tmp=/tmp/$$
- status=1 # failure is the default!
- trap "_cleanup; exit \$status" 0 1 2 3 15
-
- _cleanup()
- {
- _cleanup_flakey
- rm -f $tmp.*
- }
-
- # get standard environment, filters and checks
- . ./common/rc
- . ./common/filter
- . ./common/dmflakey
-
- # real QA test starts here
- _need_to_be_root
- _supported_fs generic
- _supported_os Linux
- _require_scratch
- _require_dm_flakey
- _require_metadata_journaling $SCRATCH_DEV
-
- rm -f $seqres.full
-
- _scratch_mkfs >>$seqres.full 2>&1
- _init_flakey
- _mount_flakey
-
- # Create our test directory and files.
- mkdir $SCRATCH_MNT/testdir
- touch $SCRATCH_MNT/testdir/foo
- touch $SCRATCH_MNT/testdir/bar
-
- # Make sure everything done so far is durably persisted.
- sync
-
- # Create one hard link for file foo and another one for file bar. After
- # that fsync only the file bar.
- ln $SCRATCH_MNT/testdir/bar $SCRATCH_MNT/testdir/bar_link
- ln $SCRATCH_MNT/testdir/foo $SCRATCH_MNT/testdir/foo_link
- $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/testdir/bar
-
- # Silently drop all writes on scratch device to simulate power failure.
- _load_flakey_table $FLAKEY_DROP_WRITES
- _unmount_flakey
-
- # Allow writes again and mount the fs to trigger log/journal replay.
- _load_flakey_table $FLAKEY_ALLOW_WRITES
- _mount_flakey
-
- # Now verify both our files have a link count of 2.
- echo "Link count for file foo: $(stat --format=%h $SCRATCH_MNT/testdir/foo)"
- echo "Link count for file bar: $(stat --format=%h $SCRATCH_MNT/testdir/bar)"
-
- # We should be able to remove all the links of our files in testdir, and
- # after that the parent directory should become empty and therefore
- # possible to remove it.
- rm -f $SCRATCH_MNT/testdir/*
- rmdir $SCRATCH_MNT/testdir
-
- _unmount_flakey
-
- # The fstests framework will call fsck against our filesystem which will verify
- # that all metadata is in a consistent state.
-
- status=0
- exit
-
-The test fails with:
-
- -Link count for file foo: 2
- +Link count for file foo: 1
- Link count for file bar: 2
- +rm: cannot remove '/home/fdmanana/btrfs-tests/scratch_1/testdir/foo_link': Stale file handle
- +rmdir: failed to remove '/home/fdmanana/btrfs-tests/scratch_1/testdir': Directory not empty
- (...)
- _check_btrfs_filesystem: filesystem on /dev/sdc is inconsistent
-
-And fsck's output:
-
- (...)
- checking fs roots
- root 5 inode 258 errors 2001, no inode item, link count wrong
- unresolved ref dir 257 index 5 namelen 8 name foo_link filetype 1 errors 4, no inode ref
- Checking filesystem on /dev/sdc
- (...)
-
-So fix this by marking inodes for link count fixup at log replay time
-whenever a directory entry is replayed if the entry was created in the
-transaction where the fsync was made and if it points to a non-directory
-inode.
-
-This isn't a new problem/regression, the issue exists for a long time,
-possibly since the log tree feature was added (2008).
-
-Signed-off-by: Filipe Manana
-Acked-by: Jeff Mahoney
----
- fs/btrfs/tree-log.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++----
- 1 file changed, 60 insertions(+), 4 deletions(-)
-
-diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
-index 9c45431..cb5666e 100644
---- a/fs/btrfs/tree-log.c
-+++ b/fs/btrfs/tree-log.c
-@@ -1613,6 +1613,9 @@ static bool name_in_log_ref(struct btrfs_root *log_root,
- * not exist in the FS, it is skipped. fsyncs on directories
- * do not force down inodes inside that directory, just changes to the
- * names or unlinks in a directory.
-+ *
-+ * Returns < 0 on error, 0 if the name wasn't replayed (dentry points to a
-+ * non-existing inode) and 1 if the name was replayed.
- */
- static noinline int replay_one_name(struct btrfs_trans_handle *trans,
- struct btrfs_root *root,
-@@ -1631,6 +1634,7 @@ static noinline int replay_one_name(struct btrfs_trans_handle *trans,
- int exists;
- int ret = 0;
- bool update_size = (key->type == BTRFS_DIR_INDEX_KEY);
-+ bool name_added = false;
-
- dir = read_one_inode(root, key->objectid);
- if (!dir)
-@@ -1708,6 +1712,8 @@ out:
- }
- kfree(name);
- iput(dir);
-+ if (!ret && name_added)
-+ ret = 1;
- return ret;
-
- insert:
-@@ -1723,6 +1729,8 @@ insert:
- name, name_len, log_type, &log_key);
- if (ret && ret != -ENOENT && ret != -EEXIST)
- goto out;
-+ if (!ret)
-+ name_added = true;
- update_size = false;
- ret = 0;
- goto out;
-@@ -1740,12 +1748,13 @@ static noinline int replay_one_dir_item(struct btrfs_trans_handle *trans,
- struct extent_buffer *eb, int slot,
- struct btrfs_key *key)
- {
-- int ret;
-+ int ret = 0;
- u32 item_size = btrfs_item_size_nr(eb, slot);
- struct btrfs_dir_item *di;
- int name_len;
- unsigned long ptr;
- unsigned long ptr_end;
-+ struct btrfs_path *fixup_path = NULL;
-
- ptr = btrfs_item_ptr_offset(eb, slot);
- ptr_end = ptr + item_size;
-@@ -1755,12 +1764,59 @@ static noinline int replay_one_dir_item(struct btrfs_trans_handle *trans,
- return -EIO;
- name_len = btrfs_dir_name_len(eb, di);
- ret = replay_one_name(trans, root, path, eb, di, key);
-- if (ret)
-- return ret;
-+ if (ret < 0)
-+ break;
- ptr = (unsigned long)(di + 1);
- ptr += name_len;
-+
-+ /*
-+ * If this entry refers to a non-directory (directories can not
-+ * have a link count > 1) and it was added in the transaction
-+ * that was not committed, make sure we fixup the link count of
-+ * the inode it the entry points to. Otherwise something like
-+ * the following would result in a directory pointing to an
-+ * inode with a wrong link that does not account for this dir
-+ * entry:
-+ *
-+ * mkdir testdir
-+ * touch testdir/foo
-+ * touch testdir/bar
-+ * sync
-+ *
-+ * ln testdir/bar testdir/bar_link
-+ * ln testdir/foo testdir/foo_link
-+ * xfs_io -c "fsync" testdir/bar
-+ *
-+ * <power failure>
-+ *
-+ * mount fs, log replay happens
-+ *
-+ * File foo would remain with a link count of 1 when it has two
-+ * entries pointing to it in the directory testdir. This would
-+ * make it impossible to ever delete the parent directory has
-+ * it would result in stale dentries that can never be deleted.
-+ */
-+ if (ret == 1 && btrfs_dir_type(eb, di) != BTRFS_FT_DIR) {
-+ struct btrfs_key di_key;
-+
-+ if (!fixup_path) {
-+ fixup_path = btrfs_alloc_path();
-+ if (!fixup_path) {
-+ ret = -ENOMEM;
-+ break;
-+ }
-+ }
-+
-+ btrfs_dir_item_key_to_cpu(eb, di, &di_key);
-+ ret = link_to_fixup_dir(trans, root, fixup_path,
-+ di_key.objectid);
-+ if (ret)
-+ break;
-+ }
-+ ret = 0;
- }
-- return 0;
-+ btrfs_free_path(fixup_path);
-+ return ret;
- }
-
- /*
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/dm-mpath-reattach-dh new/patches.fixes/dm-mpath-reattach-dh
--- old/patches.fixes/dm-mpath-reattach-dh 2015-10-26 15:37:15.000000000 +0100
+++ new/patches.fixes/dm-mpath-reattach-dh 1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-From: Hannes Reinecke
-Subject: Reattach device handler for multipath devices
-References: bnc#435688
-Patch-mainline: not yet
-
-The multipath daemon might have specified a different device_handler
-than the one a device is attached to by default.
-So we should try to re-attach with the user-specified device_handler
-and only return an error if that fails.
-And we should _not_ detach existing hardware handlers. This will
-set the path to failed during failover.
-
-Signed-off-by: Hannes Reinecke list);
-- if (m->hw_handler_name)
-- scsi_dh_detach(bdev_get_queue(pgpath->path.dev->bdev));
- dm_put_device(ti, pgpath->path.dev);
- free_pgpath(pgpath);
- }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/dm-table-switch-to-readonly new/patches.fixes/dm-table-switch-to-readonly
--- old/patches.fixes/dm-table-switch-to-readonly 2015-10-26 15:37:15.000000000 +0100
+++ new/patches.fixes/dm-table-switch-to-readonly 2015-11-02 15:56:50.000000000 +0100
@@ -68,9 +68,9 @@
kfree(td);
return r;
@@ -2347,6 +2361,10 @@ static struct dm_table *__bind(struct ma
- set_bit(DMF_MERGE_IS_OPTIONAL, &md->flags);
- else
- clear_bit(DMF_MERGE_IS_OPTIONAL, &md->flags);
+ md->immutable_target_type = dm_table_get_immutable_target_type(t);
+
+ dm_table_set_restrictions(t, q, limits);
+ if (!(dm_table_get_mode(t) & FMODE_WRITE))
+ set_disk_ro(md->disk, 1);
+ else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/media-c8sectpfe-Remove-select-of-CONFIG_FW_LOADER_USER_HELPER new/patches.fixes/media-c8sectpfe-Remove-select-of-CONFIG_FW_LOADER_USER_HELPER
--- old/patches.fixes/media-c8sectpfe-Remove-select-of-CONFIG_FW_LOADER_USER_HELPER 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/media-c8sectpfe-Remove-select-of-CONFIG_FW_LOADER_USER_HELPER 2015-11-02 15:56:50.000000000 +0100
@@ -0,0 +1,30 @@
+From: Takashi Iwai
+Subject: [PATCH] [media] c8sectpfe: Remove select on CONFIG_FW_LOADER_USER_HELPER_FALLBACK
+Date: Mon, 19 Oct 2015 08:17:30 +0200
+Message-id: <1445235450-6771-1-git-send-email-tiwai@suse.de>
+Patch-mainline: Submitted, Mon, 19 Oct 2015 08:17:30 +0200, LKML
+References: boo#951260
+
+c8sectpfe driver selects CONFIG_FW_LOADER_USER_HELPER_FALLBACK by some
+reason, but this option is known to be harmful, leading to minutes of
+stalls at boot time. The option was intended for only compatibility
+for an old exotic system that mandates the udev interaction, and not a
+thing a driver selects by itself. Let's remove it.
+
+Fixes: 850a3f7d5911 ('[media] c8sectpfe: Add Kconfig and Makefile for the driver')
+Signed-off-by: Takashi Iwai
+
+---
+ drivers/media/platform/sti/c8sectpfe/Kconfig | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/drivers/media/platform/sti/c8sectpfe/Kconfig
++++ b/drivers/media/platform/sti/c8sectpfe/Kconfig
+@@ -3,7 +3,6 @@ config DVB_C8SECTPFE
+ depends on PINCTRL && DVB_CORE && I2C
+ depends on ARCH_STI || ARCH_MULTIPLATFORM || COMPILE_TEST
+ select FW_LOADER
+- select FW_LOADER_USER_HELPER_FALLBACK
+ select DEBUG_FS
+ select DVB_LNBP21 if MEDIA_SUBDRV_AUTOSELECT
+ select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/rtlwifi-rtl8821ae-Fix-system-lockups-on-boot.patch new/patches.fixes/rtlwifi-rtl8821ae-Fix-system-lockups-on-boot.patch
--- old/patches.fixes/rtlwifi-rtl8821ae-Fix-system-lockups-on-boot.patch 2015-10-26 15:37:15.000000000 +0100
+++ new/patches.fixes/rtlwifi-rtl8821ae-Fix-system-lockups-on-boot.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,132 +0,0 @@
-From 54328e64047a54b8fc2362c2e1f0fa16c90f739f Mon Sep 17 00:00:00 2001
-From: Larry Finger
-Date: Fri, 2 Oct 2015 11:44:30 -0500
-Subject: [PATCH] rtlwifi: rtl8821ae: Fix system lockups on boot
-Patch-mainline: Queued in subsystem maintainer repository
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next.git#master
-Git-commit: 54328e64047a54b8fc2362c2e1f0fa16c90f739f
-References: boo#944978
-
-In commit 1277fa2ab2f9 ("rtlwifi: Remove the clear interrupt routine from all
-drivers"), the code that cleared all interrupt enable bits before setting them
-was removed for all PCI drivers. This fixed an issue that caused TX to be
-blocked for 3-5 seconds. On some RTL8821AE units, this change causes soft
-lockups to occur on boot. For that reason, the portion of the earlier commit
-that applied to rtl8821ae is reverted. Kernels 4.1 and newer are affected.
-
-See http://marc.info/?l=linux-wireless&m=144373370103285&w=2 and
-https://bugzilla.opensuse.org/show_bug.cgi?id=944978 for two cases where
-this regression affected user systems. Note that this bug does not appear on
-any of the developer's setups. For those users whose systems are affected
-by the TX blockage, but do not lock up on boot, a module parameter is added
-to disable the interrupt clear
-
-Fixes: 1277fa2ab2f9 ("rtlwifi: Remove the clear interrupt routine from all drivers")
-Signed-off-by: Larry Finger
-Cc: Stable [V4.1+]
-Signed-off-by: Kalle Valo
-Acked-by: Takashi Iwai
-
----
- drivers/net/wireless/rtlwifi/pci.h | 2 ++
- drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 17 +++++++++++++++++
- drivers/net/wireless/rtlwifi/rtl8821ae/sw.c | 5 +++++
- drivers/net/wireless/rtlwifi/wifi.h | 3 +++
- 4 files changed, 27 insertions(+)
-
---- a/drivers/net/wireless/rtlwifi/pci.h
-+++ b/drivers/net/wireless/rtlwifi/pci.h
-@@ -247,6 +247,8 @@ struct rtl_pci {
- /* MSI support */
- bool msi_support;
- bool using_msi;
-+ /* interrupt clear before set */
-+ bool int_clear;
- };
-
- struct mp_adapter {
---- a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
-@@ -2253,11 +2253,28 @@ void rtl8821ae_set_qos(struct ieee80211_
- }
- }
-
-+static void rtl8821ae_clear_interrupt(struct ieee80211_hw *hw)
-+{
-+ struct rtl_priv *rtlpriv = rtl_priv(hw);
-+ u32 tmp = rtl_read_dword(rtlpriv, REG_HISR);
-+
-+ rtl_write_dword(rtlpriv, REG_HISR, tmp);
-+
-+ tmp = rtl_read_dword(rtlpriv, REG_HISRE);
-+ rtl_write_dword(rtlpriv, REG_HISRE, tmp);
-+
-+ tmp = rtl_read_dword(rtlpriv, REG_HSISR);
-+ rtl_write_dword(rtlpriv, REG_HSISR, tmp);
-+}
-+
- void rtl8821ae_enable_interrupt(struct ieee80211_hw *hw)
- {
- struct rtl_priv *rtlpriv = rtl_priv(hw);
- struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
-
-+ if (!rtlpci->int_clear)
-+ rtl8821ae_clear_interrupt(hw);/*clear it here first*/
-+
- rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF);
- rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF);
- rtlpci->irq_enabled = true;
---- a/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/sw.c
-@@ -96,6 +96,7 @@ int rtl8821ae_init_sw_vars(struct ieee80
-
- rtl8821ae_bt_reg_init(hw);
- rtlpci->msi_support = rtlpriv->cfg->mod_params->msi_support;
-+ rtlpci->int_clear = rtlpriv->cfg->mod_params->int_clear;
- rtlpriv->btcoexist.btc_ops = rtl_btc_get_ops_pointer();
-
- rtlpriv->dm.dm_initialgain_enable = 1;
-@@ -167,6 +168,7 @@ int rtl8821ae_init_sw_vars(struct ieee80
- rtlpriv->psc.swctrl_lps = rtlpriv->cfg->mod_params->swctrl_lps;
- rtlpriv->psc.fwctrl_lps = rtlpriv->cfg->mod_params->fwctrl_lps;
- rtlpci->msi_support = rtlpriv->cfg->mod_params->msi_support;
-+ rtlpci->msi_support = rtlpriv->cfg->mod_params->int_clear;
- if (rtlpriv->cfg->mod_params->disable_watchdog)
- pr_info("watchdog disabled\n");
- rtlpriv->psc.reg_fwctrl_lps = 3;
-@@ -308,6 +310,7 @@ static struct rtl_mod_params rtl8821ae_m
- .swctrl_lps = false,
- .fwctrl_lps = true,
- .msi_support = true,
-+ .int_clear = true,
- .debug = DBG_EMERG,
- .disable_watchdog = 0,
- };
-@@ -437,6 +440,7 @@ module_param_named(fwlps, rtl8821ae_mod_
- module_param_named(msi, rtl8821ae_mod_params.msi_support, bool, 0444);
- module_param_named(disable_watchdog, rtl8821ae_mod_params.disable_watchdog,
- bool, 0444);
-+module_param_named(int_clear, rtl8821ae_mod_params.int_clear, bool, 0444);
- MODULE_PARM_DESC(swenc, "Set to 1 for software crypto (default 0)\n");
- MODULE_PARM_DESC(ips, "Set to 0 to not use link power save (default 1)\n");
- MODULE_PARM_DESC(swlps, "Set to 1 to use SW control power save (default 0)\n");
-@@ -444,6 +448,7 @@ MODULE_PARM_DESC(fwlps, "Set to 1 to use
- MODULE_PARM_DESC(msi, "Set to 1 to use MSI interrupts mode (default 1)\n");
- MODULE_PARM_DESC(debug, "Set debug level (0-5) (default 0)");
- MODULE_PARM_DESC(disable_watchdog, "Set to 1 to disable the watchdog (default 0)\n");
-+MODULE_PARM_DESC(int_clear, "Set to 1 to disable interrupt clear before set (default 0)\n");
-
- static SIMPLE_DEV_PM_OPS(rtlwifi_pm_ops, rtl_pci_suspend, rtl_pci_resume);
-
---- a/drivers/net/wireless/rtlwifi/wifi.h
-+++ b/drivers/net/wireless/rtlwifi/wifi.h
-@@ -2249,6 +2249,9 @@ struct rtl_mod_params {
-
- /* default 0: 1 means disable */
- bool disable_watchdog;
-+
-+ /* default 0: 1 means do not disable interrupts */
-+ bool int_clear;
- };
-
- struct rtl_hal_usbint_cfg {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/scsi-dh-queuedata-accessors new/patches.fixes/scsi-dh-queuedata-accessors
--- old/patches.fixes/scsi-dh-queuedata-accessors 2015-10-26 15:37:15.000000000 +0100
+++ new/patches.fixes/scsi-dh-queuedata-accessors 2015-11-02 15:56:50.000000000 +0100
@@ -14,13 +14,13 @@
Signed-off-by: Hannes Reinecke
---
- drivers/scsi/device_handler/scsi_dh.c | 10 +++++-----
+ drivers/scsi/scsi_dh.c | 10 +++++-----
drivers/scsi/scsi_lib.c | 11 +++++++++++
include/scsi/scsi_device.h | 1 +
3 files changed, 17 insertions(+), 5 deletions(-)
---- a/drivers/scsi/device_handler/scsi_dh.c
-+++ b/drivers/scsi/device_handler/scsi_dh.c
+--- a/drivers/scsi/scsi_dh.c
++++ b/drivers/scsi/scsi_dh.c
@@ -397,7 +397,7 @@ int scsi_dh_activate(struct request_queu
struct device *dev = NULL;
@@ -48,8 +48,8 @@
if (!sdev || !get_device(&sdev->sdev_gendev))
sdev = NULL;
spin_unlock_irqrestore(q->queue_lock, flags);
---- a/drivers/scsi/scsi_lib.c
-+++ b/drivers/scsi/scsi_lib.c
+--- a/drivers/scsi/scsi_dh.c
++++ b/drivers/scsi/scsi_dh.c
@@ -1594,6 +1594,17 @@ out:
kfree(cmd->sense_buffer);
}
++++++ patches.kernel.org.tar.bz2 ++++++
++++ 23670 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-09-22 17:17:36.000000000 +0200
+++ new/patches.suse/8250-sysrq-ctrl_o.patch 2015-09-25 22:51:28.000000000 +0200
@@ -110,17 +110,17 @@
of_node_put(prom_stdout);
DBG("Found serial console at ttyS%d\n", offset);
---- a/drivers/tty/serial/8250/8250_core.c
-+++ b/drivers/tty/serial/8250/8250_core.c
+--- a/drivers/tty/serial/8250/8250_port.c
++++ b/drivers/tty/serial/8250/8250_port.c
@@ -102,6 +102,8 @@ static unsigned int skip_txen_test; /* f
- #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
+ #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
+#define arch_8250_sysrq_via_ctrl_o(a,b) 0
+
- #include
/*
- * SERIAL_PORT_DFNS tells us about built-in ports that have no
+ * Here we define the default xmit fifo size used for each type of UART.
+ */
@@ -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-advertise-which-crc32c-implementation-is-being-used-on-mount new/patches.suse/btrfs-advertise-which-crc32c-implementation-is-being-used-on-mount
--- old/patches.suse/btrfs-advertise-which-crc32c-implementation-is-being-used-on-mount 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-advertise-which-crc32c-implementation-is-being-used-on-mount 2015-09-25 22:51:28.000000000 +0200
@@ -0,0 +1,33 @@
+From: Jeff Mahoney
+Subject: btrfs: advertise which crc32c implementation is being used on mount
+References: bsc#946057
+Patch-mainline: Submitted to linux-btrfs, 16 Sep 2015
+
+Since several architectures support hardware-accelerated crc32c
+calculation, it would be nice to confirm that btrfs is actually using it.
+
+We can see an elevated use count for the module, but it doesn't actually
+show who the users are. This patch simply prints the name of the driver
+after successfully initializing the shash.
+
+Signed-off-by: Jeff Mahoney
+---
+ fs/btrfs/hash.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/fs/btrfs/hash.c
++++ b/fs/btrfs/hash.c
+@@ -20,8 +20,12 @@ static struct crypto_shash *tfm;
+ int __init btrfs_hash_init(void)
+ {
+ tfm = crypto_alloc_shash("crc32c", 0, 0);
++ if (IS_ERR(tfm))
++ return PTR_ERR(tfm);
+
+- return PTR_ERR_OR_ZERO(tfm);
++ printk("BTRFS: using %s for crc32c\n",
++ crypto_tfm_alg_driver_name(crypto_shash_tfm(tfm)));
++ return 0;
+ }
+
+ void btrfs_hash_exit(void)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-provide-super_operations-get_inode_dev new/patches.suse/btrfs-provide-super_operations-get_inode_dev
--- old/patches.suse/btrfs-provide-super_operations-get_inode_dev 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-provide-super_operations-get_inode_dev 2015-09-25 22:51:28.000000000 +0200
@@ -0,0 +1,50 @@
+From: Jeff Mahoney
+Subject: btrfs: provide super_operations->inode_get_dev
+References: bsc#927455
+Patch-mainline: Probably never,
+ upstream solutions have been met with heavy resistance in
+ preference of unworkable fixes
+
+In order to ensure that the per-subvolume anonymous dev_t gets published
+to userspace, we need to provide the super_operations->get_inode_dev
+operation.
+
+Signed-off-by: Jeff Mahoney
+---
+ fs/btrfs/btrfs_inode.h | 2 +-
+ fs/btrfs/super.c | 6 ++++++
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+--- a/fs/btrfs/btrfs_inode.h
++++ b/fs/btrfs/btrfs_inode.h
+@@ -179,7 +179,7 @@ struct btrfs_inode {
+
+ extern unsigned char btrfs_filetype_table[];
+
+-static inline struct btrfs_inode *BTRFS_I(struct inode *inode)
++static inline struct btrfs_inode *BTRFS_I(const struct inode *inode)
+ {
+ return container_of(inode, struct btrfs_inode, vfs_inode);
+ }
+--- a/fs/btrfs/super.c
++++ b/fs/btrfs/super.c
+@@ -1813,6 +1813,11 @@ static int btrfs_show_devname(struct seq
+ return 0;
+ }
+
++static dev_t btrfs_get_inode_dev(const struct inode *inode)
++{
++ return BTRFS_I(inode)->root->anon_dev;
++}
++
+ static const struct super_operations btrfs_super_ops = {
+ .drop_inode = btrfs_drop_inode,
+ .evict_inode = btrfs_evict_inode,
+@@ -1827,6 +1832,7 @@ static const struct super_operations btr
+ .statfs = btrfs_statfs,
+ .remount_fs = btrfs_remount,
+ .freeze_fs = btrfs_freeze,
++ .get_inode_dev = btrfs_get_inode_dev,
+ };
+
+ static const struct file_operations btrfs_ctl_fops = {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/btrfs-use-correct-device-for-maps.patch new/patches.suse/btrfs-use-correct-device-for-maps.patch
--- old/patches.suse/btrfs-use-correct-device-for-maps.patch 2015-09-22 17:17:36.000000000 +0200
+++ new/patches.suse/btrfs-use-correct-device-for-maps.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,68 +0,0 @@
-From: David Sterba
-Date: Mon, 02 Jan 2012 13:40:28 +0100
-Subject: [PATCH] btrfs: use correct device for maps
-Reference: bnc#672923 bnc#769545
-Patch-mainline: no
-
-Signed-off-by: David Sterba
----
-
----
- fs/proc/task_mmu.c | 11 ++++++++++-
- fs/proc/task_nommu.c | 11 ++++++++++-
- 2 files changed, 20 insertions(+), 2 deletions(-)
-
---- a/fs/proc/task_mmu.c 2013-05-11 20:14:08.000000000 -0400
-+++ b/fs/proc/task_mmu.c 2013-05-14 09:22:40.157664262 -0400
-@@ -11,6 +11,7 @@
- #include
- #include
- #include
-+#include
-
- #include
- #include
-@@ -272,7 +273,15 @@ show_map_vma(struct seq_file *m, struct
-
- if (file) {
- struct inode *inode = file_inode(vma->vm_file);
-- dev = inode->i_sb->s_dev;
-+
-+ if (inode->i_sb->s_magic == BTRFS_SUPER_MAGIC) {
-+ struct kstat stat;
-+
-+ vfs_getattr(&file->f_path, &stat);
-+ dev = stat.dev;
-+ } else {
-+ dev = inode->i_sb->s_dev;
-+ }
- ino = inode->i_ino;
- pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
- }
---- a/fs/proc/task_nommu.c 2013-05-11 20:14:08.000000000 -0400
-+++ b/fs/proc/task_nommu.c 2013-05-14 09:22:50.310566899 -0400
-@@ -7,6 +7,7 @@
- #include
- #include
- #include
-+#include
- #include "internal.h"
-
- /*
-@@ -150,7 +151,15 @@ static int nommu_vma_show(struct seq_fil
-
- if (file) {
- struct inode *inode = file_inode(vma->vm_file);
-- dev = inode->i_sb->s_dev;
-+
-+ if (inode->i_sb->s_magic == BTRFS_SUPER_MAGIC) {
-+ struct kstat stat;
-+
-+ vfs_getattr(&file->f_path, &stat);
-+ dev = stat.dev;
-+ } else {
-+ dev = inode->i_sb->s_dev;
-+ }
- ino = inode->i_ino;
- pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
- }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/kconfig-automate-kernel-desktop new/patches.suse/kconfig-automate-kernel-desktop
--- old/patches.suse/kconfig-automate-kernel-desktop 2015-09-22 17:17:36.000000000 +0200
+++ new/patches.suse/kconfig-automate-kernel-desktop 1970-01-01 01:00:00.000000000 +0100
@@ -1,50 +0,0 @@
-From: Suresh Jayaraman
-Subject: [PATCH] automate config options for kernel-desktop
-References: FATE#305694
-Patch-mainline: Never
-
-Automate the desktop only kernel configuration options with the new
-CONFIG_KERNEL_DESKTOP.
-
-Signed-off-by: Suresh Jayaraman
----
- init/Kconfig | 6 ++++++
- kernel/Kconfig.hz | 1 +
- kernel/Kconfig.preempt | 1 +
- 3 files changed, 8 insertions(+)
-
---- a/init/Kconfig
-+++ b/init/Kconfig
-@@ -30,6 +30,12 @@ config SPLIT_PACKAGE
- If you aren't packaging a kernel for distribution, it's safe to
- say n.
-
-+config KERNEL_DESKTOP
-+ bool "Kernel to suit desktop workloads"
-+ help
-+ This is an option used to tune kernel parameters to better suit
-+ desktop workloads.
-+
- config ARCH
- string
- option env="ARCH"
---- a/kernel/Kconfig.hz
-+++ b/kernel/Kconfig.hz
-@@ -4,6 +4,7 @@
-
- choice
- prompt "Timer frequency"
-+ default HZ_1000 if KERNEL_DESKTOP
- default HZ_250
- help
- Allows the configuration of the timer frequency. It is customary
---- a/kernel/Kconfig.preempt
-+++ b/kernel/Kconfig.preempt
-@@ -1,6 +1,7 @@
-
- choice
- prompt "Preemption Model"
-+ default PREEMPT if KERNEL_DESKTOP
- default PREEMPT_NONE
-
- config PREEMPT_NONE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/mpath-fix new/patches.suse/mpath-fix
--- old/patches.suse/mpath-fix 2015-09-22 17:17:36.000000000 +0200
+++ new/patches.suse/mpath-fix 2015-09-25 22:51:28.000000000 +0200
@@ -13,14 +13,6 @@
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
-@@ -165,7 +165,6 @@ static struct priority_group *alloc_prio
- static void free_pgpaths(struct list_head *pgpaths, struct dm_target *ti)
- {
- struct pgpath *pgpath, *tmp;
-- struct multipath *m = ti->private;
-
- list_for_each_entry_safe(pgpath, tmp, pgpaths, list) {
- list_del(&pgpath->list);
@@ -1201,7 +1200,7 @@ static void pg_init_done(void *data, int
break;
}
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-09-22 17:17:36.000000000 +0200
+++ new/patches.suse/scsi-netlink-ml 2015-09-25 22:51:28.000000000 +0200
@@ -27,8 +27,8 @@
#include
#include
@@ -34,6 +36,7 @@
- #include
#include
+ #include
#include
+#include
@@ -121,9 +121,9 @@
+ scsi_post_sense_event(sdev, &sshdr);
+
- if (sdev->scsi_dh_data && sdev->scsi_dh_data->scsi_dh &&
- sdev->scsi_dh_data->scsi_dh->check_sense) {
+ if (sdev->handler && sdev->handler->check_sense) {
int rc;
+
--- a/include/uapi/scsi/scsi_netlink.h
+++ b/include/uapi/scsi/scsi_netlink.h
@@ -35,7 +35,8 @@
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-09-22 17:17:36.000000000 +0200
+++ new/patches.suse/stack-unwind 2015-09-25 22:51:28.000000000 +0200
@@ -58,7 +58,7 @@
--- a/Makefile
+++ b/Makefile
-@@ -729,6 +729,11 @@ endif
+@@ -722,6 +722,11 @@ endif
KBUILD_CFLAGS += $(call cc-option, -fno-var-tracking-assignments)
@@ -72,7 +72,7 @@
KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g)
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
-@@ -635,7 +635,7 @@ config X86_32_IRIS
+@@ -637,7 +637,7 @@ config X86_32_IRIS
config SCHED_OMIT_FRAME_POINTER
def_bool y
prompt "Single-depth WCHAN output"
@@ -83,7 +83,7 @@
is disabled then wchan values will recurse back to the
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
-@@ -149,6 +149,11 @@ endif
+@@ -159,6 +159,11 @@ endif
sp-$(CONFIG_X86_32) := esp
sp-$(CONFIG_X86_64) := rsp
@@ -95,7 +95,7 @@
# 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$(
+@@ -166,8 +171,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)
@@ -106,16 +106,16 @@
LDFLAGS := -m elf_$(UTS_MACHINE)
-@@ -166,7 +171,9 @@ KBUILD_CFLAGS += -pipe
+@@ -176,7 +181,9 @@ KBUILD_CFLAGS += -pipe
# Workaround for a gcc prelease that unfortunately was shipped in a suse release
KBUILD_CFLAGS += -Wno-sign-compare
#
+ifneq ($(CONFIG_UNWIND_INFO),y)
KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
+endif
- # 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,)
+
+ KBUILD_CFLAGS += $(mflags-y)
+ KBUILD_AFLAGS += $(mflags-y)
--- a/arch/x86/entry/calling.h
+++ b/arch/x86/entry/calling.h
@@ -46,6 +46,19 @@ For 32-bit we have the following convent
@@ -140,7 +140,7 @@
/*
--- a/arch/x86/entry/entry_32.S
+++ b/arch/x86/entry/entry_32.S
-@@ -224,6 +224,39 @@ ENTRY(ret_from_fork)
+@@ -214,6 +214,39 @@ ENTRY(ret_from_fork)
jmp syscall_exit
END(ret_from_fork)
@@ -182,7 +182,7 @@
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)
+@@ -874,6 +874,38 @@ ENTRY(do_softirq_own_stack)
ret
END(do_softirq_own_stack)
@@ -604,7 +604,7 @@
/* Built-in module parameters. */ \
__param : AT(ADDR(__param) - LOAD_OFFSET) { \
VMLINUX_SYMBOL(__start___param) = .; \
-@@ -828,3 +830,23 @@
+@@ -826,3 +828,23 @@
BSS(bss_align) \
. = ALIGN(stop_align); \
VMLINUX_SYMBOL(__bss_stop) = .;
@@ -806,14 +806,14 @@
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
--- a/kernel/Makefile
+++ b/kernel/Makefile
-@@ -49,6 +49,7 @@ obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) +=
+@@ -48,6 +48,7 @@ obj-$(CONFIG_UID16) += uid16.o
obj-$(CONFIG_MODULES) += module.o
obj-$(CONFIG_MODULE_SIG) += module_signing.o
obj-$(CONFIG_KALLSYMS) += kallsyms.o
+obj-$(CONFIG_STACK_UNWIND) += unwind.o
obj-$(CONFIG_BSD_PROCESS_ACCT) += acct.o
+ obj-$(CONFIG_KEXEC_CORE) += kexec_core.o
obj-$(CONFIG_KEXEC) += kexec.o
- obj-$(CONFIG_BACKTRACE_SELF_TEST) += backtracetest.o
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -45,6 +45,7 @@
@@ -2579,7 +2579,7 @@
config BOOT_PRINTK_DELAY
bool "Delay each boot printk message by N milliseconds"
depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
-@@ -1553,7 +1571,8 @@ config FAULT_INJECTION_STACKTRACE_FILTER
+@@ -1540,7 +1558,8 @@ config FAULT_INJECTION_STACKTRACE_FILTER
depends on FAULT_INJECTION_DEBUG_FS && STACKTRACE_SUPPORT
depends on !X86_64
select STACKTRACE
@@ -2589,7 +2589,7 @@
help
Provide stacktrace filter for fault-injection capabilities
-@@ -1563,7 +1582,8 @@ config LATENCYTOP
+@@ -1550,7 +1569,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/suse-hv-guest-os-id.patch new/patches.suse/suse-hv-guest-os-id.patch
--- old/patches.suse/suse-hv-guest-os-id.patch 2015-09-22 17:17:36.000000000 +0200
+++ new/patches.suse/suse-hv-guest-os-id.patch 2015-09-25 22:51:28.000000000 +0200
@@ -17,9 +17,9 @@
--- linux-3.9-rc5-master.orig/drivers/hv/hv.c
+++ linux-3.9-rc5-master/drivers/hv/hv.c
@@ -134,6 +134,8 @@ int hv_init(void)
- int max_leaf;
- union hv_x64_msr_hypercall_contents hypercall_msr;
+ union hv_x64_msr_hypercall_contents tsc_msr;
void *virtaddr = NULL;
+ void *va_tsc = NULL;
+ __u8 d1 = 0x10; /* SuSE */
+ __u16 d2 = 0x0; /* -d of a.b.c-d */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.suse/vfs-add-super_operations-get_inode_dev new/patches.suse/vfs-add-super_operations-get_inode_dev
--- old/patches.suse/vfs-add-super_operations-get_inode_dev 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/vfs-add-super_operations-get_inode_dev 2015-09-25 22:51:28.000000000 +0200
@@ -0,0 +1,278 @@
+From: Jeff Mahoney
+Subject: vfs: add super_operations->get_inode_dev
+References: bsc#927455
+Patch-mainline: Never, Upstream submissions have been met with a request to use per-subvolume superblocks, which is unworkable in practice
+
+There are many places where a dev_t:ino_t pair are passed to userspace
+to uniquely describe an inode. Some file systems, like btrfs, have
+multiple inode namespace internally and use a separate dev_t to make the
+distinction between them.
+
+This patch adds a super_operations->get_inode_dev operation to allow
+the file system to export those dev_ts to callers within the kernel
+for further export to userspace.
+
+Without this patch, things like audit and some perf and trace events
+will not distinguish between subvolumes within a single btrfs filesystem.
+
+Signed-off-by: Jeff Mahoney
+---
+ arch/arc/kernel/troubleshoot.c | 2 +-
+ drivers/staging/lustre/lustre/llite/dir.c | 2 +-
+ drivers/staging/lustre/lustre/llite/file.c | 2 +-
+ fs/locks.c | 4 ++--
+ fs/nfsd/nfs3xdr.c | 2 +-
+ fs/nfsd/vfs.c | 4 ++--
+ fs/notify/fdinfo.c | 4 ++--
+ fs/proc/nommu.c | 2 +-
+ fs/proc/task_mmu.c | 2 +-
+ fs/proc/task_nommu.c | 2 +-
+ fs/stat.c | 2 +-
+ include/linux/fs.h | 9 +++++++++
+ include/trace/events/filemap.h | 2 +-
+ kernel/audit.c | 2 +-
+ kernel/audit_watch.c | 4 ++--
+ kernel/events/core.c | 2 +-
+ mm/memory-failure.c | 2 +-
+ security/tomoyo/condition.c | 2 +-
+ 18 files changed, 30 insertions(+), 21 deletions(-)
+
+--- a/arch/arc/kernel/troubleshoot.c
++++ b/arch/arc/kernel/troubleshoot.c
+@@ -101,7 +101,7 @@ static void show_faulting_vma(unsigned l
+ if (file) {
+ nm = file_path(file, buf, PAGE_SIZE - 1);
+ inode = file_inode(vma->vm_file);
+- dev = inode->i_sb->s_dev;
++ dev = inode_get_dev(inode);
+ ino = inode->i_ino;
+ }
+ pr_info(" @off 0x%lx in [%s]\n"
+--- a/drivers/staging/lustre/lustre/llite/dir.c
++++ b/drivers/staging/lustre/lustre/llite/dir.c
+@@ -1502,7 +1502,7 @@ skip_lmm:
+ struct lov_user_mds_data *lmdp;
+ lstat_t st = { 0 };
+
+- st.st_dev = inode->i_sb->s_dev;
++ st.st_dev = inode_get_dev(inode);
+ st.st_mode = body->mode;
+ st.st_nlink = body->nlink;
+ st.st_uid = body->uid;
+--- a/drivers/staging/lustre/lustre/llite/file.c
++++ b/drivers/staging/lustre/lustre/llite/file.c
+@@ -3013,7 +3013,7 @@ int ll_getattr(struct vfsmount *mnt, str
+ if (res)
+ return res;
+
+- stat->dev = inode->i_sb->s_dev;
++ stat->dev = inode_get_dev(inode);
+ if (ll_need_32bit_api(sbi))
+ stat->ino = cl_fid_build_ino(&lli->lli_fid, 1);
+ else
+--- a/fs/locks.c
++++ b/fs/locks.c
+@@ -2559,8 +2559,8 @@ static void lock_get_status(struct seq_f
+ if (inode) {
+ /* userspace relies on this representation of dev_t */
+ seq_printf(f, "%d %02x:%02x:%ld ", fl_pid,
+- MAJOR(inode->i_sb->s_dev),
+- MINOR(inode->i_sb->s_dev), inode->i_ino);
++ MAJOR(inode_get_dev(inode)),
++ MINOR(inode_get_dev(inode)), inode->i_ino);
+ } else {
+ seq_printf(f, "%d <none>:0 ", fl_pid);
+ }
+--- a/fs/nfsd/nfs3xdr.c
++++ b/fs/nfsd/nfs3xdr.c
+@@ -146,7 +146,7 @@ static __be32 *encode_fsid(__be32 *p, st
+ default:
+ case FSIDSOURCE_DEV:
+ p = xdr_encode_hyper(p, (u64)huge_encode_dev
+- (d_inode(fhp->fh_dentry)->i_sb->s_dev));
++ (inode_get_dev(d_inode(fhp->fh_dentry))));
+ break;
+ case FSIDSOURCE_FSID:
+ p = xdr_encode_hyper(p, (u64) fhp->fh_export->ex_fsid);
+--- a/fs/nfsd/vfs.c
++++ b/fs/nfsd/vfs.c
+@@ -892,7 +892,7 @@ static int wait_for_concurrent_writes(st
+ int err = 0;
+
+ if (atomic_read(&inode->i_writecount) > 1
+- || (last_ino == inode->i_ino && last_dev == inode->i_sb->s_dev)) {
++ || (last_ino == inode->i_ino && last_dev == inode_get_dev(inode))) {
+ dprintk("nfsd: write defer %d\n", task_pid_nr(current));
+ msleep(10);
+ dprintk("nfsd: write resume %d\n", task_pid_nr(current));
+@@ -903,7 +903,7 @@ static int wait_for_concurrent_writes(st
+ err = vfs_fsync(file, 0);
+ }
+ last_ino = inode->i_ino;
+- last_dev = inode->i_sb->s_dev;
++ last_dev = inode_get_dev(inode);
+ return err;
+ }
+
+--- a/fs/notify/fdinfo.c
++++ b/fs/notify/fdinfo.c
+@@ -84,7 +84,7 @@ static void inotify_fdinfo(struct seq_fi
+ inode = igrab(mark->inode);
+ if (inode) {
+ seq_printf(m, "inotify wd:%x ino:%lx sdev:%x mask:%x ignored_mask:%x ",
+- inode_mark->wd, inode->i_ino, inode->i_sb->s_dev,
++ inode_mark->wd, inode->i_ino, inode_get_dev(inode),
+ mark->mask, mark->ignored_mask);
+ show_mark_fhandle(m, inode);
+ seq_putc(m, '\n');
+@@ -117,7 +117,7 @@ static void fanotify_fdinfo(struct seq_f
+ if (!inode)
+ return;
+ seq_printf(m, "fanotify ino:%lx sdev:%x mflags:%x mask:%x ignored_mask:%x ",
+- inode->i_ino, inode->i_sb->s_dev,
++ inode->i_ino, inode_get_dev(inode),
+ mflags, mark->mask, mark->ignored_mask);
+ show_mark_fhandle(m, inode);
+ seq_putc(m, '\n');
+--- a/fs/proc/nommu.c
++++ b/fs/proc/nommu.c
+@@ -46,7 +46,7 @@ static int nommu_region_show(struct seq_
+
+ if (file) {
+ struct inode *inode = file_inode(region->vm_file);
+- dev = inode->i_sb->s_dev;
++ dev = inode_get_dev(inode);
+ ino = inode->i_ino;
+ }
+
+--- a/fs/proc/task_mmu.c
++++ b/fs/proc/task_mmu.c
+@@ -281,7 +281,7 @@ show_map_vma(struct seq_file *m, struct
+
+ if (file) {
+ struct inode *inode = file_inode(vma->vm_file);
+- dev = inode->i_sb->s_dev;
++ dev = inode_get_dev(inode);
+ ino = inode->i_ino;
+ pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
+ }
+--- a/fs/proc/task_nommu.c
++++ b/fs/proc/task_nommu.c
+@@ -161,7 +161,7 @@ static int nommu_vma_show(struct seq_fil
+
+ if (file) {
+ struct inode *inode = file_inode(vma->vm_file);
+- dev = inode->i_sb->s_dev;
++ dev = inode_get_dev(inode);
+ ino = inode->i_ino;
+ pgoff = (loff_t)vma->vm_pgoff << PAGE_SHIFT;
+ }
+--- a/fs/stat.c
++++ b/fs/stat.c
+@@ -20,7 +20,7 @@
+
+ void generic_fillattr(struct inode *inode, struct kstat *stat)
+ {
+- stat->dev = inode->i_sb->s_dev;
++ stat->dev = inode_get_dev(inode);
+ stat->ino = inode->i_ino;
+ stat->mode = inode->i_mode;
+ stat->nlink = inode->i_nlink;
+--- a/include/linux/fs.h
++++ b/include/linux/fs.h
+@@ -1728,6 +1728,7 @@ struct super_operations {
+ struct shrink_control *);
+ long (*free_cached_objects)(struct super_block *,
+ struct shrink_control *);
++ dev_t (*get_inode_dev)(const struct inode *);
+ };
+
+ /*
+@@ -3040,4 +3041,12 @@ static inline bool dir_relax(struct inod
+
+ extern bool path_noexec(const struct path *path);
+
++static inline dev_t inode_get_dev(const struct inode *inode)
++{
++ if (inode->i_sb->s_op->get_inode_dev)
++ return inode->i_sb->s_op->get_inode_dev(inode);
++
++ return inode->i_sb->s_dev;
++}
++
+ #endif /* _LINUX_FS_H */
+--- a/include/trace/events/filemap.h
++++ b/include/trace/events/filemap.h
+@@ -29,7 +29,7 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_c
+ __entry->i_ino = page->mapping->host->i_ino;
+ __entry->index = page->index;
+ if (page->mapping->host->i_sb)
+- __entry->s_dev = page->mapping->host->i_sb->s_dev;
++ __entry->s_dev = inode_get_dev(page->mapping->host);
+ else
+ __entry->s_dev = page->mapping->host->i_rdev;
+ ),
+--- a/kernel/audit.c
++++ b/kernel/audit.c
+@@ -1711,7 +1711,7 @@ void audit_copy_inode(struct audit_names
+ const struct inode *inode)
+ {
+ name->ino = inode->i_ino;
+- name->dev = inode->i_sb->s_dev;
++ name->dev = inode_get_dev(inode);
+ name->mode = inode->i_mode;
+ name->uid = inode->i_uid;
+ name->gid = inode->i_gid;
+--- a/kernel/audit_watch.c
++++ b/kernel/audit_watch.c
+@@ -367,7 +367,7 @@ static int audit_get_nd(struct audit_wat
+ mutex_unlock(&d_backing_inode(parent->dentry)->i_mutex);
+ if (d_is_positive(d)) {
+ /* update watch filter fields */
+- watch->dev = d_backing_inode(d)->i_sb->s_dev;
++ watch->dev = inode_get_dev(d_backing_inode(d));
+ watch->ino = d_backing_inode(d)->i_ino;
+ }
+ dput(d);
+@@ -495,7 +495,7 @@ static int audit_watch_handle_event(stru
+ };
+
+ if (mask & (FS_CREATE|FS_MOVED_TO) && inode)
+- audit_update_watch(parent, dname, inode->i_sb->s_dev, inode->i_ino, 0);
++ audit_update_watch(parent, dname, inode_get_dev(inode), inode->i_ino, 0);
+ else if (mask & (FS_DELETE|FS_MOVED_FROM))
+ audit_update_watch(parent, dname, AUDIT_DEV_UNSET, AUDIT_INO_UNSET, 1);
+ else if (mask & (FS_DELETE_SELF|FS_UNMOUNT|FS_MOVE_SELF))
+--- a/kernel/events/core.c
++++ b/kernel/events/core.c
+@@ -5902,7 +5902,7 @@ static void perf_event_mmap_event(struct
+ goto cpy_name;
+ }
+ inode = file_inode(vma->vm_file);
+- dev = inode->i_sb->s_dev;
++ dev = inode_get_dev(inode);
+ ino = inode->i_ino;
+ gen = inode->i_generation;
+ maj = MAJOR(dev);
+--- a/mm/memory-failure.c
++++ b/mm/memory-failure.c
+@@ -97,7 +97,7 @@ static int hwpoison_filter_dev(struct pa
+ if (mapping == NULL || mapping->host == NULL)
+ return -EINVAL;
+
+- dev = mapping->host->i_sb->s_dev;
++ dev = inode_get_dev(mapping->host);
+ if (hwpoison_filter_dev_major != ~0U &&
+ hwpoison_filter_dev_major != MAJOR(dev))
+ return -EINVAL;
+--- a/security/tomoyo/condition.c
++++ b/security/tomoyo/condition.c
+@@ -721,7 +721,7 @@ void tomoyo_get_attributes(struct tomoyo
+ stat->gid = inode->i_gid;
+ stat->ino = inode->i_ino;
+ stat->mode = inode->i_mode;
+- stat->dev = inode->i_sb->s_dev;
++ stat->dev = inode_get_dev(inode);
+ stat->rdev = inode->i_rdev;
+ obj->stat_valid[i] = true;
+ }
++++++ patches.xen.tar.bz2 ++++++
++++ 15385 lines of diff (skipped)
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:21.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:21.000000000 +0100
@@ -27,11 +27,6 @@
# DO NOT MODIFY THEM!
# Send separate patches upstream if you find a problem...
########################################################
- patches.kernel.org/patch-4.2.1
- patches.kernel.org/patch-4.2.1-2
- patches.kernel.org/patch-4.2.2-3
- patches.kernel.org/patch-4.2.3-4
- patches.kernel.org/patch-4.2.4-5
########################################################
# Build fixes that apply to the vanilla kernel too.
@@ -66,7 +61,6 @@
patches.suse/supported-flag-wildcards
patches.suse/supported-flag-external
patches.suse/genksyms-add-override-flag.diff
- patches.suse/kconfig-automate-kernel-desktop
########################################################
# Simple export additions/removals
@@ -103,7 +97,9 @@
########################################################
# x86_64/i386 biarch
########################################################
- patches.arch/x86_64-hpet-64bit-timer.patch
+ # Upstream commit c8b5db7de66b75330a96f9f1ad7376b89646c953
+ # changed this area a lot.
++needs_updating patches.arch/x86_64-hpet-64bit-timer.patch
########################################################
# x86 MCE/MCA (Machine Check Error/Architecture) extensions
@@ -163,7 +159,6 @@
patches.arch/arm64-0004-net-xgbe-Add-A0-silicon-support.patch
patches.arch/arm64-0005-arm64-dts-Add-X-Gene-reboot-driver-dts-node.patch
patches.arch/arm64-0006-arm64-Select-reboot-driver-for-X-Gene-platform.patch
- patches.arch/arm64-0007-arm64-Do-not-call-enable-PCI-resources-when-specify-.patch
patches.arch/arm64-0010-KVM-ARM-Hack-to-enable-VGIC-mapping-on-64k-PAGE_SIZE.patch
# Generic PCIe host bridge, necessary for QEMU and Seattle, upstreaming wip
@@ -175,7 +170,7 @@
+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
++mbrugger patches.arch/arm64-gpex-0009-pci-Enable-pci-host-generic-support-for-ARM64.patch
########################################################
# S/390
@@ -188,6 +183,7 @@
########################################################
patches.suse/readahead-request-tunables.patch
patches.fixes/mm-Fix-assertion-mapping-nrpages-0-in-end_writeback.patch
+ patches.suse/vfs-add-super_operations-get_inode_dev
########################################################
# IPC patches
@@ -261,9 +257,8 @@
########################################################
# btrfs
########################################################
- patches.suse/btrfs-use-correct-device-for-maps.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
+ patches.suse/btrfs-advertise-which-crc32c-implementation-is-being-used-on-mount
+ patches.suse/btrfs-provide-super_operations-get_inode_dev
########################################################
# Reiserfs Patches
@@ -323,7 +318,7 @@
patches.fixes/scsi-retry-alua-transition-in-progress
- patches.fixes/scsi-dh-queuedata-accessors
++needs_update patches.fixes/scsi-dh-queuedata-accessors
patches.drivers/megaraid-mbox-fix-SG_IO
@@ -350,13 +345,12 @@
# DRM/Video
########################################################
+jeffm patches.fixes/nouveau-fix-race-with-fence-signaling
- patches.drivers/0001-vmwgfx-Rework-device-initialization.patch
- patches.drivers/0002-drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch
patches.fixes/drm-sti-Remove-select-of-CONFI_FW_LOADER_USER_HELPER
########################################################
# video4linux
########################################################
+ patches.fixes/media-c8sectpfe-Remove-select-of-CONFIG_FW_LOADER_USER_HELPER
patches.fixes/media-media-vivid-osd-fix-info-leak-in-ioctl.patch
########################################################
@@ -368,7 +362,6 @@
# Wireless Networking
########################################################
patches.suse/b43-missing-firmware-info.patch
- patches.fixes/rtlwifi-rtl8821ae-Fix-system-lockups-on-boot.patch
########################################################
# ISDN
@@ -391,8 +384,6 @@
# USB
########################################################
- patches.drivers/0001-qmi_wwan-Add-support-for-Dell-Wireless-5809e-4G-Mode.patch
-
########################################################
# I2C
########################################################
@@ -406,7 +397,6 @@
##########################################################
# Sound
##########################################################
- patches.drivers/ALSA-hda-Fix-deadlock-at-error-in-building-PCM
patches.drivers/ALSA-hda-Disable-64bit-address-for-Creative-HDA-cont
########################################################
@@ -432,7 +422,6 @@
# device-mapper
########################################################
patches.suse/dm-emulate-blkrrpart-ioctl
- patches.fixes/dm-mpath-reattach-dh
patches.suse/dm-mpath-leastpending-path-update
+needs_update patches.suse/dm-mpath-accept-failed-paths
+needs_update patches.suse/dm-mpath-detach-existing-hardware-handler
@@ -604,6 +593,7 @@
patches.xen/xen3-patch-4.0
patches.xen/xen3-patch-4.1
patches.xen/xen3-patch-4.2
+ patches.xen/xen3-patch-4.3-rc5
# ports of other patches
patches.xen/xen3-stack-unwind
@@ -643,6 +633,7 @@
patches.xen/xen-netback-multiple-tasklets
patches.xen/xen-netback-kernel-threads
patches.xen/xen-netback-tx-queue-len
+ patches.xen/xen-netback-coalesce
patches.xen/xen-vscsi-large-requests
patches.xen/xen-cxgb3
patches.xen/xen-dcdbas
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:21.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:21.000000000 +0100
@@ -1,3 +1,3 @@
-2015-10-28 18:49:15 +0100
-GIT Revision: 0491388eeb2f409aa709a00b47cd55553bc6d41b
+2015-11-02 16:35:09 +0100
+GIT Revision: 7b374a4af8a6bf8109b917f5c839dcd85b607ec0
GIT Branch: stable
++++++ supported.conf ++++++
--- /var/tmp/diff_new_pack.RKdqmO/_old 2015-11-06 00:04:21.000000000 +0100
+++ /var/tmp/diff_new_pack.RKdqmO/_new 2015-11-06 00:04:21.000000000 +0100
@@ -262,6 +262,8 @@
+external drivers/block/viodasd # IBM legacy iSeries virtual disk
drivers/block/virtio_blk
+isa drivers/block/xd
+ drivers/block/xen-blkback/xen-blkback
++base drivers/block/xen-blkfront
drivers/bluetooth/bcm203x # Broadcom Blutonium firmware driver
drivers/bluetooth/bfusb # BlueFRITZ! USB driver
drivers/bluetooth/bluecard_cs # Bluetooth driver for the Anycom BlueCard (LSE039/LSE041)
@@ -648,6 +650,7 @@
drivers/input/misc/twl4030-pwrbutton
drivers/input/misc/uinput # User level driver support for input subsystem
drivers/input/misc/winbond-cir
++base drivers/input/misc/xen-kbdfront
drivers/input/misc/yealink
drivers/input/mouse/appletouch
drivers/input/mouse/bcm5974
@@ -1361,6 +1364,8 @@
- drivers/net/wireless/wavelan_cs
- drivers/net/wireless/ti/*
- drivers/net/wireless/wl3501_cs # Planet wl3501 wireless driver
+ drivers/net/xen-netfront
+ drivers/net/xen-netback/xen-netback
drivers/net/yellowfin # Packet Engines Yellowfin G-NIC Gigabit Ethernet driver
+isa drivers/net/znet
drivers/parport/parport
@@ -1381,6 +1386,7 @@
drivers/pci/hotplug/shpchp # Standard Hot Plug PCI Controller Driver
drivers/pci/pci-iomul # PCI I/O port multiplexer interface
drivers/pci/pcie/aer/aer_inject # fate #306815
+ drivers/pci/xen-pcifront
drivers/pcmcia/i82092
+isa drivers/pcmcia/i82365
drivers/pcmcia/pcmcia
@@ -1575,13 +1581,7 @@
+isa drivers/scsi/wd7000
drivers/scsi/virtio_scsi
drivers/scsi/vmw_pvscsi
- drivers/serial/8250
- drivers/serial/8250_accent
- drivers/serial/8250_boca
- drivers/serial/8250_exar_st16c554
- drivers/serial/8250_fourport
- drivers/serial/8250_hub6
- drivers/serial/8250_pci
+ drivers/scsi/xen-scsifront
drivers/serial/icom
drivers/serial/ioc3_serial
drivers/serial/ioc4_serial
@@ -1613,6 +1613,14 @@
drivers/target/iscsi/iscsi_target_mod
- drivers/telephony/*
drivers/thermal/thermal_sys # Generic thermal zone interface
+ drivers/tty/serial/8250
+ drivers/tty/serial/8250_accent
+ drivers/tty/serial/8250_base
+ drivers/tty/serial/8250_boca
+ drivers/tty/serial/8250_exar_st16c554
+ drivers/tty/serial/8250_fourport
+ drivers/tty/serial/8250_hub6
+ drivers/tty/serial/8250_pci
drivers/uio/uio
drivers/uio/uio_aec
drivers/uio/uio_cif
@@ -1649,6 +1657,7 @@
+base drivers/usb/host/uhci-hcd # USB Universal Host Controller Interface driver
- drivers/usb/host/whci/whci-hcd
+base drivers/usb/host/xhci-hcd
++base drivers/usb/host/xhci-pci
drivers/usb/image/mdc800 # USB Driver for Mustek MDC800 Digital Camera
drivers/usb/image/microtek # Microtek Scanmaker X6 USB scanner driver
drivers/usb/misc/adutux
@@ -1767,6 +1776,7 @@
drivers/video/cyber2000fb # CyberPro 2000, 2010 and 5000 framebuffer driver
drivers/video/cyblafb # Frame buffer driver for Trident Cyberblade/i1 graphics core
drivers/video/display/display
++base drivers/video/fbdev/xen-fbfront
drivers/video/fb_ddc
drivers/video/fb_sys_fops
drivers/video/geode/gx1fb # Geode framebuffer driver
@@ -1876,7 +1886,15 @@
drivers/xen/tpmback/tpmbk # Xen TPM device backend
drivers/xen/usbback/usbbk
drivers/xen/usbfront/xen-hcd
+ drivers/xen/xen-acpi-processor
+ drivers/xen/xen-evtchn
+ drivers/xen/xen-gntalloc
+ drivers/xen/xen-gntdev
+ drivers/xen/xen-pciback/xen-pciback # Xen PCI device backend
+ drivers/xen/xen-privcmd
+ drivers/xen/xen-scsiback
drivers/xen/xenbus/xenbus_be # Xen XenBus backend driver support module
+ drivers/xen/xenfs/xenfs
fs/9p/9p
- fs/adfs/adfs
- fs/affs/affs # Amiga filesystem support for Linux