Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2015-01-22 21:46:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 2014-12-23 11:50:12.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/kernel-debug.changes 2015-01-22 21:46:10.000000000 +0100
@@ -1,0 +2,64 @@
+Mon Jan 19 13:38:51 CET 2015 - jslaby@suse.cz
+
+- Update patches.kernel.org/patch-3.18.1-2 (CVE-2014-8133
+ bnc#906545 bnc#908163 bsc#909077).
+ Add one more reference.
+- commit c3e148f
+
+-------------------------------------------------------------------
+Sat Jan 17 00:24:44 CET 2015 - jslaby@suse.cz
+
+- Linux 3.18.3 (bnc#908794).
+- Delete
+ patches.fixes/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging.
+- commit 390047f
+
+-------------------------------------------------------------------
+Wed Jan 14 20:16:14 CET 2015 - agraf@suse.de
+
+- Refresh patches.arch/arm64-0039-generic-pci.patch (fix PCI bridge support)
+- commit 88366a3
+
+-------------------------------------------------------------------
+Fri Jan 9 11:08:54 CET 2015 - jslaby@suse.cz
+
+- Linux 3.18.2 (CVE-2014-8133 bnc#908163 bsc#909077).
+- Delete
+ patches.fixes/KEYS-Fix-stale-key-registration-at-error-path.
+- Delete
+ patches.fixes/x86-tls-validate-tls-entries-to-protect-espfix.patch.
+- commit a393f37
+
+-------------------------------------------------------------------
+Thu Jan 8 20:35:25 CET 2015 - tiwai@suse.de
+
+- Bluetooth: Add support for Broadcom BCM20702A0 variants firmware
+ download (bnc#911311).
+- commit 15c2753
+
+-------------------------------------------------------------------
+Thu Jan 8 14:50:46 CET 2015 - tiwai@suse.de
+
+- drm/radeon: fix sad_count check for dce3 (bnc#911356).
+- commit d0f80d0
+
+-------------------------------------------------------------------
+Tue Jan 6 17:46:41 CET 2015 - tiwai@suse.de
+
+- drm/i915: Don't call intel_prepare_page_flip() multiple times
+ on gen2-4 (bnc#911835).
+- commit 946a5ed
+
+-------------------------------------------------------------------
+Tue Jan 6 01:59:19 CET 2015 - agraf@suse.de
+
+- arm64: Enable DRM
+- commit c00a333
+
+-------------------------------------------------------------------
+Mon Jan 5 21:08:40 CET 2015 - agraf@suse.de
+
+- arm64: Enable generic PHB driver (bnc#912061).
+- commit 5452184
+
+-------------------------------------------------------------------
@@ -13,0 +78,7 @@
+
+-------------------------------------------------------------------
+Tue Dec 16 14:12:25 CET 2014 - tiwai@suse.de
+
+- parport: parport_pc, do not remove parent devices early
+ (bnc#856659).
+- commit 161f750
kernel-default.changes: same change
kernel-desktop.changes: same change
kernel-docs.changes: same change
kernel-ec2.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa-xen.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-vanilla.changes: same change
kernel-xen.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kernel-debug.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-debug
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
# needssslcertforbuild
%define srcversion 3.18
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: A Debug Version of the Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
kernel-default.spec: same change
kernel-desktop.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-docs
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -16,7 +16,7 @@
#
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%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: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
++++++ kernel-ec2.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-ec2
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
# needssslcertforbuild
%define srcversion 3.18
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: The Amazon EC2 Xen Kernel
License: GPL-2.0
Group: System/Kernel
-Version: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
kernel-lpae.spec: same change
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-obs-build
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%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: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
++++++ kernel-obs-qa-xen.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-obs-qa
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
# needsrootforbuild
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%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: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
++++++ kernel-obs-qa.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-obs-qa
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
# needsrootforbuild
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%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: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-pae
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
# needssslcertforbuild
%define srcversion 3.18
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: Kernel with PAE Support
License: GPL-2.0
Group: System/Kernel
-Version: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-source
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
%define srcversion 3.18
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%define variant %{nil}
%define vanilla_only 0
@@ -30,9 +30,9 @@
Summary: The Linux Kernel Sources
License: GPL-2.0
Group: Development/Sources
-Version: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-syms
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,10 +24,10 @@
Summary: Kernel Symbol Versions (modversions)
License: GPL-2.0
Group: Development/Sources
-Version: 3.18.1
+Version: 3.18.3
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
++++++ kernel-vanilla.spec ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:22.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:22.000000000 +0100
@@ -1,7 +1,7 @@
#
# spec file for package kernel-vanilla
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -20,7 +20,7 @@
# needssslcertforbuild
%define srcversion 3.18
-%define patchversion 3.18.1
+%define patchversion 3.18.3
%define variant %{nil}
%define vanilla_only 0
@@ -59,9 +59,9 @@
Summary: The Standard Kernel - without any SUSE patches
License: GPL-2.0
Group: System/Kernel
-Version: 3.18.1
+Version: 3.18.3
%if 0%{?is_kotd}
-Release: <RELEASE>.g5f2f35e
+Release: <RELEASE>.gc3e148f
%else
Release: 0
%endif
kernel-xen.spec: same change
++++++ config.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/config/arm64/default new/config/arm64/default
--- old/config/arm64/default 2014-12-09 03:22:34.000000000 +0100
+++ new/config/arm64/default 2015-01-07 15:38:57.000000000 +0100
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
-# Linux/arm64 3.18.0 Kernel Configuration
+# Linux/arm64 3.18.1 Kernel Configuration
#
CONFIG_ARM64=y
CONFIG_64BIT=y
@@ -328,6 +328,7 @@
#
# PCI host controller drivers
#
+CONFIG_PCI_HOST_GENERIC=y
CONFIG_PCI_XGENE=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
@@ -3986,7 +3987,37 @@
#
# Direct Rendering Manager
#
-# CONFIG_DRM is not set
+CONFIG_DRM=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_KMS_FB_HELPER=y
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
+CONFIG_DRM_TTM=m
+
+#
+# I2C encoder or helper chips
+#
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I2C_SIL164=m
+# CONFIG_DRM_I2C_NXP_TDA998X is not set
+# CONFIG_DRM_PTN3460 is not set
+# CONFIG_DRM_TDFX is not set
+# CONFIG_DRM_R128 is not set
+CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_UMS is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_NOUVEAU_DEBUG=5
+CONFIG_NOUVEAU_DEBUG_DEFAULT=3
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_MGA=m
+# CONFIG_DRM_VIA is not set
+# CONFIG_DRM_SAVAGE is not set
+# CONFIG_DRM_VMWGFX is not set
+CONFIG_DRM_UDL=m
+CONFIG_DRM_AST=m
+CONFIG_DRM_MGAG200=m
+CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_QXL=m
+CONFIG_DRM_BOCHS=m
#
# Frame buffer Devices
@@ -4008,7 +4039,7 @@
CONFIG_FB_DEFERRED_IO=y
# CONFIG_FB_SVGALIB is not set
# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
+CONFIG_FB_BACKLIGHT=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
@@ -4079,6 +4110,7 @@
# CONFIG_BACKLIGHT_LV5207LP is not set
# CONFIG_BACKLIGHT_BD6107 is not set
# CONFIG_VGASTATE is not set
+CONFIG_HDMI=y
#
# Console display driver support
@@ -6076,6 +6108,7 @@
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_BTREE=y
+CONFIG_INTERVAL_TREE=y
CONFIG_ASSOCIATIVE_ARRAY=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT_MAP=y
++++++ patches.arch.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.arch/arm64-0039-generic-pci.patch new/patches.arch/arm64-0039-generic-pci.patch
--- old/patches.arch/arm64-0039-generic-pci.patch 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.arch/arm64-0039-generic-pci.patch 2015-01-14 20:16:14.000000000 +0100
@@ -0,0 +1,338 @@
+From: Alexander Graf
+Patch-mainline: No
+Subject: [PATCH] arm64: Enable generic PHB driver
+References: bnc#912061
+
+ARM64 doesn't enable the generic PHB driver which would work just fine. Enable it in a local patch for now. Discussions on how to do it best upstream are ongoing.
+
+Signed-off-by: Alexander Graf
+
+---
+
+If someone ever needs to merge this patch with a newer kernel, please just drop
+it and use the one from the newer tree.
+
+Index: linux-3.18-stable/drivers/pci/host/Kconfig
+===================================================================
+--- linux-3.18-stable.orig/drivers/pci/host/Kconfig
++++ linux-3.18-stable/drivers/pci/host/Kconfig
+@@ -50,7 +50,7 @@ config PCI_RCAR_GEN2_PCIE
+
+ config PCI_HOST_GENERIC
+ bool "Generic PCI host controller"
+- depends on ARM && OF
++ depends on (ARM || ARM64) && OF
+ help
+ Say Y here if you want to support a simple generic PCI host
+ controller, such as the one emulated by kvmtool.
+Index: linux-3.18-stable/drivers/pci/host/pci-host-generic.c
+===================================================================
+--- linux-3.18-stable.orig/drivers/pci/host/pci-host-generic.c
++++ linux-3.18-stable/drivers/pci/host/pci-host-generic.c
+@@ -44,12 +44,29 @@ struct gen_pci {
+ struct list_head resources;
+ };
+
++/* fake sysdata for cheating ARCH's pcibios code */
++static char gen_sysdata[256];
++
++static struct gen_pci *gen_pci_get_drvdata(struct pci_bus *bus)
++{
++ struct device *dev = bus->dev.parent->parent;
++ struct gen_pci *pci;
++
++ while (dev) {
++ pci = dev_get_drvdata(dev);
++ if (pci)
++ return pci;
++ dev = dev->parent;
++ }
++
++ return NULL;
++}
++
+ static void __iomem *gen_pci_map_cfg_bus_cam(struct pci_bus *bus,
+ unsigned int devfn,
+ int where)
+ {
+- struct pci_sys_data *sys = bus->sysdata;
+- struct gen_pci *pci = sys->private_data;
++ struct gen_pci *pci = gen_pci_get_drvdata(bus);
+ resource_size_t idx = bus->number - pci->cfg.bus_range.start;
+
+ return pci->cfg.win[idx] + ((devfn << 8) | where);
+@@ -64,8 +81,7 @@ static void __iomem *gen_pci_map_cfg_bus
+ unsigned int devfn,
+ int where)
+ {
+- struct pci_sys_data *sys = bus->sysdata;
+- struct gen_pci *pci = sys->private_data;
++ struct gen_pci *pci = gen_pci_get_drvdata(bus);
+ resource_size_t idx = bus->number - pci->cfg.bus_range.start;
+
+ return pci->cfg.win[idx] + ((devfn << 12) | where);
+@@ -80,8 +96,11 @@ static int gen_pci_config_read(struct pc
+ int where, int size, u32 *val)
+ {
+ void __iomem *addr;
+- struct pci_sys_data *sys = bus->sysdata;
+- struct gen_pci *pci = sys->private_data;
++ struct gen_pci *pci = gen_pci_get_drvdata(bus);
++
++ WARN_ON(!pci);
++ if (!pci)
++ return PCIBIOS_DEVICE_NOT_FOUND;
+
+ addr = pci->cfg.ops->map_bus(bus, devfn, where);
+
+@@ -103,8 +122,11 @@ static int gen_pci_config_write(struct p
+ int where, int size, u32 val)
+ {
+ void __iomem *addr;
+- struct pci_sys_data *sys = bus->sysdata;
+- struct gen_pci *pci = sys->private_data;
++ struct gen_pci *pci = gen_pci_get_drvdata(bus);
++
++ WARN_ON(!pci);
++ if (!pci)
++ return PCIBIOS_DEVICE_NOT_FOUND;
+
+ addr = pci->cfg.ops->map_bus(bus, devfn, where);
+
+@@ -138,45 +160,6 @@ static const struct of_device_id gen_pci
+ };
+ MODULE_DEVICE_TABLE(of, gen_pci_of_match);
+
+-static int gen_pci_calc_io_offset(struct device *dev,
+- struct of_pci_range *range,
+- struct resource *res,
+- resource_size_t *offset)
+-{
+- static atomic_t wins = ATOMIC_INIT(0);
+- int err, idx, max_win;
+- unsigned int window;
+-
+- if (!PAGE_ALIGNED(range->cpu_addr))
+- return -EINVAL;
+-
+- max_win = (IO_SPACE_LIMIT + 1) / SZ_64K;
+- idx = atomic_inc_return(&wins);
+- if (idx > max_win)
+- return -ENOSPC;
+-
+- window = (idx - 1) * SZ_64K;
+- err = pci_ioremap_io(window, range->cpu_addr);
+- if (err)
+- return err;
+-
+- of_pci_range_to_resource(range, dev->of_node, res);
+- res->start = window;
+- res->end = res->start + range->size - 1;
+- *offset = window - range->pci_addr;
+- return 0;
+-}
+-
+-static int gen_pci_calc_mem_offset(struct device *dev,
+- struct of_pci_range *range,
+- struct resource *res,
+- resource_size_t *offset)
+-{
+- of_pci_range_to_resource(range, dev->of_node, res);
+- *offset = range->cpu_addr - range->pci_addr;
+- return 0;
+-}
+-
+ static void gen_pci_release_of_pci_ranges(struct gen_pci *pci)
+ {
+ struct pci_host_bridge_window *win;
+@@ -187,72 +170,6 @@ static void gen_pci_release_of_pci_range
+ pci_free_resource_list(&pci->resources);
+ }
+
+-static int gen_pci_parse_request_of_pci_ranges(struct gen_pci *pci)
+-{
+- struct of_pci_range range;
+- struct of_pci_range_parser parser;
+- int err, res_valid = 0;
+- struct device *dev = pci->host.dev.parent;
+- struct device_node *np = dev->of_node;
+-
+- if (of_pci_range_parser_init(&parser, np)) {
+- dev_err(dev, "missing \"ranges\" property\n");
+- return -EINVAL;
+- }
+-
+- for_each_of_pci_range(&parser, &range) {
+- struct resource *parent, *res;
+- resource_size_t offset;
+- u32 restype = range.flags & IORESOURCE_TYPE_BITS;
+-
+- res = devm_kmalloc(dev, sizeof(*res), GFP_KERNEL);
+- if (!res) {
+- err = -ENOMEM;
+- goto out_release_res;
+- }
+-
+- switch (restype) {
+- case IORESOURCE_IO:
+- parent = &ioport_resource;
+- err = gen_pci_calc_io_offset(dev, &range, res, &offset);
+- break;
+- case IORESOURCE_MEM:
+- parent = &iomem_resource;
+- err = gen_pci_calc_mem_offset(dev, &range, res, &offset);
+- res_valid |= !(res->flags & IORESOURCE_PREFETCH || err);
+- break;
+- default:
+- err = -EINVAL;
+- continue;
+- }
+-
+- if (err) {
+- dev_warn(dev,
+- "error %d: failed to add resource [type 0x%x, %lld bytes]\n",
+- err, restype, range.size);
+- continue;
+- }
+-
+- err = request_resource(parent, res);
+- if (err)
+- goto out_release_res;
+-
+- pci_add_resource_offset(&pci->resources, res, offset);
+- }
+-
+- if (!res_valid) {
+- dev_err(dev, "non-prefetchable memory resource required\n");
+- err = -EINVAL;
+- goto out_release_res;
+- }
+-
+- return 0;
+-
+-out_release_res:
+- gen_pci_release_of_pci_ranges(pci);
+- return err;
+-}
+-
+ static int gen_pci_parse_map_cfg_windows(struct gen_pci *pci)
+ {
+ int err;
+@@ -305,16 +222,33 @@ static int gen_pci_parse_map_cfg_windows
+ return -ENOMEM;
+ }
+
+- /* Register bus resource */
+- pci_add_resource(&pci->resources, bus_range);
+ return 0;
+ }
+
+-static int gen_pci_setup(int nr, struct pci_sys_data *sys)
++static int gen_pci_map_ranges(struct list_head *res,
++ resource_size_t io_base)
+ {
+- struct gen_pci *pci = sys->private_data;
+- list_splice_init(&pci->resources, &sys->resources);
+- return 1;
++ struct pci_host_bridge_window *window;
++ int ret;
++
++ list_for_each_entry(window, res, list) {
++ struct resource *res = window->res;
++ u64 restype = resource_type(res);
++
++ switch (restype) {
++ case IORESOURCE_IO:
++ ret = pci_remap_iospace(res, io_base);
++ if (ret < 0)
++ return ret;
++ break;
++ case IORESOURCE_MEM:
++ case IORESOURCE_BUS:
++ break;
++ default:
++ return -EINVAL;
++ }
++ }
++ return 0;
+ }
+
+ static int gen_pci_probe(struct platform_device *pdev)
+@@ -325,14 +259,11 @@ static int gen_pci_probe(struct platform
+ const int *prop;
+ struct device *dev = &pdev->dev;
+ struct device_node *np = dev->of_node;
++ resource_size_t iobase = 0;
+ struct gen_pci *pci = devm_kzalloc(dev, sizeof(*pci), GFP_KERNEL);
+- struct hw_pci hw = {
+- .nr_controllers = 1,
+- .private_data = (void **)&pci,
+- .setup = gen_pci_setup,
+- .map_irq = of_irq_parse_and_map_pci,
+- .ops = &gen_pci_ops,
+- };
++ struct pci_bus *bus;
++ struct pci_dev *pci_dev = NULL;
++ bool probe_only = false;
+
+ if (!pci)
+ return -ENOMEM;
+@@ -346,9 +277,9 @@ static int gen_pci_probe(struct platform
+ prop = of_get_property(of_chosen, "linux,pci-probe-only", NULL);
+ if (prop) {
+ if (*prop)
+- pci_add_flags(PCI_PROBE_ONLY);
++ probe_only = true;
+ else
+- pci_clear_flags(PCI_PROBE_ONLY);
++ probe_only = false;
+ }
+
+ of_id = of_match_node(gen_pci_of_match, np);
+@@ -357,20 +288,40 @@ static int gen_pci_probe(struct platform
+ INIT_LIST_HEAD(&pci->host.windows);
+ INIT_LIST_HEAD(&pci->resources);
+
+- /* Parse our PCI ranges and request their resources */
+- err = gen_pci_parse_request_of_pci_ranges(pci);
++ err = of_pci_get_host_bridge_resources(np, 0, 0xff,
++ &pci->resources, &iobase);
+ if (err)
+ return err;
+
+ /* Parse and map our Configuration Space windows */
+ err = gen_pci_parse_map_cfg_windows(pci);
+- if (err) {
+- gen_pci_release_of_pci_ranges(pci);
+- return err;
++ if (err)
++ goto fail;
++
++ err = gen_pci_map_ranges(&pci->resources, iobase);
++ if (err)
++ goto fail;
++
++ err = -ENOMEM;
++ platform_set_drvdata(pdev, pci);
++ bus = pci_scan_root_bus(dev, 0, &gen_pci_ops, gen_sysdata,
++ &pci->resources);
++ if (!bus)
++ goto fail;
++
++ for_each_pci_dev(pci_dev)
++ pci_dev->irq = of_irq_parse_and_map_pci(pci_dev, 0, 0);
++
++ if (!probe_only) {
++ pci_bus_size_bridges(bus);
++ pci_bus_assign_resources(bus);
++ pci_bus_add_devices(bus);
+ }
+
+- pci_common_init_dev(dev, &hw);
+ return 0;
++ fail:
++ gen_pci_release_of_pci_ranges(pci);
++ return err;
+ }
+
+ static struct platform_driver gen_pci_driver = {
++++++ patches.drivers.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/Bluetooth-Add-support-for-Broadcom-BCM20702A0-varian new/patches.drivers/Bluetooth-Add-support-for-Broadcom-BCM20702A0-varian
--- old/patches.drivers/Bluetooth-Add-support-for-Broadcom-BCM20702A0-varian 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/Bluetooth-Add-support-for-Broadcom-BCM20702A0-varian 2015-01-08 20:35:25.000000000 +0100
@@ -0,0 +1,87 @@
+From 6029ddc2333ae37f637d44beef3a1480cbbb33b9 Mon Sep 17 00:00:00 2001
+From: Heinrich Siebmanns
+Date: Wed, 3 Dec 2014 19:32:22 +0100
+Subject: [PATCH] Bluetooth: Add support for Broadcom BCM20702A0 variants firmware download
+Git-commit: 6029ddc2333ae37f637d44beef3a1480cbbb33b9
+Patch-mainline: 3.19-rc1
+References: bnc#911311
+
+This requires the flag BTUSB_BCM_PATCHRAM to work.
+
+Relevant details from /sys/kernel/debug/usb/devices for my device:
+
+T: Bus=03 Lev=02 Prnt=02 Port=03 Cnt=02 Dev#= 4 Spd=12 MxCh= 0
+D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
+P: Vendor=0489 ProdID=e031 Rev= 1.12
+S: Manufacturer=Broadcom Corp
+S: Product=BCM20702A0
+S: SerialNumber=3859F9CD2AEE
+C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr= 0mA
+I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
+E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=1ms
+E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
+E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
+I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
+E: Ad=83(I) Atr=01(Isoc) MxPS= 0 Ivl=1ms
+E: Ad=03(O) Atr=01(Isoc) MxPS= 0 Ivl=1ms
+I: If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
+E: Ad=83(I) Atr=01(Isoc) MxPS= 9 Ivl=1ms
+E: Ad=03(O) Atr=01(Isoc) MxPS= 9 Ivl=1ms
+I: If#= 1 Alt= 2 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
+E: Ad=83(I) Atr=01(Isoc) MxPS= 17 Ivl=1ms
+E: Ad=03(O) Atr=01(Isoc) MxPS= 17 Ivl=1ms
+I: If#= 1 Alt= 3 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
+E: Ad=83(I) Atr=01(Isoc) MxPS= 25 Ivl=1ms
+E: Ad=03(O) Atr=01(Isoc) MxPS= 25 Ivl=1ms
+I: If#= 1 Alt= 4 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
+E: Ad=83(I) Atr=01(Isoc) MxPS= 33 Ivl=1ms
+E: Ad=03(O) Atr=01(Isoc) MxPS= 33 Ivl=1ms
+I: If#= 1 Alt= 5 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
+E: Ad=83(I) Atr=01(Isoc) MxPS= 49 Ivl=1ms
+E: Ad=03(O) Atr=01(Isoc) MxPS= 49 Ivl=1ms
+I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
+E: Ad=84(I) Atr=02(Bulk) MxPS= 32 Ivl=0ms
+E: Ad=04(O) Atr=02(Bulk) MxPS= 32 Ivl=0ms
+I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
+
+The firmware was extracted from a Windows 7 32-bit installation
+and converted from 'hex' to 'hcd' for use in Linux.
+
+The firmware is named "BCM20702A0_001.001.024.0156.0204.hex"
+and is located in "%SYSTEMROOT%\system32\drivers\"
+(md5 d126e6c4e0e669d76c38cf9377f76b7f)
+(sha1 145d1850b2785a953233b409e7ff77786927c7d2)
+
+The firmware file is also available as a download at
+http://support.ts.fujitsu.com/Download/
+contained in "FTS_WIDCOMMBluetoothSoftware_6309000_1072149.zip"
+
+Search for the file Win32/bcbtums-win7x86-brcm.inf in the archive,
+look for the vendor and product ID of your adapter, see the section
+'devices' in that file to find out what device name it uses. See
+the device entry in the inf file (in my case it was 'RAMUSBE031')
+to find out which hex file you need to convert to hcd for upload
+
+'hcd' file should be placed at "brcm/BCM20702A0-0489-e031.hcd"
+inside the firmware directory (e.g. "/lib/firmware")
+
+Signed-off-by: Heinrich Siebmanns
+Signed-off-by: Marcel Holtmann
+Acked-by: Takashi Iwai
+
+---
+ drivers/bluetooth/btusb.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/bluetooth/btusb.c
++++ b/drivers/bluetooth/btusb.c
+@@ -108,7 +108,8 @@ static const struct usb_device_id btusb_
+ { USB_DEVICE(0x413c, 0x8197) },
+
+ /* Foxconn - Hon Hai */
+- { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01) },
++ { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01),
++ .driver_info = BTUSB_BCM_PATCHRAM },
+
+ /* Broadcom devices with vendor specific id */
+ { USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/drm-i915-Don-t-call-intel_prepare_page_flip-multiple new/patches.drivers/drm-i915-Don-t-call-intel_prepare_page_flip-multiple
--- old/patches.drivers/drm-i915-Don-t-call-intel_prepare_page_flip-multiple 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/drm-i915-Don-t-call-intel_prepare_page_flip-multiple 2015-01-08 20:35:25.000000000 +0100
@@ -0,0 +1,85 @@
+From 7d47559ee84b3ac206aa9e675606fafcd7c0b500 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?=
+Date: Wed, 17 Dec 2014 23:08:03 +0200
+Subject: [PATCH] drm/i915: Don't call intel_prepare_page_flip() multiple times on gen2-4
+Mime-version: 1.0
+Content-type: text/plain; charset=UTF-8
+Content-transfer-encoding: 8bit
+Git-commit: 7d47559ee84b3ac206aa9e675606fafcd7c0b500
+Git-repo: linux-next
+Patch-mainline: to be 3.19-rc4
+References: bnc#911835
+
+The flip stall detector kicks in when pending>=INTEL_FLIP_COMPLETE. That
+means if we first call intel_prepare_page_flip() but don't call
+intel_finish_page_flip(), the next stall check will erroneosly think
+the page flip was somehow stuck.
+
+With enough debug spew emitted from the interrupt handler my 830 hangs
+when this happens. My theory is that the previous vblank interrupt gets
+sufficiently delayed that the handler will see the pending bit set in
+IIR, but ISR still has the bit set as well (ie. the flip was processed
+by CS but didn't complete yet). In this case the handler will proceed
+to call intel_check_page_flip() immediately after
+intel_prepare_page_flip(). It then tries to print a backtrace for the
+stuck flip WARN, which apparetly results in way too much debug spew
+delaying interrupt processing further. That then seems to cause an
+endless loop in the interrupt handler, and the machine is dead until
+the watchdog kicks in and reboots. At least limiting the number of
+iterations of the loop in the interrupt handler also prevented the
+hang.
+
+So it seems better to not call intel_prepare_page_flip() without
+immediately calling intel_finish_page_flip(). The IIR/ISR trickery
+avoids races here so this is a perfectly safe thing to do.
+
+V2: Fix typo in commit message (checkpatch)
+
+Cc: stable@vger.kernel.org
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=88381
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=85888
+Reviewed-by: Chris Wilson
+Signed-off-by: Ville Syrjälä
+Signed-off-by: Jani Nikula
+Acked-by: Takashi Iwai
+
+---
+ drivers/gpu/drm/i915/i915_irq.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/drm/i915/i915_irq.c
++++ b/drivers/gpu/drm/i915/i915_irq.c
+@@ -4022,8 +4022,6 @@ static bool i8xx_handle_vblank(struct dr
+ if ((iir & flip_pending) == 0)
+ goto check_page_flip;
+
+- intel_prepare_page_flip(dev, plane);
+-
+ /* We detect FlipDone by looking for the change in PendingFlip from '1'
+ * to '0' on the following vblank, i.e. IIR has the Pendingflip
+ * asserted following the MI_DISPLAY_FLIP, but ISR is deasserted, hence
+@@ -4033,6 +4031,7 @@ static bool i8xx_handle_vblank(struct dr
+ if (I915_READ16(ISR) & flip_pending)
+ goto check_page_flip;
+
++ intel_prepare_page_flip(dev, plane);
+ intel_finish_page_flip(dev, pipe);
+ return true;
+
+@@ -4210,8 +4209,6 @@ static bool i915_handle_vblank(struct dr
+ if ((iir & flip_pending) == 0)
+ goto check_page_flip;
+
+- intel_prepare_page_flip(dev, plane);
+-
+ /* We detect FlipDone by looking for the change in PendingFlip from '1'
+ * to '0' on the following vblank, i.e. IIR has the Pendingflip
+ * asserted following the MI_DISPLAY_FLIP, but ISR is deasserted, hence
+@@ -4221,6 +4218,7 @@ static bool i915_handle_vblank(struct dr
+ if (I915_READ(ISR) & flip_pending)
+ goto check_page_flip;
+
++ intel_prepare_page_flip(dev, plane);
+ intel_finish_page_flip(dev, pipe);
+ return true;
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/drm-radeon-fix-sad_count-check-for-dce3 new/patches.drivers/drm-radeon-fix-sad_count-check-for-dce3
--- old/patches.drivers/drm-radeon-fix-sad_count-check-for-dce3 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/drm-radeon-fix-sad_count-check-for-dce3 2015-01-08 20:35:25.000000000 +0100
@@ -0,0 +1,34 @@
+From 5665c3ebe5ee8a2c516925461f7214ba59c2e6d7 Mon Sep 17 00:00:00 2001
+From: Alex Deucher
+Date: Tue, 9 Dec 2014 10:04:01 -0500
+Subject: [PATCH] drm/radeon: fix sad_count check for dce3
+Git-commit: 5665c3ebe5ee8a2c516925461f7214ba59c2e6d7
+Git-repo: git://people.freedesktop.org/~agd5f/linux
+Patch-mainline: Submitted
+References: bnc#911356
+
+Make it consistent with the sad code for other asics to deal
+with monitors that don't report sads.
+
+Bug:
+https://bugzilla.kernel.org/show_bug.cgi?id=89461
+
+Signed-off-by: Alex Deucher
+Cc: stable@vger.kernel.org
+Acked-by: Takashi Iwai
+
+---
+ drivers/gpu/drm/radeon/dce3_1_afmt.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/radeon/dce3_1_afmt.c
++++ b/drivers/gpu/drm/radeon/dce3_1_afmt.c
+@@ -103,7 +103,7 @@ static void dce3_2_afmt_write_sad_regs(s
+ }
+
+ sad_count = drm_edid_to_sad(radeon_connector->edid, &sads);
+- if (sad_count < 0) {
++ if (sad_count <= 0) {
+ DRM_ERROR("Couldn't read SADs: %d\n", sad_count);
+ return;
+ }
++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/KEYS-Fix-stale-key-registration-at-error-path new/patches.fixes/KEYS-Fix-stale-key-registration-at-error-path
--- old/patches.fixes/KEYS-Fix-stale-key-registration-at-error-path 2014-12-17 19:20:30.000000000 +0100
+++ new/patches.fixes/KEYS-Fix-stale-key-registration-at-error-path 1970-01-01 01:00:00.000000000 +0100
@@ -1,42 +0,0 @@
-From: Takashi Iwai
-Date: Thu, 4 Dec 2014 17:21:17 +0100
-Subject: [PATCH] KEYS: Fix stale key registration at error path
-Patch-mainline: Submitted
-References: bnc#908163
-
-When loading encrypted-keys module, if the last check of
-aes_get_sizes() in init_encrypted() fails, the driver just returns an
-error without unregistering its key type. This results in the stale
-entry in the list. In addition to memory leaks, this leads to a kernel
-crash when registering a new key type later.
-
-This patch fixes the problem by swapping the calls of aes_get_sizes()
-and register_key_type(), and releasing resources properly at the error
-paths.
-
-Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=908163
-Cc:
-Signed-off-by: Takashi Iwai
-Signed-off-by: Mimi Zohar
-
----
- security/keys/encrypted-keys/encrypted.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
---- a/security/keys/encrypted-keys/encrypted.c
-+++ b/security/keys/encrypted-keys/encrypted.c
-@@ -1018,10 +1018,13 @@ static int __init init_encrypted(void)
- ret = encrypted_shash_alloc();
- if (ret < 0)
- return ret;
-+ ret = aes_get_sizes();
-+ if (ret < 0)
-+ goto out;
- ret = register_key_type(&key_type_encrypted);
- if (ret < 0)
- goto out;
-- return aes_get_sizes();
-+ return 0;
- out:
- encrypted_shash_release();
- return ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging new/patches.fixes/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging
--- old/patches.fixes/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging 2014-12-17 19:20:30.000000000 +0100
+++ new/patches.fixes/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging 1970-01-01 01:00:00.000000000 +0100
@@ -1,79 +0,0 @@
-From 06a41a99d13d8e919e9a00a4849e6b85ae492592 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai
-Date: Wed, 10 Dec 2014 16:38:30 +0100
-Subject: [PATCH] blk-mq: Fix uninitialized kobject at CPU hotplugging
-Git-commit: 06a41a99d13d8e919e9a00a4849e6b85ae492592
-Patch-mainline: 3.19-rc1
-References: bnc#908794
-
-When a CPU is hotplugged, the current blk-mq spews a warning like:
-
- kobject '(null)' (ffffe8ffffc8b5d8): tried to add an uninitialized object, something is seriously wrong.
- CPU: 1 PID: 1386 Comm: systemd-udevd Not tainted 3.18.0-rc7-2.g088d59b-default #1
- Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_171129-lamiak 04/01/2014
- 0000000000000000 0000000000000002 ffffffff81605f07 ffffe8ffffc8b5d8
- ffffffff8132c7a0 ffff88023341d370 0000000000000020 ffff8800bb05bd58
- ffff8800bb05bd08 000000000000a0a0 000000003f441940 0000000000000007
- Call Trace:
- [<ffffffff81005306>] dump_trace+0x86/0x330
- [<ffffffff81005644>] show_stack_log_lvl+0x94/0x170
- [<ffffffff81006d21>] show_stack+0x21/0x50
- [<ffffffff81605f07>] dump_stack+0x41/0x51
- [<ffffffff8132c7a0>] kobject_add+0xa0/0xb0
- [<ffffffff8130aee1>] blk_mq_register_hctx+0x91/0xb0
- [<ffffffff8130b82e>] blk_mq_sysfs_register+0x3e/0x60
- [<ffffffff81309298>] blk_mq_queue_reinit_notify+0xf8/0x190
- [<ffffffff8107cfdc>] notifier_call_chain+0x4c/0x70
- [<ffffffff8105fd23>] cpu_notify+0x23/0x50
- [<ffffffff81060037>] _cpu_up+0x157/0x170
- [<ffffffff810600d9>] cpu_up+0x89/0xb0
- [<ffffffff815fa5b5>] cpu_subsys_online+0x35/0x80
- [<ffffffff814323cd>] device_online+0x5d/0xa0
- [<ffffffff81432485>] online_store+0x75/0x80
- [<ffffffff81236a5a>] kernfs_fop_write+0xda/0x150
- [<ffffffff811c5532>] vfs_write+0xb2/0x1f0
- [<ffffffff811c5f42>] SyS_write+0x42/0xb0
- [<ffffffff8160c4ed>] system_call_fastpath+0x16/0x1b
- [<00007f0132fb24e0>] 0x7f0132fb24e0
-
-This is indeed because of an uninitialized kobject for blk_mq_ctx.
-The blk_mq_ctx kobjects are initialized in blk_mq_sysfs_init(), but it
-goes loop over hctx_for_each_ctx(), i.e. it initializes only for
-online CPUs. Thus, when a CPU is hotplugged, the ctx for the newly
-onlined CPU is registered without initialization.
-
-This patch fixes the issue by initializing the all ctx kobjects
-belonging to each queue.
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=908794
-Cc:
-Signed-off-by: Takashi Iwai
-Signed-off-by: Jens Axboe
-
----
- block/blk-mq-sysfs.c | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
---- a/block/blk-mq-sysfs.c
-+++ b/block/blk-mq-sysfs.c
-@@ -390,16 +390,15 @@ static void blk_mq_sysfs_init(struct req
- {
- struct blk_mq_hw_ctx *hctx;
- struct blk_mq_ctx *ctx;
-- int i, j;
-+ int i;
-
- kobject_init(&q->mq_kobj, &blk_mq_ktype);
-
-- queue_for_each_hw_ctx(q, hctx, i) {
-+ queue_for_each_hw_ctx(q, hctx, i)
- kobject_init(&hctx->kobj, &blk_mq_hw_ktype);
-
-- hctx_for_each_ctx(hctx, ctx, j)
-- kobject_init(&ctx->kobj, &blk_mq_ctx_ktype);
-- }
-+ queue_for_each_ctx(q, ctx, i)
-+ kobject_init(&ctx->kobj, &blk_mq_ctx_ktype);
- }
-
- /* see blk_register_queue() */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/parport-parport_pc-do-not-remove-parent-devices-earl new/patches.fixes/parport-parport_pc-do-not-remove-parent-devices-earl
--- old/patches.fixes/parport-parport_pc-do-not-remove-parent-devices-earl 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/parport-parport_pc-do-not-remove-parent-devices-earl 2015-01-06 21:02:06.000000000 +0100
@@ -0,0 +1,82 @@
+From 91905b6f4afe51e23a3f58df93e4cdc5e49cf40c Mon Sep 17 00:00:00 2001
+From: Jiri Slaby
+Date: Fri, 21 Nov 2014 10:05:09 +0100
+Subject: [PATCH] parport: parport_pc, do not remove parent devices early
+Git-commit: 91905b6f4afe51e23a3f58df93e4cdc5e49cf40c
+Patch-mainline: 3.19-rc1
+References: bnc#856659
+
+When the parport_pc module is removed from the system, all parport
+devices are iterated in parport_pc_exit and removed by a call to
+parport_pc_unregister_port. Note that some parport devices have its
+'struct device' parent, known as port->dev. And when port->dev is a
+platform device, it is destroyed in parport_pc_exit too.
+
+Now, when parport_pc_unregister_port is called for a going port,
+drv->detach(port) is called for every parport driver in the system.
+ppdev can be one of them. ppdev's detach() tears down its per-port
+sysfs directory, which established port->dev as a parent earlier.
+
+But since parport_pc_exit kills port->dev parents before unregisters
+ports proper, ppdev's sysfs directory has no living parent anymore.
+This results in the following warning:
+
+Warning: CPU: 1 PID: 785 at fs/sysfs/group.c:219 sysfs_remove_group+0x9b/0xa0
+sysfs group ffffffff81c69e20 not found for kobject 'parport1'
+Modules linked in: parport_pc(E-) ppdev(E) [last unloaded: ppdev]
+Cpu: 1 PID: 785 Comm: rmmod Tainted: G W E 3.18.0-rc5-next-20141120+ #824
+...
+Call Trace:
+...
+ [<ffffffff810aff76>] warn_slowpath_fmt+0x46/0x50
+ [<ffffffff8123d81b>] sysfs_remove_group+0x9b/0xa0
+ [<ffffffff814c27e7>] dpm_sysfs_remove+0x57/0x60
+ [<ffffffff814b6ac9>] device_del+0x49/0x240
+ [<ffffffff814b6ce2>] device_unregister+0x22/0x70
+ [<ffffffff814b6dac>] device_destroy+0x3c/0x50
+ [<ffffffffc012209a>] pp_detach+0x4a/0x60 [ppdev]
+ [<ffffffff814b32dd>] parport_remove_port+0x11d/0x150
+ [<ffffffffc0137328>] parport_pc_unregister_port+0x28/0xf0 [parport_pc]
+ [<ffffffffc0138c0e>] parport_pc_exit+0x76/0x468 [parport_pc]
+ [<ffffffff81128dbc>] SyS_delete_module+0x18c/0x230
+
+It is also easily reproducible on qemu with two dummy ports '-parallel
+/dev/null -parallel /dev/null'.
+
+So switch the order of killing the two structures. But since port is
+freed by parport_pc_unregister_port, we have to remember port->dev
+in a local variable.
+
+Perhaps nothing worse than the warning happens thanks to the device
+refcounting. We *should* be on the safe side.
+
+Signed-off-by: Jiri Slaby
+Reviewed-by: Takashi Iwai
+Tested-by: Martin Pluskal
+Signed-off-by: Greg Kroah-Hartman
+Acked-by: Takashi Iwai
+
+---
+ drivers/parport/parport_pc.c | 7 ++++---
+ 1 file changed, 4 insertions(+), 3 deletions(-)
+
+--- a/drivers/parport/parport_pc.c
++++ b/drivers/parport/parport_pc.c
+@@ -3310,13 +3310,14 @@ static void __exit parport_pc_exit(void)
+ while (!list_empty(&ports_list)) {
+ struct parport_pc_private *priv;
+ struct parport *port;
++ struct device *dev;
+ priv = list_entry(ports_list.next,
+ struct parport_pc_private, list);
+ port = priv->port;
+- if (port->dev && port->dev->bus == &platform_bus_type)
+- platform_device_unregister(
+- to_platform_device(port->dev));
++ dev = port->dev;
+ parport_pc_unregister_port(port);
++ if (dev && dev->bus == &platform_bus_type)
++ platform_device_unregister(to_platform_device(dev));
+ }
+ }
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.fixes/x86-tls-validate-tls-entries-to-protect-espfix.patch new/patches.fixes/x86-tls-validate-tls-entries-to-protect-espfix.patch
--- old/patches.fixes/x86-tls-validate-tls-entries-to-protect-espfix.patch 2014-12-17 19:20:30.000000000 +0100
+++ new/patches.fixes/x86-tls-validate-tls-entries-to-protect-espfix.patch 1970-01-01 01:00:00.000000000 +0100
@@ -1,78 +0,0 @@
-From: Andy Lutomirski
-Date: Thu, 4 Dec 2014 16:48:16 -0800
-Subject: x86/tls: Validate TLS entries to protect espfix
-Git-commit: 41bdc78544b8a93a9c6814b8bbbfef966272abbe
-Patch-mainline: v3.19-rc1
-References: bsc#909077,CVE-2014-8133
-
-Installing a 16-bit RW data segment into the GDT defeats espfix.
-AFAICT this will not affect glibc, Wine, or dosemu at all.
-
-Signed-off-by: Andy Lutomirski
-Acked-by: H. Peter Anvin
-Cc: stable@vger.kernel.org
-Cc: Konrad Rzeszutek Wilk
-Cc: Linus Torvalds
-Cc: security@kernel.org
-Cc: Willy Tarreau
-Signed-off-by: Ingo Molnar
-Acked-by: Borislav Petkov
----
- arch/x86/kernel/tls.c | 23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
-
-Index: kernel/arch/x86/kernel/tls.c
-===================================================================
---- kernel.orig/arch/x86/kernel/tls.c
-+++ kernel/arch/x86/kernel/tls.c
-@@ -27,6 +27,21 @@ static int get_free_idx(void)
- return -ESRCH;
- }
-
-+static bool tls_desc_okay(const struct user_desc *info)
-+{
-+ if (LDT_empty(info))
-+ return true;
-+
-+ /*
-+ * espfix is required for 16-bit data segments, but espfix
-+ * only works for LDT segments.
-+ */
-+ if (!info->seg_32bit)
-+ return false;
-+
-+ return true;
-+}
-+
- static void set_tls_desc(struct task_struct *p, int idx,
- const struct user_desc *info, int n)
- {
-@@ -66,6 +81,9 @@ int do_set_thread_area(struct task_struc
- if (copy_from_user(&info, u_info, sizeof(info)))
- return -EFAULT;
-
-+ if (!tls_desc_okay(&info))
-+ return -EINVAL;
-+
- if (idx == -1)
- idx = info.entry_number;
-
-@@ -192,6 +210,7 @@ int regset_tls_set(struct task_struct *t
- {
- struct user_desc infobuf[GDT_ENTRY_TLS_ENTRIES];
- const struct user_desc *info;
-+ int i;
-
- if (pos >= GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
- (pos % sizeof(struct user_desc)) != 0 ||
-@@ -205,6 +224,10 @@ int regset_tls_set(struct task_struct *t
- else
- info = infobuf;
-
-+ for (i = 0; i < count / sizeof(struct user_desc); i++)
-+ if (!tls_desc_okay(info + i))
-+ return -EINVAL;
-+
- set_tls_desc(target,
- GDT_ENTRY_TLS_MIN + (pos / sizeof(struct user_desc)),
- info, count / sizeof(struct user_desc));
++++++ patches.kernel.org.tar.bz2 ++++++
++++ 8320 lines of diff (skipped)
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:23.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:23.000000000 +0100
@@ -28,6 +28,8 @@
# Send separate patches upstream if you find a problem...
########################################################
patches.kernel.org/patch-3.18.1
+ patches.kernel.org/patch-3.18.1-2
+ patches.kernel.org/patch-3.18.2-3
########################################################
# Build fixes that apply to the vanilla kernel too.
@@ -101,7 +103,6 @@
patches.arch/x86_64-hpet-64bit-timer.patch
# bsc#909077,CVE-2014-8133
- patches.fixes/x86-tls-validate-tls-entries-to-protect-espfix.patch
+needs_update patches.arch/kvm-split-paravirt-ops-by-functionality
+needs_update patches.arch/kvm-only-export-selected-pv-ops-feature-structs
@@ -172,6 +173,7 @@
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
patches.arch/arm64-0011-Enable-CONFIG_COMPAT-also-for-64k-page-size.patch
+ patches.arch/arm64-0039-generic-pci.patch
########################################################
# S/390
@@ -330,13 +332,14 @@
patches.fixes/scsi-ibmvscsi-module_alias.patch
patches.suse/sd_init.mark_majors_busy.patch
- patches.fixes/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging
########################################################
# DRM/Video
########################################################
+jeffm patches.fixes/nouveau-fix-race-with-fence-signaling
patches.drivers/drm-Implement-O_NONBLOCK-support-on-dev-dri-cardN
+ patches.drivers/drm-i915-Don-t-call-intel_prepare_page_flip-multiple
+ patches.drivers/drm-radeon-fix-sad_count-check-for-dce3
########################################################
# video4linux
@@ -400,6 +403,8 @@
+hare patches.suse/no-partition-scan
patches.drivers/hp_accel-Add-support-for-HP-ZBook-15
+ patches.fixes/parport-parport_pc-do-not-remove-parent-devices-earl
+ patches.drivers/Bluetooth-Add-support-for-Broadcom-BCM20702A0-varian
########################################################
# Other drivers we have added to the tree
@@ -433,8 +438,6 @@
#
##########################################################
- patches.fixes/KEYS-Fix-stale-key-registration-at-error-path
-
##########################################################
# Audit
##########################################################
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.SILygs/_old 2015-01-22 21:46:23.000000000 +0100
+++ /var/tmp/diff_new_pack.SILygs/_new 2015-01-22 21:46:23.000000000 +0100
@@ -1,3 +1,3 @@
-2014-12-17 19:20:30 +0100
-GIT Revision: 5f2f35e1b1ef4889058158c8872bb83f41d51f88
+2015-01-19 13:38:51 +0100
+GIT Revision: c3e148f2cb3de15a805bb2897e8c76b097a39a51
GIT Branch: stable
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org