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 - [email protected]
+
+- Linux 4.9.6 (bnc#1012628).
+- commit d1207ac
+
+-------------------------------------------------------------------
+Wed Jan 25 16:53:18 CET 2017 - [email protected]
+
+- drm/i915/execlists: Reset RING registers upon resume
+  (bsc#1021921).
+- commit 7b0a59a
+
+-------------------------------------------------------------------
+Mon Jan 23 22:16:45 CET 2017 - [email protected]
+
+- [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 <[email protected]>
+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 <[email protected]>
+Reviewed-by: Joonas Lahtinen <[email protected]>
+Link: 
http://patchwork.freedesktop.org/patch/msgid/[email protected]
+Acked-by: Takashi Iwai <[email protected]>
+
+---
+ 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 <[email protected]>
+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 <[email protected]>
+Signed-off-by: Laurent Pinchart <[email protected]>
+Signed-off-by: Mauro Carvalho Chehab <[email protected]>
+Acked-by: Takashi Iwai <[email protected]>
+
+---
+ 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


Reply via email to