Hello community,
here is the log from the commit of package kernel-source for openSUSE:Factory checked in at 2017-01-29 10:31:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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/dtb-aarch64.changes 2017-01-25 22:37:38.840709143 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/dtb-aarch64.changes 2017-02-03 17:44:45.384784234 +0100
@@ -1,0 +2,20 @@
+Thu Jan 26 10:09:16 CET 2017 - jslaby@suse.cz
+
+- Linux 4.9.6 (bnc#1012628).
+- commit d1207ac
+
+-------------------------------------------------------------------
+Wed Jan 25 16:53:18 CET 2017 - tiwai@suse.de
+
+- drm/i915/execlists: Reset RING registers upon resume
+ (bsc#1021921).
+- commit 7b0a59a
+
+-------------------------------------------------------------------
+Mon Jan 23 22:16:45 CET 2017 - tiwai@suse.de
+
+- [media] uvcvideo: uvc_scan_fallback() for webcams with broken
+ chain (bsc#1021474).
+- commit 9bb1a8a
+
+-------------------------------------------------------------------
dtb-armv6l.changes: same change
dtb-armv7l.changes: same change
kernel-64kb.changes: same change
kernel-debug.changes: same change
kernel-default.changes: same change
kernel-docs.changes: same change
kernel-lpae.changes: same change
kernel-obs-build.changes: same change
kernel-obs-qa.changes: same change
kernel-pae.changes: same change
kernel-source.changes: same change
kernel-syms.changes: same change
kernel-syzkaller.changes: same change
kernel-vanilla.changes: same change
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ dtb-aarch64.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.059980947 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.067979815 +0100
@@ -16,14 +16,14 @@
#
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%include %_sourcedir/kernel-spec-macros
Name: dtb-aarch64
-Version: 4.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
dtb-armv6l.spec: same change
dtb-armv7l.spec: same change
++++++ kernel-64kb.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.179963965 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.187962833 +0100
@@ -18,7 +18,7 @@
%define srcversion 4.9
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%define variant %{nil}
%define vanilla_only 0
@@ -58,9 +58,9 @@
Summary: Kernel with 64kb PAGE_SIZE
License: GPL-2.0
Group: System/Kernel
-Version: 4.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
kernel-debug.spec: same change
kernel-default.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.303946416 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.303946416 +0100
@@ -16,7 +16,7 @@
#
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -33,9 +33,9 @@
Summary: Kernel Documentation (man pages)
License: GPL-2.0
Group: Documentation/Man
-Version: 4.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.331942453 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.335941887 +0100
@@ -18,7 +18,7 @@
%define srcversion 4.9
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%define variant %{nil}
%define vanilla_only 0
@@ -58,9 +58,9 @@
Summary: Kernel for LPAE enabled systems
License: GPL-2.0
Group: System/Kernel
-Version: 4.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.359938491 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.359938491 +0100
@@ -19,7 +19,7 @@
#!BuildIgnore: post-build-checks
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%define variant %{nil}
%include %_sourcedir/kernel-spec-macros
@@ -51,9 +51,9 @@
Summary: package kernel and initrd for OBS VM builds
License: GPL-2.0
Group: SLES
-Version: 4.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
++++++ kernel-obs-qa.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.383935094 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.387934528 +0100
@@ -17,7 +17,7 @@
# needsrootforbuild
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%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.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.411931131 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.415930565 +0100
@@ -18,7 +18,7 @@
%define srcversion 4.9
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%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.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.439927169 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.443926603 +0100
@@ -18,7 +18,7 @@
%define srcversion 4.9
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%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.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.467923206 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.467923206 +0100
@@ -24,10 +24,10 @@
Summary: Kernel Symbol Versions (modversions)
License: GPL-2.0
Group: Development/Sources
-Version: 4.9.5
+Version: 4.9.6
%if %using_buildservice
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
++++++ kernel-syzkaller.spec ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:51.491919810 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:51.495919243 +0100
@@ -18,7 +18,7 @@
%define srcversion 4.9
-%define patchversion 4.9.5
+%define patchversion 4.9.6
%define variant %{nil}
%define vanilla_only 0
@@ -58,9 +58,9 @@
Summary: Kernel used for fuzzing by syzkaller
License: GPL-2.0
Group: System/Kernel
-Version: 4.9.5
+Version: 4.9.6
%if 0%{?is_kotd}
-Release: <RELEASE>.g699d1c6
+Release: <RELEASE>.gd1207ac
%else
Release: 0
%endif
kernel-vanilla.spec: same change
++++++ patches.drivers.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/drm-i915-execlists-Reset-RING-registers-upon-resume new/patches.drivers/drm-i915-execlists-Reset-RING-registers-upon-resume
--- old/patches.drivers/drm-i915-execlists-Reset-RING-registers-upon-resume 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/drm-i915-execlists-Reset-RING-registers-upon-resume 2017-01-25 16:53:18.000000000 +0100
@@ -0,0 +1,97 @@
+From bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae Mon Sep 17 00:00:00 2001
+From: Chris Wilson
+Date: Wed, 21 Sep 2016 14:51:08 +0100
+Subject: [PATCH] drm/i915/execlists: Reset RING registers upon resume
+Git-commit: bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae
+Patch-mainline: 4.10-rc1
+References: bsc#1021921
+
+There is a disparity in the context image saved to disk and our own
+bookkeeping - that is we presume the RING_HEAD and RING_TAIL match our
+stored ce->ring->tail value. However, as we emit WA_TAIL_DWORDS into the
+ring but may not tell the GPU about them, the GPU may be lagging behind
+our bookkeeping. Upon hibernation we do not save stolen pages, presuming
+that their contents are volatile. This means that although we start
+writing into the ring at tail, the GPU starts executing from its HEAD
+and there may be some garbage in between and so the GPU promptly hangs
+upon resume.
+
+Testcase: igt/gem_exec_suspend/basic-S4
+Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96526
+Signed-off-by: Chris Wilson
+Reviewed-by: Joonas Lahtinen
+Link: http://patchwork.freedesktop.org/patch/msgid/20160921135108.29574-3-chris@ch...
+Acked-by: Takashi Iwai
+
+---
+ drivers/gpu/drm/i915/intel_lrc.c | 58 +++++++++++++++++++++++----------------
+ 1 file changed, 35 insertions(+), 23 deletions(-)
+
+--- a/drivers/gpu/drm/i915/intel_lrc.c
++++ b/drivers/gpu/drm/i915/intel_lrc.c
+@@ -2153,30 +2153,42 @@ error_deref_obj:
+
+ void intel_lr_context_resume(struct drm_i915_private *dev_priv)
+ {
+- struct i915_gem_context *ctx = dev_priv->kernel_context;
+ struct intel_engine_cs *engine;
++ struct i915_gem_context *ctx;
+
+- for_each_engine(engine, dev_priv) {
+- struct intel_context *ce = &ctx->engine[engine->id];
+- void *vaddr;
+- uint32_t *reg_state;
+-
+- if (!ce->state)
+- continue;
+-
+- vaddr = i915_gem_object_pin_map(ce->state->obj, I915_MAP_WB);
+- if (WARN_ON(IS_ERR(vaddr)))
+- continue;
+-
+- reg_state = vaddr + LRC_STATE_PN * PAGE_SIZE;
+-
+- reg_state[CTX_RING_HEAD+1] = 0;
+- reg_state[CTX_RING_TAIL+1] = 0;
+-
+- ce->state->obj->dirty = true;
+- i915_gem_object_unpin_map(ce->state->obj);
+-
+- ce->ring->head = 0;
+- ce->ring->tail = 0;
++ /* Because we emit WA_TAIL_DWORDS there may be a disparity
++ * between our bookkeeping in ce->ring->head and ce->ring->tail and
++ * that stored in context. As we only write new commands from
++ * ce->ring->tail onwards, everything before that is junk. If the GPU
++ * starts reading from its RING_HEAD from the context, it may try to
++ * execute that junk and die.
++ *
++ * So to avoid that we reset the context images upon resume. For
++ * simplicity, we just zero everything out.
++ */
++ list_for_each_entry(ctx, &dev_priv->context_list, link) {
++ for_each_engine(engine, dev_priv) {
++ struct intel_context *ce = &ctx->engine[engine->id];
++ u32 *reg;
++
++ if (!ce->state)
++ continue;
++
++ reg = i915_gem_object_pin_map(ce->state->obj,
++ I915_MAP_WB);
++ if (WARN_ON(IS_ERR(reg)))
++ continue;
++
++ reg += LRC_STATE_PN * PAGE_SIZE / sizeof(*reg);
++ reg[CTX_RING_HEAD+1] = 0;
++ reg[CTX_RING_TAIL+1] = 0;
++
++ ce->state->obj->dirty = true;
++ i915_gem_object_unpin_map(ce->state->obj);
++
++ ce->ring->head = ce->ring->tail = 0;
++ ce->ring->last_retired_head = -1;
++ intel_ring_update_space(ce->ring);
++ }
+ }
+ }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/patches.drivers/media-uvcvideo-uvc_scan_fallback-for-webcams-with-br new/patches.drivers/media-uvcvideo-uvc_scan_fallback-for-webcams-with-br
--- old/patches.drivers/media-uvcvideo-uvc_scan_fallback-for-webcams-with-br 1970-01-01 01:00:00.000000000 +0100
+++ new/patches.drivers/media-uvcvideo-uvc_scan_fallback-for-webcams-with-br 2017-01-25 16:53:18.000000000 +0100
@@ -0,0 +1,170 @@
+From e950267ab802c8558f1100eafd4087fd039ad634 Mon Sep 17 00:00:00 2001
+From: Henrik Ingo
+Date: Sun, 29 May 2016 17:58:00 -0300
+Subject: [PATCH] [media] uvcvideo: uvc_scan_fallback() for webcams with broken chain
+Git-commit: e950267ab802c8558f1100eafd4087fd039ad634
+Patch-mainline: 4.10-rc1
+References: bsc#1021474
+
+Some devices have invalid baSourceID references, causing uvc_scan_chain()
+to fail, but if we just take the entities we can find and put them
+together in the most sensible chain we can think of, turns out they do
+work anyway. Note: This heuristic assumes there is a single chain.
+
+At the time of writing, devices known to have such a broken chain are
+ - Acer Integrated Camera (5986:055a)
+ - Realtek rtl157a7 (0bda:57a7)
+
+Signed-off-by: Henrik Ingo
+Signed-off-by: Laurent Pinchart
+Signed-off-by: Mauro Carvalho Chehab
+Acked-by: Takashi Iwai
+
+---
+ drivers/media/usb/uvc/uvc_driver.c | 118 +++++++++++++++++++++++++++++++++++--
+ 1 file changed, 112 insertions(+), 6 deletions(-)
+
+--- a/drivers/media/usb/uvc/uvc_driver.c
++++ b/drivers/media/usb/uvc/uvc_driver.c
+@@ -1595,6 +1595,114 @@ static const char *uvc_print_chain(struc
+ return buffer;
+ }
+
++static struct uvc_video_chain *uvc_alloc_chain(struct uvc_device *dev)
++{
++ struct uvc_video_chain *chain;
++
++ chain = kzalloc(sizeof(*chain), GFP_KERNEL);
++ if (chain == NULL)
++ return NULL;
++
++ INIT_LIST_HEAD(&chain->entities);
++ mutex_init(&chain->ctrl_mutex);
++ chain->dev = dev;
++ v4l2_prio_init(&chain->prio);
++
++ return chain;
++}
++
++/*
++ * Fallback heuristic for devices that don't connect units and terminals in a
++ * valid chain.
++ *
++ * Some devices have invalid baSourceID references, causing uvc_scan_chain()
++ * to fail, but if we just take the entities we can find and put them together
++ * in the most sensible chain we can think of, turns out they do work anyway.
++ * Note: This heuristic assumes there is a single chain.
++ *
++ * At the time of writing, devices known to have such a broken chain are
++ * - Acer Integrated Camera (5986:055a)
++ * - Realtek rtl157a7 (0bda:57a7)
++ */
++static int uvc_scan_fallback(struct uvc_device *dev)
++{
++ struct uvc_video_chain *chain;
++ struct uvc_entity *iterm = NULL;
++ struct uvc_entity *oterm = NULL;
++ struct uvc_entity *entity;
++ struct uvc_entity *prev;
++
++ /*
++ * Start by locating the input and output terminals. We only support
++ * devices with exactly one of each for now.
++ */
++ list_for_each_entry(entity, &dev->entities, list) {
++ if (UVC_ENTITY_IS_ITERM(entity)) {
++ if (iterm)
++ return -EINVAL;
++ iterm = entity;
++ }
++
++ if (UVC_ENTITY_IS_OTERM(entity)) {
++ if (oterm)
++ return -EINVAL;
++ oterm = entity;
++ }
++ }
++
++ if (iterm == NULL || oterm == NULL)
++ return -EINVAL;
++
++ /* Allocate the chain and fill it. */
++ chain = uvc_alloc_chain(dev);
++ if (chain == NULL)
++ return -ENOMEM;
++
++ if (uvc_scan_chain_entity(chain, oterm) < 0)
++ goto error;
++
++ prev = oterm;
++
++ /*
++ * Add all Processing and Extension Units with two pads. The order
++ * doesn't matter much, use reverse list traversal to connect units in
++ * UVC descriptor order as we build the chain from output to input. This
++ * leads to units appearing in the order meant by the manufacturer for
++ * the cameras known to require this heuristic.
++ */
++ list_for_each_entry_reverse(entity, &dev->entities, list) {
++ if (entity->type != UVC_VC_PROCESSING_UNIT &&
++ entity->type != UVC_VC_EXTENSION_UNIT)
++ continue;
++
++ if (entity->num_pads != 2)
++ continue;
++
++ if (uvc_scan_chain_entity(chain, entity) < 0)
++ goto error;
++
++ prev->baSourceID[0] = entity->id;
++ prev = entity;
++ }
++
++ if (uvc_scan_chain_entity(chain, iterm) < 0)
++ goto error;
++
++ prev->baSourceID[0] = iterm->id;
++
++ list_add_tail(&chain->list, &dev->chains);
++
++ uvc_trace(UVC_TRACE_PROBE,
++ "Found a video chain by fallback heuristic (%s).\n",
++ uvc_print_chain(chain));
++
++ return 0;
++
++error:
++ kfree(chain);
++ return -EINVAL;
++}
++
+ /*
+ * Scan the device for video chains and register video devices.
+ *
+@@ -1617,15 +1725,10 @@ static int uvc_scan_device(struct uvc_de
+ if (term->chain.next || term->chain.prev)
+ continue;
+
+- chain = kzalloc(sizeof(*chain), GFP_KERNEL);
++ chain = uvc_alloc_chain(dev);
+ if (chain == NULL)
+ return -ENOMEM;
+
+- INIT_LIST_HEAD(&chain->entities);
+- mutex_init(&chain->ctrl_mutex);
+- chain->dev = dev;
+- v4l2_prio_init(&chain->prio);
+-
+ term->flags |= UVC_ENTITY_FLAG_DEFAULT;
+
+ if (uvc_scan_chain(chain, term) < 0) {
+@@ -1639,6 +1742,9 @@ static int uvc_scan_device(struct uvc_de
+ list_add_tail(&chain->list, &dev->chains);
+ }
+
++ if (list_empty(&dev->chains))
++ uvc_scan_fallback(dev);
++
+ if (list_empty(&dev->chains)) {
+ uvc_printk(KERN_INFO, "No valid video chain found.\n");
+ return -1;
++++++ patches.kernel.org.tar.bz2 ++++++
++++ 4678 lines of diff (skipped)
++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:52.591764134 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:52.595763568 +0100
@@ -32,6 +32,7 @@
patches.kernel.org/patch-4.9.2-3
patches.kernel.org/patch-4.9.3-4
patches.kernel.org/patch-4.9.4-5
+ patches.kernel.org/patch-4.9.5-6
########################################################
# Build fixes that apply to the vanilla kernel too.
@@ -320,10 +321,12 @@
patches.fixes/drm-i915-Fix-S4-resume-breakage
patches.fixes/drm-Use-u64-for-intermediate-dotclock-calculations.patch
patches.drivers/drm-Fix-broken-VT-switch-with-video-1366x768-option
+ patches.drivers/drm-i915-execlists-Reset-RING-registers-upon-resume
########################################################
# video4linux
########################################################
+ patches.drivers/media-uvcvideo-uvc_scan_fallback-for-webcams-with-br
########################################################
# Network
++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.Nsfyrg/_old 2017-02-03 17:44:52.639757341 +0100
+++ /var/tmp/diff_new_pack.Nsfyrg/_new 2017-02-03 17:44:52.643756774 +0100
@@ -1,3 +1,3 @@
-2017-01-20 11:22:06 +0100
-GIT Revision: 699d1c6a45b2614f359bfc507c90adf4ae06c3a6
+2017-01-26 10:09:16 +0100
+GIT Revision: d1207acd578e29abf2edb35b13faf73558b673dd
GIT Branch: stable