Hello community,

here is the log from the commit of package kernel-source for openSUSE:Factory 
checked in at 2017-02-12 00:48:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-02-08 10:59:38.602764484 +0100
+++ /work/SRC/openSUSE:Factory/.kernel-source.new/dtb-aarch64.changes   
2017-02-12 00:48:05.473160688 +0100
@@ -1,0 +2,31 @@
+Thu Feb  9 11:55:53 CET 2017 - jsl...@suse.cz
+
+- Linux 4.9.9 (bnc#1012628 bsc#1021921 bsc#1022181).
+- Delete
+  patches.drivers/drm-i915-execlists-Reset-RING-registers-upon-resume.
+- Delete
+  patches.fixes/PCI-ASPM-Handle-PCI-to-PCIe-bridges-as-roots-of-PCIe.
+- commit 6c5120c
+
+-------------------------------------------------------------------
+Thu Feb  9 07:26:26 CET 2017 - mkube...@suse.cz
+
+- ip6_gre: fix ip6gre_err() invalid reads (CVE-2017-5897
+  bsc#1023762).
+- commit e1a455d
+
+-------------------------------------------------------------------
+Tue Feb  7 16:51:24 CET 2017 - ti...@suse.de
+
+- iwlwifi: Expose the default fallback ucode API to module info
+  (boo#1021082, boo#1023884).
+- commit 25d564c
+
+-------------------------------------------------------------------
+Tue Feb  7 02:09:44 CET 2017 - je...@suse.com
+
+- btrfs: fix btrfs_compat_ioctl failures on non-compat ioctls
+  (bsc#1018100).
+- commit b456c83
+
+-------------------------------------------------------------------
@@ -134,0 +166,7 @@
+
+-------------------------------------------------------------------
+Fri Jan 13 14:22:55 CET 2017 - je...@suse.com
+
+- config: RING_BUFFER_BENCHMARK=m on s390x (bsc#1019860).
+  Commit 0b422208 should have done this but set it =y instead.
+- commit 6cd2532
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.HAdD68/_old  2017-02-12 00:48:44.763566098 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:44.763566098 +0100
@@ -16,14 +16,14 @@
 #
 
 
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 
 %include %_sourcedir/kernel-spec-macros
 
 Name:           dtb-aarch64
-Version:        4.9.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

dtb-armv6l.spec: same change
dtb-armv7l.spec: same change
++++++ kernel-64kb.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:44.839555278 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:44.843554708 +0100
@@ -18,7 +18,7 @@
 
 
 %define srcversion 4.9
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 %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.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

kernel-debug.spec: same change
kernel-default.spec: same change
++++++ kernel-docs.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:44.915544458 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:44.915544458 +0100
@@ -16,7 +16,7 @@
 #
 
 
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 %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.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

++++++ kernel-lpae.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:44.935541610 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:44.935541610 +0100
@@ -18,7 +18,7 @@
 
 
 %define srcversion 4.9
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 %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.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

++++++ kernel-obs-build.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:44.959538194 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:44.959538194 +0100
@@ -19,7 +19,7 @@
 
 #!BuildIgnore: post-build-checks
 
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 %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.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

++++++ kernel-obs-qa.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:44.983534777 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:44.983534777 +0100
@@ -17,7 +17,7 @@
 # needsrootforbuild
 
 
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 %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.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

++++++ kernel-pae.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:45.007531359 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:45.007531359 +0100
@@ -18,7 +18,7 @@
 
 
 %define srcversion 4.9
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 %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.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

++++++ kernel-source.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:45.031527943 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:45.035527373 +0100
@@ -18,7 +18,7 @@
 
 
 %define srcversion 4.9
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 %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.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

++++++ kernel-syms.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:45.055524526 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:45.059523957 +0100
@@ -24,10 +24,10 @@
 Summary:        Kernel Symbol Versions (modversions)
 License:        GPL-2.0
 Group:          Development/Sources
-Version:        4.9.8
+Version:        4.9.9
 %if %using_buildservice
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

++++++ kernel-syzkaller.spec ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:45.079521109 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:45.083520540 +0100
@@ -18,7 +18,7 @@
 
 
 %define srcversion 4.9
-%define patchversion 4.9.8
+%define patchversion 4.9.9
 %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.8
+Version:        4.9.9
 %if 0%{?is_kotd}
-Release:        <RELEASE>.gaf90696
+Release:        <RELEASE>.g6c5120c
 %else
 Release:        0
 %endif

kernel-vanilla.spec: same change
++++++ config.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/config/s390x/default new/config/s390x/default
--- old/config/s390x/default    2017-02-02 13:10:43.000000000 +0100
+++ new/config/s390x/default    2017-02-09 11:40:48.000000000 +0100
@@ -2651,7 +2651,7 @@
 CONFIG_TRACING_MAP=y
 CONFIG_HIST_TRIGGERS=y
 # CONFIG_TRACEPOINT_BENCHMARK is not set
-CONFIG_RING_BUFFER_BENCHMARK=y
+CONFIG_RING_BUFFER_BENCHMARK=m
 # CONFIG_RING_BUFFER_STARTUP_TEST is not set
 # CONFIG_TRACE_ENUM_MAP_FILE is not set
 

++++++ 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     
2017-02-01 09:00:07.000000000 +0100
+++ new/patches.drivers/drm-i915-execlists-Reset-RING-registers-upon-resume     
1970-01-01 01:00:00.000000000 +0100
@@ -1,97 +0,0 @@
-From bafb2f7d4755bf1571bd5e9a03b97f3fc4fe69ae Mon Sep 17 00:00:00 2001
-From: Chris Wilson <ch...@chris-wilson.co.uk>
-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 <ch...@chris-wilson.co.uk>
-Reviewed-by: Joonas Lahtinen <joonas.lahti...@linux.intel.com>
-Link: 
http://patchwork.freedesktop.org/patch/msgid/20160921135108.29574-3-ch...@chris-wilson.co.uk
-Acked-by: Takashi Iwai <ti...@suse.de>
-
----
- 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);
-+              }
-       }
- }

++++++ patches.fixes.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/PCI-ASPM-Handle-PCI-to-PCIe-bridges-as-roots-of-PCIe 
new/patches.fixes/PCI-ASPM-Handle-PCI-to-PCIe-bridges-as-roots-of-PCIe
--- old/patches.fixes/PCI-ASPM-Handle-PCI-to-PCIe-bridges-as-roots-of-PCIe      
2017-02-01 09:00:07.000000000 +0100
+++ new/patches.fixes/PCI-ASPM-Handle-PCI-to-PCIe-bridges-as-roots-of-PCIe      
1970-01-01 01:00:00.000000000 +0100
@@ -1,76 +0,0 @@
-From 672980c62c684a625fe3a688ca8c6214062d712b Mon Sep 17 00:00:00 2001
-From: Bjorn Helgaas <bhelg...@google.com>
-Date: Fri, 27 Jan 2017 15:00:45 -0600
-Subject: [PATCH] PCI/ASPM: Handle PCI-to-PCIe bridges as roots of PCIe 
hierarchies
-Git-commit: 672980c62c684a625fe3a688ca8c6214062d712b
-References: bsc#1022181
-Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
-Patch-mainline: Queued in subsystem maintainer repository
-
-In a struct pcie_link_state, link->root points to the pcie_link_state of
-the root of the PCIe hierarchy.  For the topmost link, this points to
-itself (link->root = link).  For others, we copy the pointer from the
-parent (link->root = link->parent->root).
-
-Previously we recognized that Root Ports originated PCIe hierarchies, but
-we treated PCI/PCI-X to PCIe Bridges as being in the middle of the
-hierarchy, and when we tried to copy the pointer from link->parent->root,
-there was no parent, and we dereferenced a NULL pointer:
-
-  BUG: unable to handle kernel NULL pointer dereference at 0000000000000090
-  IP: [<ffffffff9e424350>] pcie_aspm_init_link_state+0x170/0x820
-
-Recognize that PCI/PCI-X to PCIe Bridges originate PCIe hierarchies just
-like Root Ports do, so link->root for these devices should also point to
-itself.
-
-Fixes: 51ebfc92b72b ("PCI: Enumerate switches below PCI-to-PCIe bridges")
-Link: https://bugzilla.opensuse.org/show_bug.cgi?id=1022181
-Signed-off-by: Bjorn Helgaas <bhelg...@google.com>
-Acked-by: Takashi Iwai <ti...@suse.de>
-
----
- drivers/pci/pcie/aspm.c |   19 +++++++++++++------
- 1 file changed, 13 insertions(+), 6 deletions(-)
-
---- a/drivers/pci/pcie/aspm.c
-+++ b/drivers/pci/pcie/aspm.c
-@@ -518,25 +518,32 @@ static struct pcie_link_state *alloc_pci
-       link = kzalloc(sizeof(*link), GFP_KERNEL);
-       if (!link)
-               return NULL;
-+
-       INIT_LIST_HEAD(&link->sibling);
-       INIT_LIST_HEAD(&link->children);
-       INIT_LIST_HEAD(&link->link);
-       link->pdev = pdev;
--      if (pci_pcie_type(pdev) != PCI_EXP_TYPE_ROOT_PORT) {
-+
-+      /*
-+       * Root Ports and PCI/PCI-X to PCIe Bridges are roots of PCIe
-+       * hierarchies.
-+       */
-+      if (pci_pcie_type(pdev) == PCI_EXP_TYPE_ROOT_PORT ||
-+          pci_pcie_type(pdev) == PCI_EXP_TYPE_PCIE_BRIDGE) {
-+              link->root = link;
-+      } else {
-               struct pcie_link_state *parent;
-+
-               parent = pdev->bus->parent->self->link_state;
-               if (!parent) {
-                       kfree(link);
-                       return NULL;
-               }
-+
-               link->parent = parent;
-+              link->root = link->parent->root;
-               list_add(&link->link, &parent->children);
-       }
--      /* Setup a pointer to the root port link */
--      if (!link->parent)
--              link->root = link;
--      else
--              link->root = link->parent->root;
- 
-       list_add(&link->sibling, &link_list);
-       pdev->link_state = link;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.fixes/ip6_gre-fix-ip6gre_err-invalid-reads.patch 
new/patches.fixes/ip6_gre-fix-ip6gre_err-invalid-reads.patch
--- old/patches.fixes/ip6_gre-fix-ip6gre_err-invalid-reads.patch        
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.fixes/ip6_gre-fix-ip6gre_err-invalid-reads.patch        
2017-02-09 11:55:53.000000000 +0100
@@ -0,0 +1,95 @@
+From: Eric Dumazet <eduma...@google.com>
+Date: Sat, 4 Feb 2017 23:18:55 -0800
+Subject: ip6_gre: fix ip6gre_err() invalid reads
+Patch-mainline: v4.10
+Git-commit: 7892032cfe67f4bde6fc2ee967e45a8fbaf33756
+References: CVE-2017-5897 bsc#1023762
+
+Andrey Konovalov reported out of bound accesses in ip6gre_err()
+
+If GRE flags contains GRE_KEY, the following expression
+*(((__be32 *)p) + (grehlen / 4) - 1)
+
+accesses data ~40 bytes after the expected point, since
+grehlen includes the size of IPv6 headers.
+
+Let's use a "struct gre_base_hdr *greh" pointer to make this
+code more readable.
+
+p[1] becomes greh->protocol.
+grhlen is the GRE header length.
+
+Fixes: c12b395a4664 ("gre: Support GRE over IPv6")
+Signed-off-by: Eric Dumazet <eduma...@google.com>
+Reported-by: Andrey Konovalov <andreyk...@google.com>
+Signed-off-by: David S. Miller <da...@davemloft.net>
+Acked-by: Michal Kubecek <mkube...@suse.cz>
+
+---
+ net/ipv6/ip6_gre.c | 40 +++++++++++++++++++++-------------------
+ 1 file changed, 21 insertions(+), 19 deletions(-)
+
+diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
+index d7d6d3ae0b3b..0a5922055da2 100644
+--- a/net/ipv6/ip6_gre.c
++++ b/net/ipv6/ip6_gre.c
+@@ -367,35 +367,37 @@ static void ip6gre_tunnel_uninit(struct net_device *dev)
+ 
+ 
+ static void ip6gre_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
+-              u8 type, u8 code, int offset, __be32 info)
++                     u8 type, u8 code, int offset, __be32 info)
+ {
+-      const struct ipv6hdr *ipv6h = (const struct ipv6hdr *)skb->data;
+-      __be16 *p = (__be16 *)(skb->data + offset);
+-      int grehlen = offset + 4;
++      const struct gre_base_hdr *greh;
++      const struct ipv6hdr *ipv6h;
++      int grehlen = sizeof(*greh);
+       struct ip6_tnl *t;
++      int key_off = 0;
+       __be16 flags;
++      __be32 key;
+ 
+-      flags = p[0];
+-      if (flags&(GRE_CSUM|GRE_KEY|GRE_SEQ|GRE_ROUTING|GRE_VERSION)) {
+-              if (flags&(GRE_VERSION|GRE_ROUTING))
+-                      return;
+-              if (flags&GRE_KEY) {
+-                      grehlen += 4;
+-                      if (flags&GRE_CSUM)
+-                              grehlen += 4;
+-              }
++      if (!pskb_may_pull(skb, offset + grehlen))
++              return;
++      greh = (const struct gre_base_hdr *)(skb->data + offset);
++      flags = greh->flags;
++      if (flags & (GRE_VERSION | GRE_ROUTING))
++              return;
++      if (flags & GRE_CSUM)
++              grehlen += 4;
++      if (flags & GRE_KEY) {
++              key_off = grehlen + offset;
++              grehlen += 4;
+       }
+ 
+-      /* If only 8 bytes returned, keyed message will be dropped here */
+-      if (!pskb_may_pull(skb, grehlen))
++      if (!pskb_may_pull(skb, offset + grehlen))
+               return;
+       ipv6h = (const struct ipv6hdr *)skb->data;
+-      p = (__be16 *)(skb->data + offset);
++      greh = (const struct gre_base_hdr *)(skb->data + offset);
++      key = key_off ? *(__be32 *)(skb->data + key_off) : 0;
+ 
+       t = ip6gre_tunnel_lookup(skb->dev, &ipv6h->daddr, &ipv6h->saddr,
+-                              flags & GRE_KEY ?
+-                              *(((__be32 *)p) + (grehlen / 4) - 1) : 0,
+-                              p[1]);
++                               key, greh->protocol);
+       if (!t)
+               return;
+ 
+-- 
+2.11.1
+

++++++ patches.kernel.org.tar.bz2 ++++++
++++ 2410 lines of diff (skipped)

++++++ patches.suse.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.suse/btrfs-fix-btrfs_compat_ioctl-failures-on-non-compat-ioctls 
new/patches.suse/btrfs-fix-btrfs_compat_ioctl-failures-on-non-compat-ioctls
--- old/patches.suse/btrfs-fix-btrfs_compat_ioctl-failures-on-non-compat-ioctls 
1970-01-01 01:00:00.000000000 +0100
+++ new/patches.suse/btrfs-fix-btrfs_compat_ioctl-failures-on-non-compat-ioctls 
2017-02-07 16:51:24.000000000 +0100
@@ -0,0 +1,40 @@
+From: Jeff Mahoney <je...@suse.com>
+Subject: btrfs: fix btrfs_compat_ioctl failures on non-compat ioctls
+References: bsc#1018100
+Patch-mainline: Submitted, linux-btrfs, 6 Feb 2017
+
+Commit 4c63c2454ef incorrectly assumed that returning -ENOIOCTLCMD would
+cause the native ioctl to be called.  The ->compat_ioctl callback is
+expected to handle all ioctls, not just compat variants.  As a result,
+when using 32-bit userspace on 64-bit kernels, everything except those
+three ioctls would return -ENOTTY.
+
+Fixes: 4c63c2454ef ("btrfs: bugfix: handle 
FS_IOC32_{GETFLAGS,SETFLAGS,GETVERSION} in btrfs_ioctl")
+Cc: sta...@vger.kernel.org
+Signed-off-by: Jeff Mahoney <je...@suse.com>
+---
+ fs/btrfs/ioctl.c |    6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/fs/btrfs/ioctl.c
++++ b/fs/btrfs/ioctl.c
+@@ -5653,6 +5653,10 @@ long btrfs_ioctl(struct file *file, unsi
+ #ifdef CONFIG_COMPAT
+ long btrfs_compat_ioctl(struct file *file, unsigned int cmd, unsigned long 
arg)
+ {
++      /*
++       * These all access 32-bit values anyway so no further
++       * handling is necessary.
++       */
+       switch (cmd) {
+       case FS_IOC32_GETFLAGS:
+               cmd = FS_IOC_GETFLAGS;
+@@ -5663,8 +5667,6 @@ long btrfs_compat_ioctl(struct file *fil
+       case FS_IOC32_GETVERSION:
+               cmd = FS_IOC_GETVERSION;
+               break;
+-      default:
+-              return -ENOIOCTLCMD;
+       }
+ 
+       return btrfs_ioctl(file, cmd, (unsigned long) compat_ptr(arg));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/patches.suse/iwlwifi-expose-default-fallback-ucode-api 
new/patches.suse/iwlwifi-expose-default-fallback-ucode-api
--- old/patches.suse/iwlwifi-expose-default-fallback-ucode-api  1970-01-01 
01:00:00.000000000 +0100
+++ new/patches.suse/iwlwifi-expose-default-fallback-ucode-api  2017-02-07 
16:51:24.000000000 +0100
@@ -0,0 +1,63 @@
+From: Takashi Iwai <ti...@suse.de>
+Subject: iwlwifi: Expose the default fallback ucode API to module info
+Patch-mainline: No, a tentative fix until firmware files are prepared
+References: boo#1021082, boo#1023884
+
+The upstream iwlwifi driver sets the max ucode API versions to some
+non-exist firmware files, and this results in the broken WiFi in initrd
+or in installation image because they are built with the information
+given by modinfo.
+
+So far, the upstream doesn't take any action to it, so we need to paper
+over it temporarily by manually adding the MODULE_FIRMWARE() entries.
+
+Signed-off-by: Takashi Iwai <ti...@suse.de>
+
+---
+ drivers/net/wireless/intel/iwlwifi/iwl-7000.c |    9 +++++++++
+ drivers/net/wireless/intel/iwlwifi/iwl-8000.c |    4 ++++
+ 2 files changed, 13 insertions(+)
+
+--- a/drivers/net/wireless/intel/iwlwifi/iwl-7000.c
++++ b/drivers/net/wireless/intel/iwlwifi/iwl-7000.c
+@@ -72,9 +72,13 @@
+ 
+ /* Highest firmware API version supported */
+ #define IWL7260_UCODE_API_MAX 17
++#define IWL7260_UCODE_API_DEFAULT_FALLBACK    17
+ #define IWL7265_UCODE_API_MAX 17
++#define IWL7265_UCODE_API_DEFAULT_FALLBACK    17
+ #define IWL7265D_UCODE_API_MAX        26
++#define IWL7265D_UCODE_API_DEFAULT_FALLBACK   22
+ #define IWL3168_UCODE_API_MAX 26
++#define IWL3168_UCODE_API_DEFAULT_FALLBACK    22
+ 
+ /* Lowest firmware API version supported */
+ #define IWL7260_UCODE_API_MIN 17
+@@ -382,3 +386,8 @@ MODULE_FIRMWARE(IWL3160_MODULE_FIRMWARE(
+ MODULE_FIRMWARE(IWL3168_MODULE_FIRMWARE(IWL3168_UCODE_API_MAX));
+ MODULE_FIRMWARE(IWL7265_MODULE_FIRMWARE(IWL7265_UCODE_API_MAX));
+ MODULE_FIRMWARE(IWL7265D_MODULE_FIRMWARE(IWL7265D_UCODE_API_MAX));
++MODULE_FIRMWARE(IWL7260_MODULE_FIRMWARE(IWL7260_UCODE_API_DEFAULT_FALLBACK));
++MODULE_FIRMWARE(IWL3160_MODULE_FIRMWARE(IWL7260_UCODE_API_DEFAULT_FALLBACK));
++MODULE_FIRMWARE(IWL3168_MODULE_FIRMWARE(IWL3168_UCODE_API_DEFAULT_FALLBACK));
++MODULE_FIRMWARE(IWL7265_MODULE_FIRMWARE(IWL7265_UCODE_API_DEFAULT_FALLBACK));
++MODULE_FIRMWARE(IWL7265D_MODULE_FIRMWARE(IWL7265D_UCODE_API_DEFAULT_FALLBACK));
+--- a/drivers/net/wireless/intel/iwlwifi/iwl-8000.c
++++ b/drivers/net/wireless/intel/iwlwifi/iwl-8000.c
+@@ -71,7 +71,9 @@
+ 
+ /* Highest firmware API version supported */
+ #define IWL8000_UCODE_API_MAX 26
++#define IWL8000_UCODE_API_DEFAULT_FALLBACK    22
+ #define IWL8265_UCODE_API_MAX 26
++#define IWL8265_UCODE_API_DEFAULT_FALLBACK    22
+ 
+ /* Lowest firmware API version supported */
+ #define IWL8000_UCODE_API_MIN 17
+@@ -278,3 +280,5 @@ const struct iwl_cfg iwl4165_2ac_sdio_cf
+ 
+ MODULE_FIRMWARE(IWL8000_MODULE_FIRMWARE(IWL8000_UCODE_API_MAX));
+ MODULE_FIRMWARE(IWL8265_MODULE_FIRMWARE(IWL8265_UCODE_API_MAX));
++MODULE_FIRMWARE(IWL8000_MODULE_FIRMWARE(IWL8000_UCODE_API_DEFAULT_FALLBACK));
++MODULE_FIRMWARE(IWL8265_MODULE_FIRMWARE(IWL8265_UCODE_API_DEFAULT_FALLBACK));

++++++ series.conf ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:46.559310403 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:46.559310403 +0100
@@ -35,6 +35,7 @@
        patches.kernel.org/patch-4.9.5-6
        patches.kernel.org/patch-4.9.6-7
        patches.kernel.org/patch-4.9.7-8
+       patches.kernel.org/patch-4.9.8-9
 
        ########################################################
        # Build fixes that apply to the vanilla kernel too.
@@ -216,6 +217,7 @@
        ########################################################
        # Networking, IPv6
        ########################################################
+       patches.fixes/ip6_gre-fix-ip6gre_err-invalid-reads.patch
 
        ########################################################
        # Netfilter
@@ -252,6 +254,7 @@
        
patches.suse/revert-btrfs-fix-lockdep-warning-on-deadlock-against-an-inode-s-log-mutex.patch
        
patches.suse/revert-btrfs-improve-performance-on-fsync-against-new-inode-after-rename-unlink.patch
        patches.suse/btrfs-fix-extent-tree-corruption-due-to-relocation.patch
+       patches.suse/btrfs-fix-btrfs_compat_ioctl-failures-on-non-compat-ioctls
 
        ########################################################
        # Reiserfs Patches
@@ -322,7 +325,6 @@
        ########################################################
        patches.fixes/drm-i915-Fix-S4-resume-breakage
        patches.fixes/drm-Use-u64-for-intermediate-dotclock-calculations.patch
-       patches.drivers/drm-i915-execlists-Reset-RING-registers-upon-resume
        patches.drivers/drm-reference-count-event-completion
 
        ########################################################
@@ -338,6 +340,7 @@
        # Wireless Networking
        ########################################################
        patches.suse/b43-missing-firmware-info.patch
+       patches.suse/iwlwifi-expose-default-fallback-ucode-api
 
        ########################################################
        # ISDN
@@ -351,7 +354,6 @@
        ########################################################
        # PCI and PCI hotplug
        ########################################################
-       patches.fixes/PCI-ASPM-Handle-PCI-to-PCIe-bridges-as-roots-of-PCIe
 
        ########################################################
        # sysfs / driver core

++++++ source-timestamp ++++++
--- /var/tmp/diff_new_pack.HAdD68/_old  2017-02-12 00:48:46.595305277 +0100
+++ /var/tmp/diff_new_pack.HAdD68/_new  2017-02-12 00:48:46.595305277 +0100
@@ -1,3 +1,3 @@
-2017-02-04 10:04:54 +0100
-GIT Revision: af906961a8a0f35534631a809aeae8a069805068
+2017-02-09 11:55:53 +0100
+GIT Revision: 6c5120caac312a1909e2347a00433920d10ebd9f
 GIT Branch: stable


Reply via email to