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
