commit 55b195735142c1a8ffccb21a4af0b1bd8bd4d1eb
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sun Feb 25 11:08:04 2018 +0100

    Linux 4.14.22

commit c902ff1e4b2535a43980302d573020a16be29a2e
Author: Michal Hocko <mhocko@suse.com>
Date:   Wed Feb 21 14:46:01 2018 -0800

    vmalloc: fix __GFP_HIGHMEM usage for vmalloc_32 on 32b systems
    
    commit 698d0831ba87b92ae10b15e8203cfd59f5a59a35 upstream.
    
    Kai Heng Feng has noticed that BUG_ON(PageHighMem(pg)) triggers in
    drivers/media/common/saa7146/saa7146_core.c since 19809c2da28a ("mm,
    vmalloc: use __GFP_HIGHMEM implicitly").
    
    saa7146_vmalloc_build_pgtable uses vmalloc_32 and it is reasonable to
    expect that the resulting page is not in highmem.  The above commit
    aimed to add __GFP_HIGHMEM only for those requests which do not specify
    any zone modifier gfp flag.  vmalloc_32 relies on GFP_VMALLOC32 which
    should do the right thing.  Except it has been missed that GFP_VMALLOC32
    is an alias for GFP_KERNEL on 32b architectures.  Thanks to Matthew to
    notice this.
    
    Fix the problem by unconditionally setting GFP_DMA32 in GFP_VMALLOC32
    for !64b arches (as a bailout).  This should do the right thing and use
    ZONE_NORMAL which should be always below 4G on 32b systems.
    
    Debugged by Matthew Wilcox.
    
    [akpm@linux-foundation.org: coding-style fixes]
    Link: http://lkml.kernel.org/r/20180212095019.GX21609@dhcp22.suse.cz
    Fixes: 19809c2da28a ("mm, vmalloc: use __GFP_HIGHMEM implicitly”)
    Signed-off-by: Michal Hocko <mhocko@suse.com>
    Reported-by: Kai Heng Feng <kai.heng.feng@canonical.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Laura Abbott <labbott@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eff339b5d25029ce5aed6c85c59f1708b22ef9b2
Author: Tomas Winkler <tomas.winkler@intel.com>
Date:   Sun Feb 18 11:05:16 2018 +0200

    mei: me: add cannon point device ids for 4th device
    
    commit 2a4ac172c2f257d28c47b90c9e381bec31edcc44 upstream.
    
    Add cannon point device ids for 4th (itouch) device.
    
    Cc: <stable@vger.kernel.org> 4.14+
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06320148eecdd7377c4e512b1d694a26b7b61cd8
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Sun Feb 18 11:05:15 2018 +0200

    mei: me: add cannon point device ids
    
    commit f8f4aa68a8ae98ed79c8fee3488c38a2f5d2de8c upstream.
    
    Add CNP LP and CNP H device ids for cannon lake
    and coffee lake platforms.
    
    Cc: <stable@vger.kernel.org> 4.14+
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95c0853883973c9c065959a33208751dcf8c57d1
Author: Kamil Konieczny <k.konieczny@partner.samsung.com>
Date:   Wed Feb 7 16:52:09 2018 +0100

    crypto: s5p-sss - Fix kernel Oops in AES-ECB mode
    
    commit c927b080c67e3e97193c81fc1d27f4251bf4e036 upstream.
    
    In AES-ECB mode crypt is done with key only, so any use of IV
    can cause kernel Oops. Use IV only in AES-CBC and AES-CTR.
    
    Signed-off-by: Kamil Konieczny <k.konieczny@partner.samsung.com>
    Reported-by: Anand Moon <linux.amoon@gmail.com>
    Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
    Tested-by: Anand Moon <linux.amoon@gmail.com>
    Cc: stable@vger.kernel.org # can be applied after commit 8f9702aad138
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fc4cb30f2cd5f42631f81cb7afb7f5b325f5a23a
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Nov 27 16:10:27 2017 +0100

    drm/i915: fix intel_backlight_device_register declaration
    
    commit ac29fc66855b79c2960c63a4a66952d5b721d698 upstream.
    
    The alternative intel_backlight_device_register() definition apparently
    never got used, but I have now run into a case of i915 being compiled
    without CONFIG_BACKLIGHT_CLASS_DEVICE, resulting in a number of
    identical warnings:
    
    drivers/gpu/drm/i915/intel_drv.h:1739:12: error: 'intel_backlight_device_register' defined but not used [-Werror=unused-function]
    
    This marks the function as 'inline', which was surely the original
    intention here.
    
    Fixes: 1ebaa0b9c2d4 ("drm/i915: Move backlight registration to connector registration")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171127151239.1813673-1-arnd@arndb.de
    (cherry picked from commit 2de2d0b063b08becb2c67a2c338c44e37bdcffee)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68a2a52047602994f5ded220f172da9e7e17a310
Author: LEROY Christophe <christophe.leroy@c-s.fr>
Date:   Fri Jan 26 17:09:59 2018 +0100

    crypto: talitos - fix Kernel Oops on hashing an empty file
    
    commit 87a81dce53b1ea61acaeefa5191a0376a2d1d721 upstream.
    
    Performing the hash of an empty file leads to a kernel Oops
    
    [   44.504600] Unable to handle kernel paging request for data at address 0x0000000c
    [   44.512819] Faulting instruction address: 0xc02d2be8
    [   44.524088] Oops: Kernel access of bad area, sig: 11 [#1]
    [   44.529171] BE PREEMPT CMPC885
    [   44.532232] CPU: 0 PID: 491 Comm: md5sum Not tainted 4.15.0-rc8-00211-g3a968610b6ea #81
    [   44.540814] NIP:  c02d2be8 LR: c02d2984 CTR: 00000000
    [   44.545812] REGS: c6813c90 TRAP: 0300   Not tainted  (4.15.0-rc8-00211-g3a968610b6ea)
    [   44.554223] MSR:  00009032 <EE,ME,IR,DR,RI>  CR: 48222822  XER: 20000000
    [   44.560855] DAR: 0000000c DSISR: c0000000
    [   44.560855] GPR00: c02d28fc c6813d40 c6828000 c646fa40 00000001 00000001 00000001 00000000
    [   44.560855] GPR08: 0000004c 00000000 c000bfcc 00000000 28222822 100280d4 00000000 10020008
    [   44.560855] GPR16: 00000000 00000020 00000000 00000000 10024008 00000000 c646f9f0 c6179a10
    [   44.560855] GPR24: 00000000 00000001 c62f0018 c6179a10 00000000 c6367a30 c62f0000 c646f9c0
    [   44.598542] NIP [c02d2be8] ahash_process_req+0x448/0x700
    [   44.603751] LR [c02d2984] ahash_process_req+0x1e4/0x700
    [   44.608868] Call Trace:
    [   44.611329] [c6813d40] [c02d28fc] ahash_process_req+0x15c/0x700 (unreliable)
    [   44.618302] [c6813d90] [c02060c4] hash_recvmsg+0x11c/0x210
    [   44.623716] [c6813db0] [c0331354] ___sys_recvmsg+0x98/0x138
    [   44.629226] [c6813eb0] [c03332c0] __sys_recvmsg+0x40/0x84
    [   44.634562] [c6813f10] [c03336c0] SyS_socketcall+0xb8/0x1d4
    [   44.640073] [c6813f40] [c000d1ac] ret_from_syscall+0x0/0x38
    [   44.645530] Instruction dump:
    [   44.648465] 38c00001 7f63db78 4e800421 7c791b78 54690ffe 0f090000 80ff0190 2f870000
    [   44.656122] 40befe50 2f990001 409e0210 813f01bc <8129000c> b39e003a 7d29c214 913e003c
    
    This patch fixes that Oops by checking if src is NULL.
    
    Fixes: 6a1e8d14156d4 ("crypto: talitos - making mapping helpers more generic")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e94fc847bd6e405e7c2b8849e52c102070777387
Author: Jia-Ju Bai <baijiaju1990@163.com>
Date:   Tue Dec 12 16:49:52 2017 +0800

    hippi: Fix a Fix a possible sleep-in-atomic bug in rr_close
    
    
    [ Upstream commit 6e266610eb6553cfb7e7eb5d11914bd01509c406 ]
    
    The driver may sleep under a spinlock.
    The function call path is:
    rr_close (acquire the spinlock)
      free_irq --> may sleep
    
    To fix it, free_irq is moved to the place without holding the spinlock.
    
    This bug is found by my static analysis tool(DSAC) and checked by my code review.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 385aeea7128918b57f7a4dd70c0fa55c50c6daa3
Author: Anju T Sudhakar <anju@linux.vnet.ibm.com>
Date:   Tue Dec 5 11:00:38 2017 +0530

    powerpc/perf/imc: Fix nest-imc cpuhotplug callback failure
    
    
    [ Upstream commit ad2b6e01024ef23bddc3ce0bcb115ecd8c520b7e ]
    
    Oops is observed during boot:
    
      Faulting instruction address: 0xc000000000248340
      cpu 0x0: Vector: 380 (Data Access Out of Range) at [c000000ff66fb850]
          pc: c000000000248340: event_function_call+0x50/0x1f0
          lr: c00000000024878c: perf_remove_from_context+0x3c/0x100
          sp: c000000ff66fbad0
         msr: 9000000000009033
         dar: 7d20e2a6f92d03c0
        pid = 14, comm = cpuhp/0
    
    While registering the cpuhotplug callbacks for nest-imc, if we fail in
    the cpuhotplug online path for any random node in a multi node
    system (because the opal call to stop nest-imc counters fails for that
    node), ppc_nest_imc_cpu_offline() will get invoked for other nodes who
    successfully returned from cpuhotplug online path.
    
    This call trace is generated since in the ppc_nest_imc_cpu_offline()
    path we are trying to migrate the event context, when nest-imc
    counters are not even initialized.
    
    Patch to add a check to ensure that nest-imc is registered before
    migrating the event context.
    
    Fixes: 885dcd709ba9 ("powerpc/perf: Add nest IMC PMU support")
    Signed-off-by: Anju T Sudhakar <anju@linux.vnet.ibm.com>
    Reviewed-by: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 473900cd523a9d11a03a2eb5fec2e2ef029fb21b
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Thu Dec 7 11:15:19 2017 +0100

    PCI: rcar: Fix use-after-free in probe error path
    
    
    [ Upstream commit 0c31f1d7be1b5c4858b1d714dcefa25f41428cab ]
    
    If CONFIG_DEBUG_SLAB=y, and no PCIe card is inserted, the kernel crashes
    during probe on r8a7791/koelsch:
    
      rcar-pcie fe000000.pcie: PCIe link down
      Unable to handle kernel paging request at virtual address 6b6b6b6b
    
    (seeing this message requires earlycon and keep_bootcon).
    
    Indeed, pci_free_host_bridge() frees the PCI host bridge, including the
    embedded rcar_pcie object, so pci_free_resource_list() must not be called
    afterwards.
    
    To fix this, move the call to pci_free_resource_list() up, and update the
    label name accordingly.
    
    Fixes: ddd535f1ea3eb27e ("PCI: rcar: Fix memory leak when no PCIe card is inserted")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Simon Horman <horms+renesas@verge.net.au>
    Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73974676f802f6634054539757dd66fee0754190
Author: Jan Beulich <JBeulich@suse.com>
Date:   Tue Dec 12 03:18:11 2017 -0700

    xen: XEN_ACPI_PROCESSOR is Dom0-only
    
    
    [ Upstream commit c4f9d9cb2c29ff04c6b4bb09b72802d8aedfc7cb ]
    
    Add a respective dependency.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8babb53208856c1ec982c7bc26024865d0fba3a4
Author: Pali Rohár <pali.rohar@gmail.com>
Date:   Thu Nov 2 21:25:24 2017 +0100

    platform/x86: dell-laptop: Fix keyboard max lighting for Dell Latitude E6410
    
    
    [ Upstream commit 68a213d325c23d39f109f4c7c824b906a7d209de ]
    
    This machine reports number of keyboard backlight led levels, instead of
    value of the last led level index. Therefore max_brightness properly needs
    to be subtracted by 1 to match led max_brightness API.
    
    Signed-off-by: Pali Rohár <pali.rohar@gmail.com>
    Reported-by: Gabriel M. Elder <gabriel@tekgnowsys.com>
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=196913
    Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 721d4b02495c917032ec66e8de4251f55717ca9b
Author: Karol Herbst <kherbst@redhat.com>
Date:   Mon Nov 27 08:51:39 2017 +0100

    x86/mm/kmmio: Fix mmiotrace for page unaligned addresses
    
    
    [ Upstream commit 6d60ce384d1d5ca32b595244db4077a419acc687 ]
    
    If something calls ioremap() with an address not aligned to PAGE_SIZE, the
    returned address might be not aligned as well. This led to a probe
    registered on exactly the returned address, but the entire page was armed
    for mmiotracing.
    
    On calling iounmap() the address passed to unregister_kmmio_probe() was
    PAGE_SIZE aligned by the caller leading to a complete freeze of the
    machine.
    
    We should always page align addresses while (un)registerung mappings,
    because the mmiotracer works on top of pages, not mappings. We still keep
    track of the probes based on their real addresses and lengths though,
    because the mmiotrace still needs to know what are mapped memory regions.
    
    Also move the call to mmiotrace_iounmap() prior page aligning the address,
    so that all probes are unregistered properly, otherwise the kernel ends up
    failing memory allocations randomly after disabling the mmiotracer.
    
    Tested-by: Lyude <lyude@redhat.com>
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Acked-by: Pekka Paalanen <ppaalanen@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: nouveau@lists.freedesktop.org
    Link: http://lkml.kernel.org/r/20171127075139.4928-1-kherbst@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d91c3f2e540f978ee98558e10f108fd5f13b1e2a
Author: Dave Young <dyoung@redhat.com>
Date:   Sat Dec 9 12:16:10 2017 +0800

    mm/early_ioremap: Fix boot hang with earlyprintk=efi,keep
    
    
    [ Upstream commit 7f6f60a1ba52538c16f26930bfbcfe193d9d746a ]
    
    earlyprintk=efi,keep does not work any more with a warning
    in mm/early_ioremap.c: WARN_ON(system_state != SYSTEM_BOOTING):
    Boot just hangs because of the earlyprintk within the earlyprintk
    implementation code itself.
    
    This is caused by a new introduced middle state in:
    
      69a78ff226fe ("init: Introduce SYSTEM_SCHEDULING state")
    
    early_ioremap() is fine in both SYSTEM_BOOTING and SYSTEM_SCHEDULING
    states, original condition should be updated accordingly.
    
    Signed-off-by: Dave Young <dyoung@redhat.com>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: bp@suse.de
    Cc: linux-efi@vger.kernel.org
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/20171209041610.GA3249@dhcp-128-65.nay.redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abe8e59ab2f26645830bd61ed94063b00b84cda3
Author: Andreas Platschek <andreas.platschek@opentech.at>
Date:   Thu Dec 7 11:32:20 2017 +0100

    usb: dwc3: of-simple: fix missing clk_disable_unprepare
    
    
    [ Upstream commit ded600ea9fb51a495d2fcd21e90351df876488e8 ]
    
    If of_clk_get() fails, the clean-up of already initialized clocks should be
    the same as when clk_prepare_enable() fails. Thus a clk_disable_unprepare()
    for each clock should be called before the clk_put().
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Fixes: 16adc674d0d6 ("usb: dwc3: ep0: fix setup_packet_pending initialization")
    
    Signed-off-by: Andreas Platschek <andreas.platschek@opentech.at>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98b35258b3941badc6998092d738a17f4c5d63fd
Author: Vincent Pelletier <plr.vincent@gmail.com>
Date:   Thu Nov 30 15:31:06 2017 +0000

    usb: dwc3: gadget: Wait longer for controller to end command processing
    
    
    [ Upstream commit 8722e095f5a44d0e409e45c5ddc2ee9cf589c777 ]
    
    DWC3_DEPCMD_ENDTRANSFER has been witnessed to require around 600 iterations
    before controller would become idle again after unplugging the USB cable
    with AIO reads submitted.
    Bump timeout from 500 iterations to 1000 so dwc3_stop_active_transfer does
    not receive -ETIMEDOUT and does not WARN:
    
    [   81.326273] ------------[ cut here ]------------
    [   81.335341] WARNING: CPU: 0 PID: 1874 at drivers/usb/dwc3/gadget.c:2627 dwc3_stop_active_transfer.constprop.23+0x69/0xc0 [dwc3]
    [   81.347094] Modules linked in: usb_f_fs libcomposite configfs bnep btsdio bluetooth ecdh_generic brcmfmac brcmutil dwc3 intel_powerclamp coretemp ulpi kvm_intel udc_core kvm irqbypass crc32_pclmul crc32c_intel pcbc dwc3_pci aesni_intel aes_i586 crypto_simd cryptd ehci_pci ehci_hcd basincove_gpadc industrialio gpio_keys usbcore usb_common
    [   81.378142] CPU: 0 PID: 1874 Comm: irq/34-dwc3 Not tainted 4.14.0-edison+ #119
    [   81.385545] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48
    [   81.394548] task: f5b1be00 task.stack: f420a000
    [   81.399219] EIP: dwc3_stop_active_transfer.constprop.23+0x69/0xc0 [dwc3]
    [   81.406086] EFLAGS: 00010086 CPU: 0
    [   81.409672] EAX: 0000001f EBX: f5729800 ECX: c132a2a2 EDX: 00000000
    [   81.416096] ESI: f4054014 EDI: f41cf400 EBP: f420be10 ESP: f420bdf4
    [   81.422521]  DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
    [   81.428061] CR0: 80050033 CR2: b7a3f000 CR3: 01d94000 CR4: 001006d0
    [   81.434483] Call Trace:
    [   81.437063]  __dwc3_gadget_ep_disable+0xa3/0x2b0 [dwc3]
    [   81.442438]  ? _raw_spin_lock_irqsave+0x32/0x40
    [   81.447135]  dwc3_gadget_ep_disable+0xbf/0xe0 [dwc3]
    [   81.452269]  usb_ep_disable+0x1c/0xd0 [udc_core]
    [   81.457048]  ffs_func_eps_disable.isra.15+0x3b/0x90 [usb_f_fs]
    [   81.463070]  ffs_func_set_alt+0x7d/0x310 [usb_f_fs]
    [   81.468132]  ffs_func_disable+0x14/0x20 [usb_f_fs]
    [   81.473075]  reset_config+0x5b/0x90 [libcomposite]
    [   81.478023]  composite_disconnect+0x2b/0x50 [libcomposite]
    [   81.483685]  dwc3_disconnect_gadget+0x39/0x50 [dwc3]
    [   81.488808]  dwc3_gadget_disconnect_interrupt+0x21b/0x250 [dwc3]
    [   81.495014]  dwc3_thread_interrupt+0x2a8/0xf70 [dwc3]
    [   81.500219]  ? __schedule+0x78c/0x7e0
    [   81.504027]  irq_thread_fn+0x18/0x30
    [   81.507715]  ? irq_thread+0xb7/0x180
    [   81.511400]  irq_thread+0x111/0x180
    [   81.515000]  ? irq_finalize_oneshot+0xe0/0xe0
    [   81.519490]  ? wake_threads_waitq+0x30/0x30
    [   81.523806]  kthread+0x107/0x110
    [   81.527131]  ? disable_percpu_irq+0x50/0x50
    [   81.531439]  ? kthread_stop+0x150/0x150
    [   81.535397]  ret_from_fork+0x19/0x24
    [   81.539136] Code: 89 d8 c7 45 ec 00 00 00 00 c7 45 f0 00 00 00 00 c7 45 f4 00 00 00 00 e8 56 ef ff ff 85 c0 74 12 50 68 b9 1c 14 f8 e8 64 0f f7 c8 <0f> ff 58 5a 8d 76 00 8b 83 98 00 00 00 c6 83 a0 00 00 00 00 83
    [   81.559295] ---[ end trace f3133eec81a473b8 ]---
    
    Number of iterations measured on 4 consecutive unplugs:
    [ 1088.799777] dwc3_send_gadget_ep_cmd(cmd=331016, params={0, 0, 0}) iterated 605 times
    [ 1222.024986] dwc3_send_gadget_ep_cmd(cmd=331016, params={0, 0, 0}) iterated 580 times
    [ 1317.590452] dwc3_send_gadget_ep_cmd(cmd=331016, params={0, 0, 0}) iterated 598 times
    [ 1453.218314] dwc3_send_gadget_ep_cmd(cmd=331016, params={0, 0, 0}) iterated 594 times
    
    Signed-off-by: Vincent Pelletier <plr.vincent@gmail.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58d3cc9687f5baf704c866d61af302c50d302d91
Author: Tobias Jordan <Tobias.Jordan@elektrobit.com>
Date:   Wed Dec 6 14:28:27 2017 +0100

    dmaengine: jz4740: disable/unprepare clk if probe fails
    
    
    [ Upstream commit eb9436966fdc84cebdf222952a99898ab46d9bb0 ]
    
    in error path of jz4740_dma_probe(), call clk_disable_unprepare() to clean
    up.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Fixes: 25ce6c35fea0 MIPS: jz4740: Remove custom DMA API
    Signed-off-by: Tobias Jordan <Tobias.Jordan@elektrobit.com>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4826773306b5275055632a59eda7957ae543eecd
Author: Stefan Schake <stschake@gmail.com>
Date:   Sat Dec 2 18:40:39 2017 +0100

    drm/vc4: Release fence after signalling
    
    
    [ Upstream commit babc8110057cb9ca542c3c1666cbda4e8ccf9250 ]
    
    We were never releasing the initial fence reference that is obtained
    through dma_fence_init.
    
    Link: https://github.com/anholt/linux/issues/122
    Fixes: cdec4d361323 ("drm/vc4: Expose dma-buf fences for V3D rendering.")
    Signed-off-by: Stefan Schake <stschake@gmail.com>
    Signed-off-by: Eric Anholt <eric@anholt.net>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/1512236444-301-1-git-send-email-stschake@gmail.com
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 645ad410dcbd32d2566ada0dd1eb65abfcfa3b9d
Author: Jiada Wang <jiada_wang@mentor.com>
Date:   Thu Dec 7 22:15:38 2017 -0800

    ASoC: rsnd: ssi: fix race condition in rsnd_ssi_pointer_update
    
    
    [ Upstream commit 33f801366bdf3f8b67dfe325b84f4051a090d01e ]
    
    Currently there is race condition between set of byte_pos and wrap
    it around when new buffer starts. If .pointer is called in-between
    it will result in inconsistent pointer position be returned
    from .pointer callback.
    
    This patch increments buffer pointer atomically to avoid this issue.
    
    Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
    Reviewed-by: Takashi Sakamoto <takashi.sakamoto@miraclelinux.com>
    Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06078bd640c3d5b339c841366963447a9f9a67b7
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Fri Dec 8 12:16:22 2017 +0000

    drm/armada: fix leak of crtc structure
    
    
    [ Upstream commit 33cd3c07a976e11c3c4cc6b0b3db6760ad1590c5 ]
    
    Fix the leak of the CRTC structure in the failure paths of
    armada_drm_crtc_create().
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20db5b3e3da3a112cb25baa0446af80976bd2208
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Fri Dec 8 08:07:25 2017 +0100

    xfrm: Fix stack-out-of-bounds with misconfigured transport mode policies.
    
    
    [ Upstream commit 732706afe1cc46ef48493b3d2b69c98f36314ae4 ]
    
    On policies with a transport mode template, we pass the addresses
    from the flowi to xfrm_state_find(), assuming that the IP addresses
    (and address family) don't change during transformation.
    
    Unfortunately our policy template validation is not strict enough.
    It is possible to configure policies with transport mode template
    where the address family of the template does not match the selectors
    address family. This lead to stack-out-of-bound reads because
    we compare arddesses of the wrong family. Fix this by refusing
    such a configuration, address family can not change on transport
    mode.
    
    We use the assumption that, on transport mode, the first templates
    address family must match the address family of the policy selector.
    Subsequent transport mode templates must mach the address family of
    the previous template.
    
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1840744a7f2e977f726f0197ecca5085f2e682da
Author: Guy Levi <guyle@mellanox.com>
Date:   Tue Dec 5 22:30:03 2017 +0200

    IB/mlx4: Fix RSS hash fields restrictions
    
    
    [ Upstream commit 4d02ebd9bbbdde1d524e62b540b0402cee7bbcdf ]
    
    Mistakenly the driver didn't allow RSS hash fields combinations which
    involve both IPv4 and IPv6 protocols. This bug caused to failures for
    user's use cases for RSS.
    
    Consequently, this patch fixes this bug and allows any combination that
    the HW can support.
    
    Additionally, the patch fixes the driver to return an error in case the
    user provides an unsupported mask for RSS hash fields.
    
    Fixes: 3078f5f1bd8b ("IB/mlx4: Add support for RSS QP")
    Signed-off-by: Guy Levi <guyle@mellanox.com>
    Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8edeefab9ef2ddb13fad02594457c87386b7c2e0
Author: Takuo Koguchi <takuo.koguchi@gmail.com>
Date:   Thu Dec 7 16:20:14 2017 +0900

    spi: sun4i: disable clocks in the remove function
    
    
    [ Upstream commit c810daba0ab5226084a56893a789af427a801146 ]
    
    mclk and hclk need to be disabled. Since pm_runtime_disable does
    not disable the clocks, use pm_runtime_force_suspend instead.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Takuo Koguchi <takuo.koguchi.sw@hitachi.com>
    Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8e50037b6dee16b7f7a4f2b0bc71f496c49c2b7
Author: Stefan Potyra <Stefan.Potyra@elektrobit.com>
Date:   Wed Dec 6 16:03:24 2017 +0100

    ASoC: rockchip: disable clock on error
    
    
    [ Upstream commit c7b92172a61b91936be985cb9bc499a4ebc6489b ]
    
    Disable the clocks in  rk_spdif_probe when an error occurs after one
    of the clocks has been enabled previously.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Fixes: f874b80e1571 ASoC: rockchip: Add rockchip SPDIF transceiver driver
    Signed-off-by: Stefan Potyra <Stefan.Potyra@elektrobit.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5be88596c7b04b896a231d81d97948adb890a018
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Dec 5 17:37:17 2017 +0300

    staging: ccree: Uninitialized return in ssi_ahash_import()
    
    
    [ Upstream commit aece09024414b54158e03aa45f4a4436e7cb996c ]
    
    The return value isn't initialized on some success paths.
    
    Fixes: c5f39d07860c ("staging: ccree: fix leak of import() after init()")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30fe9f094c1784f03d08a977e17f66ef88095ca3
Author: Cai Li <cai.li@spreadtrum.com>
Date:   Tue Nov 21 17:24:38 2017 +0800

    clk: fix a panic error caused by accessing NULL pointer
    
    
    [ Upstream commit 975b820b6836b6b6c42fb84cd2e772e2b41bca67 ]
    
    In some cases the clock parent would be set NULL when doing re-parent,
    it will cause a NULL pointer accessing if clk_set trace event is
    enabled.
    
    This patch sets the parent as "none" if the input parameter is NULL.
    
    Fixes: dfc202ead312 (clk: Add tracepoints for hardware operations)
    Signed-off-by: Cai Li <cai.li@spreadtrum.com>
    Signed-off-by: Chunyan Zhang <chunyan.zhang@spreadtrum.com>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03e82f2b21579e8ff032a8aee018e2f5022eb4b4
Author: Jann Horn <jannh@google.com>
Date:   Fri Dec 1 01:46:07 2017 +0100

    netfilter: xt_bpf: add overflow checks
    
    
    [ Upstream commit 6ab405114b0b229151ef06f4e31c7834dd09d0c0 ]
    
    Check whether inputs from userspace are too long (explicit length field too
    big or string not null-terminated) to avoid out-of-bounds reads.
    
    As far as I can tell, this can at worst lead to very limited kernel heap
    memory disclosure or oopses.
    
    This bug can be triggered by an unprivileged user even if the xt_bpf module
    is not loaded: iptables is available in network namespaces, and the xt_bpf
    module can be autoloaded.
    
    Triggering the bug with a classic BPF filter with fake length 0x1000 causes
    the following KASAN report:
    
    ==================================================================
    BUG: KASAN: slab-out-of-bounds in bpf_prog_create+0x84/0xf0
    Read of size 32768 at addr ffff8801eff2c494 by task test/4627
    
    CPU: 0 PID: 4627 Comm: test Not tainted 4.15.0-rc1+ #1
    [...]
    Call Trace:
     dump_stack+0x5c/0x85
     print_address_description+0x6a/0x260
     kasan_report+0x254/0x370
     ? bpf_prog_create+0x84/0xf0
     memcpy+0x1f/0x50
     bpf_prog_create+0x84/0xf0
     bpf_mt_check+0x90/0xd6 [xt_bpf]
    [...]
    Allocated by task 4627:
     kasan_kmalloc+0xa0/0xd0
     __kmalloc_node+0x47/0x60
     xt_alloc_table_info+0x41/0x70 [x_tables]
    [...]
    The buggy address belongs to the object at ffff8801eff2c3c0
                    which belongs to the cache kmalloc-2048 of size 2048
    The buggy address is located 212 bytes inside of
                    2048-byte region [ffff8801eff2c3c0, ffff8801eff2cbc0)
    [...]
    ==================================================================
    
    Fixes: e6f30c731718 ("netfilter: x_tables: add xt_bpf match")
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c232fd3d703499b352d293f6dbc76cda8c7783ed
Author: Aviv Heller <avivh@mellanox.com>
Date:   Tue Nov 28 19:55:40 2017 +0200

    xfrm: Fix xfrm_input() to verify state is valid when (encap_type < 0)
    
    
    [ Upstream commit 4ce3dbe397d7b6b15f272ae757c78c35e9e4b61d ]
    
    Code path when (encap_type < 0) does not verify the state is valid
    before progressing.
    
    This will result in a crash if, for instance, x->km.state ==
    XFRM_STATE_ACQ.
    
    Fixes: 7785bba299a8 ("esp: Add a software GRO codepath")
    Signed-off-by: Aviv Heller <avivh@mellanox.com>
    Signed-off-by: Yevgeny Kliteynik <kliteyn@mellanox.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05fc2b8ba00a94587f9c3f9bed70e71266ceb08d
Author: Gustavo A. R. Silva <garsilva@embeddedor.com>
Date:   Mon Nov 20 08:28:14 2017 -0600

    dmaengine: at_hdmac: fix potential NULL pointer dereference in atc_prep_dma_interleaved
    
    
    [ Upstream commit 62a277d43d47e74972de44d33bd3763e31992414 ]
    
    _xt_ is being dereferenced before it is null checked, hence there is a
    potential null pointer dereference.
    
    Fix this by moving the pointer dereference after _xt_ has been null
    checked.
    
    This issue was detected with the help of Coccinelle.
    
    Fixes: 4483320e241c ("dmaengine: Use Pointer xt after NULL check.")
    Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com>
    Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27e2830b31154c1034111115b75e4d26942bc26b
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Fri Nov 17 22:37:53 2017 +0100

    dmaengine: ioat: Fix error handling path
    
    
    [ Upstream commit 5c9afbda911ce20b3f2181d1e440a0222e1027dd ]
    
    If the last test in 'ioat_dma_self_test()' fails, we must release all
    the allocated resources and not just part of them.
    
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Acked-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 249d9f3ef5e93290168b00a98b8a3756e149907f
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Dec 6 15:14:18 2017 +0100

    scsi: bfa: fix type conversion warning
    
    commit 48d83282db077f93b2cf40de120f4d6f29eb293b upstream.
    
    A regression fix introduced a harmless type mismatch warning:
    
    drivers/scsi/bfa/bfad_bsg.c: In function 'bfad_im_bsg_vendor_request':
    drivers/scsi/bfa/bfad_bsg.c:3137:35: error: initialization of 'struct bfad_im_port_s *' from 'long unsigned int' makes pointer from integer without a cast [-Werror=int-conversion]
      struct bfad_im_port_s *im_port = shost->hostdata[0];
                                       ^~~~~
    drivers/scsi/bfa/bfad_bsg.c: In function 'bfad_im_bsg_els_ct_request':
    drivers/scsi/bfa/bfad_bsg.c:3353:35: error: initialization of 'struct bfad_im_port_s *' from 'long unsigned int' makes pointer from integer without a cast [-Werror=int-conversion]
      struct bfad_im_port_s *im_port = shost->hostdata[0];
    
    This changes the code back to shost_priv() once more, but encapsulates
    it in an inline function to document the rather unusual way of
    using the private data only as a pointer to the previously allocated
    structure.
    
    I did not try to get rid of the extra indirection level entirely,
    which would have been rather invasive and required reworking the entire
    initialization sequence.
    
    Fixes: 45349821ab3a ("scsi: bfa: fix access to bfad_im_port_s")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Sasha Levin <Alexander.Levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e748a5ea4ff2693db71303f23454d0c620695906
Author: Johannes Thumshirn <jthumshirn@suse.de>
Date:   Tue Nov 28 16:26:57 2017 +0100

    scsi: bfa: fix access to bfad_im_port_s
    
    
    [ Upstream commit 45349821ab3a8d378b8f37e52c6fe1aa1b870c47 ]
    
    Commit 'cd21c605b2cf ("scsi: fc: provide fc_bsg_to_shost() helper")'
    changed access to bfa's 'struct bfad_im_port_s' by using shost_priv()
    instead of shost->hostdata[0].
    
    This lead to crashes like in the following back-trace:
    
    task: ffff880046375300 ti: ffff8800a2ef8000 task.ti: ffff8800a2ef8000
    RIP: e030:[<ffffffffa04c8252>]  [<ffffffffa04c8252>] bfa_fcport_get_attr+0x82/0x260 [bfa]
    RSP: e02b:ffff8800a2efba10  EFLAGS: 00010046
    RAX: 575f415441536432 RBX: ffff8800a2efba28 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: ffff8800a2efba28 RDI: ffff880004dc31d8
    RBP: ffff880004dc31d8 R08: 0000000000000000 R09: 0000000000000001
    R10: ffff88011fadc468 R11: 0000000000000001 R12: ffff880004dc31f0
    R13: 0000000000000200 R14: ffff880004dc61d0 R15: ffff880004947a10
    FS:  00007feb1e489700(0000) GS:ffff88011fac0000(0000) knlGS:0000000000000000
    CS:  e033 DS: 0000 ES: 0000 CR0: 000000008005003b
    CR2: 00007ffe14e46c10 CR3: 00000000957b8000 CR4: 0000000000000660
    Stack:
     ffff88001d4da000 ffff880004dc31c0 ffffffffa048a9df ffffffff81e56380
     0000000000000000 0000000000000000 0000000000000000 0000000000000000
    [] bfad_iocmd_ioc_get_info+0x4f/0x220 [bfa]
    [] bfad_iocmd_handler+0xa00/0xd40 [bfa]
    [] bfad_im_bsg_request+0xee/0x1b0 [bfa]
    [] fc_bsg_dispatch+0x10b/0x1b0 [scsi_transport_fc]
    [] bsg_request_fn+0x11d/0x1c0
    [] __blk_run_queue+0x2f/0x40
    [] blk_execute_rq_nowait+0xa8/0x160
    [] blk_execute_rq+0x77/0x120
    [] bsg_ioctl+0x1b6/0x200
    [] do_vfs_ioctl+0x2cd/0x4a0
    [] SyS_ioctl+0x74/0x80
    [] entry_SYSCALL_64_fastpath+0x12/0x6d
    
    Fixes: cd21c605b2cf ("scsi: fc: provide fc_bsg_to_shost() helper")
    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Michal Koutný <mkoutny@suse.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd079e26a0e488267af0aeae1317245d60433111
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Nov 22 11:58:03 2017 +0300

    scsi: lpfc: Use after free in lpfc_rq_buf_free()
    
    
    [ Upstream commit 9816ef6ecbc102b9bcbb1d83e12c7fb19924f38c ]
    
    The error message dereferences "rqb_entry" so we need to print it first
    and then free the buffer.
    
    Fixes: 6c621a2229b0 ("scsi: lpfc: Separate NVMET RQ buffer posting from IO resources SGL/iocbq/context")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Dick Kennedy <dick.kennedy@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b8ffbead22d93673ac41b60eeb73869be20c860
Author: Claudiu Manoil <claudiu.manoil@nxp.com>
Date:   Thu Dec 7 18:44:23 2017 +0200

    gianfar: Disable EEE autoneg by default
    
    
    [ Upstream commit b6b5e8a691185606dfffff3198c89e3b4fd9d4f6 ]
    
    This controller does not support EEE, but it may connect to a PHY
    which supports EEE and advertises EEE by default, while its link
    partner also advertises EEE. If this happens, the PHY enters low
    power mode when the traffic rate is low and causes packet loss.
    This patch disables EEE advertisement by default for any PHY that
    gianfar connects to, to prevent the above unwanted outcome.
    
    Signed-off-by: Shaohui Xie <Shaohui.Xie@nxp.com>
    Tested-by: Yangbo Lu <Yangbo.lu@nxp.com>
    Signed-off-by: Claudiu Manoil <claudiu.manoil@nxp.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2f12ea19faee9dc0b1d80a90630df47cbb6d5f5
Author: Eric Biggers <ebiggers3@gmail.com>
Date:   Fri Dec 8 15:13:28 2017 +0000

    509: fix printing uninitialized stack memory when OID is empty
    
    
    [ Upstream commit 8dfd2f22d3bf3ab7714f7495ad5d897b8845e8c1 ]
    
    Callers of sprint_oid() do not check its return value before printing
    the result.  In the case where the OID is zero-length, -EBADMSG was
    being returned without anything being written to the buffer, resulting
    in uninitialized stack memory being printed.  Fix this by writing
    "(bad)" to the buffer in the cases where -EBADMSG is returned.
    
    Fixes: 4f73175d0375 ("X.509: Add utility functions to render OIDs as strings")
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c65a55722acf228bdf194954fe02084c1f1eeb1
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Thu Dec 7 01:05:57 2017 +0100

    net: dsa: mv88e6xxx: Unregister MDIO bus on error path
    
    
    [ Upstream commit 3126aeec5313565bfa19e2dd8fd7e3c3390514cb ]
    
    The MDIO busses need to be unregistered before they are freed,
    otherwise BUG() is called. Add a call to the unregister code if the
    registration fails, since we can have multiple busses, of which some
    may correctly register before one fails. This requires moving the code
    around a little.
    
    Fixes: a3c53be55c95 ("net: dsa: mv88e6xxx: Support multiple MDIO busses")
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ef99ba03888ea4be143d0a9e9b401071d0fcbf8
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Thu Dec 7 01:05:56 2017 +0100

    net: dsa: mv88e6xxx: Fix interrupt masking on removal
    
    
    [ Upstream commit 3d5fdba1842bdd2eef29364c660558cb4cbb3fe0 ]
    
    When removing the interrupt handling code, we should mask the
    generation of interrupts. The code however unmasked all
    interrupts. This can then cause a new interrupt. We then get into a
    deadlock where the interrupt thread is waiting to run, and the code
    continues, trying to remove the interrupt handler, which means waiting
    for the thread to complete. On a UP machine this deadlocks.
    
    Fix so we really mask interrupts in the hardware. The same error is
    made in the error path when install the interrupt handling code.
    
    Fixes: 3460a5770ce9 ("net: dsa: mv88e6xxx: Mask g1 interrupts and free interrupt")
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 74875198a68e352a1e5d55abff956552a50b762d
Author: Branislav Radocaj <branislav@radocaj.org>
Date:   Thu Dec 7 00:07:38 2017 +0100

    net: ethernet: arc: fix error handling in emac_rockchip_probe
    
    
    [ Upstream commit e46772a6946a7d1f3fbbc1415871851d6651f1d4 ]
    
    If clk_set_rate() fails, we should disable clk before return.
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Branislav Radocaj <branislav@radocaj.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f04764307af8ae268b133c5066068246574a3e39
Author: Yunjian Wang <wangyunjian@huawei.com>
Date:   Mon Dec 4 14:02:19 2017 +0800

    virtio_net: fix return value check in receive_mergeable()
    
    
    [ Upstream commit 03e9f8a05bce7330bcd9c5cc54c8e42d0fcbf993 ]
    
    The function virtqueue_get_buf_ctx() could return NULL, the return
    value 'buf' need to be checked with NULL, not value 'ctx'.
    
    Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64313a130c3d79561b55a9d82e5b3ffb9353b824
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Thu Nov 23 17:57:04 2017 +0200

    brcmfmac: Avoid build error with make W=1
    
    
    [ Upstream commit 51ef7925e10688c57186d438e784532e063492e4 ]
    
    When I run make W=1 on gcc (Debian 7.2.0-16) 7.2.0 I got an error for
    the first run, all next ones are okay.
    
      CC [M]  drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.o
    drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:2078: error: Cannot parse struct or union!
    scripts/Makefile.build:310: recipe for target 'drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.o' failed
    
    Seems like something happened with W=1 and wrong kernel doc format.
    As a quick fix remove dubious /** in the code.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90b0805d6085a5d157b5a4488ca81ede00f1a065
Author: Nikolay Borisov <nborisov@suse.com>
Date:   Fri Dec 1 11:19:42 2017 +0200

    btrfs: Fix possible off-by-one in btrfs_search_path_in_tree
    
    
    [ Upstream commit c8bcbfbd239ed60a6562964b58034ac8a25f4c31 ]
    
    The name char array passed to btrfs_search_path_in_tree is of size
    BTRFS_INO_LOOKUP_PATH_MAX (4080). So the actual accessible char indexes
    are in the range of [0, 4079]. Currently the code uses the define but this
    represents an off-by-one.
    
    Implications:
    
    Size of btrfs_ioctl_ino_lookup_args is 4096, so the new byte will be
    written to extra space, not some padding that could be provided by the
    allocator.
    
    btrfs-progs store the arguments on stack, but kernel does own copy of
    the ioctl buffer and the off-by-one overwrite does not affect userspace,
    but the ending 0 might be lost.
    
    Kernel ioctl buffer is allocated dynamically so we're overwriting
    somebody else's memory, and the ioctl is privileged if args.objectid is
    not 256. Which is in most cases, but resolving a subvolume stored in
    another directory will trigger that path.
    
    Before this patch the buffer was one byte larger, but then the -1 was
    not added.
    
    Fixes: ac8e9819d71f907 ("Btrfs: add search and inode lookup ioctls")
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    [ added implications ]
    Signed-off-by: David Sterba <dsterba@suse.com>
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27b0dc31686b212fb1996ece086a184d5eaac624
Author: Omar Sandoval <osandov@fb.com>
Date:   Tue Dec 5 22:54:02 2017 -0800

    Btrfs: disable FUA if mounted with nobarrier
    
    
    [ Upstream commit 1b9e619c5bc8235cfba3dc4ced2fb0e3554a05d4 ]
    
    I was seeing disk flushes still happening when I mounted a Btrfs
    filesystem with nobarrier for testing. This is because we use FUA to
    write out the first super block, and on devices without FUA support, the
    block layer translates FUA to a flush. Even on devices supporting true
    FUA, using FUA when we asked for no barriers is surprising.
    
    Fixes: 387125fc722a8ed ("Btrfs: fix barrier flushes")
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8edc5b9772d04af3871f71c68aa8a5b468a27a72
Author: Justin Maggard <jmaggard10@gmail.com>
Date:   Mon Oct 30 15:29:10 2017 -0700

    btrfs: Fix quota reservation leak on preallocated files
    
    
    [ Upstream commit b430b7751286b3acff2d324553c8cec4f1e87764 ]
    
    Commit c6887cd11149 ("Btrfs: don't do nocow check unless we have to")
    changed the behavior of __btrfs_buffered_write() so that it first tries
    to get a data space reservation, and then skips the relatively expensive
    nocow check if the reservation succeeded.
    
    If we have quotas enabled, the data space reservation also includes a
    quota reservation.  But in the rewrite case, the space has already been
    accounted for in qgroups.  So btrfs_check_data_free_space() increases
    the quota reservation, but it never gets decreased when the data
    actually gets written and overwrites the pre-existing data.  So we're
    left with both the qgroup and qgroup reservation accounting for the same
    space.
    
    This commit adds the missing btrfs_qgroup_free_data() call in the case
    of BTRFS_ORDERED_PREALLOC extents.
    
    Fixes: c6887cd11149 ("Btrfs: don't do nocow check unless we have to")
    Signed-off-by: Justin Maggard <jmaggard@netgear.com>
    Reviewed-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a59eb84df2b793856fd3ba2eaca4098e95231058
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Dec 6 17:32:47 2017 +0100

    locking/lockdep: Fix possible NULL deref
    
    
    [ Upstream commit 5e351ad106997e06b2dc3da9c6b939b95f67fb88 ]
    
    We can't invalidate xhlocks when we've not yet allocated any.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-kernel@vger.kernel.org
    Fixes: f52be5708076 ("locking/lockdep: Untangle xhlock history save/restore from task independence")
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0aeed5daaf62a38261f1198e4491c0ebf59528d9
Author: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
Date:   Tue Dec 5 13:41:17 2017 -0700

    net: qualcomm: rmnet: Fix leak on transmit failure
    
    
    [ Upstream commit c20a548792f15f8d8e38cd74356301c6db0d241f ]
    
    If a skb in transmit path does not have sufficient headroom to add
    the map header, the skb is not sent out and is never freed.
    
    Fixes: ceed73a2cf4a ("drivers: net: ethernet: qualcomm: rmnet: Initial implementation")
    Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8172a467adaebddf2577d79ccdbacdcc54ee9cbf
Author: Jim Mattson <jmattson@google.com>
Date:   Fri Dec 1 09:57:56 2017 -0800

    KVM: VMX: fix page leak in hardware_setup()
    
    
    [ Upstream commit 2895db67b01cb875457c9c3f30a14723b6b5dfd5 ]
    
    vmx_io_bitmap_b should not be allocated twice.
    
    Fixes: 23611332938d ("KVM: VMX: refactor setup of global page-sized bitmaps")
    Signed-off-by: Jim Mattson <jmattson@google.com>
    Reviewed-by: Krish Sadhukhan <krish.sadhukhan@oracle.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 034ddb54c33ecfb3408bd87415eb8f07712895b5
Author: Stefan Hajnoczi <stefanha@redhat.com>
Date:   Tue Dec 5 11:31:14 2017 +0000

    VSOCK: fix outdated sk_state value in hvs_release()
    
    
    [ Upstream commit c9d3fe9da094a9a7a3d3cd365b334b822e05f5e8 ]
    
    Since commit 3b4477d2dcf2709d0be89e2a8dced3d0f4a017f2 ("VSOCK: use TCP
    state constants for sk_state") VSOCK has used TCP_* constants for
    sk_state.
    
    Commit b4562ca7925a3bedada87a3dd072dd5bad043288 ("hv_sock: add locking
    in the open/close/release code paths") reintroduced the SS_DISCONNECTING
    constant.
    
    This patch replaces the old SS_DISCONNECTING with the new TCP_CLOSING
    constant.
    
    CC: Dexuan Cui <decui@microsoft.com>
    CC: Cathy Avery <cavery@redhat.com>
    Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
    Reviewed-by: Jorgen Hansen <jhansen@vmware.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8001a37b83c4b716936a40ab451b75d9f43d0c6b
Author: Nogah Frankel <nogahf@mellanox.com>
Date:   Mon Dec 4 13:31:11 2017 +0200

    net_sched: red: Avoid illegal values
    
    
    [ Upstream commit 8afa10cbe281b10371fee5a87ab266e48d71a7f9 ]
    
    Check the qmin & qmax values doesn't overflow for the given Wlog value.
    Check that qmin <= qmax.
    
    Fixes: a783474591f2 ("[PKT_SCHED]: Generic RED layer")
    Signed-off-by: Nogah Frankel <nogahf@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e428e8ce3a008852e56e25c2fab4bc14c9f16915
Author: Nogah Frankel <nogahf@mellanox.com>
Date:   Mon Dec 4 13:31:10 2017 +0200

    net_sched: red: Avoid devision by zero
    
    
    [ Upstream commit 5c472203421ab4f928aa1ae9e1dbcfdd80324148 ]
    
    Do not allow delta value to be zero since it is used as a divisor.
    
    Fixes: 8af2a218de38 ("sch_red: Adaptative RED AQM")
    Signed-off-by: Nogah Frankel <nogahf@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e95c4f921770c62b4c7f88b2b9da7bccaa6514e
Author: Zumeng Chen <zumeng.chen@gmail.com>
Date:   Mon Dec 4 11:22:02 2017 +0800

    gianfar: fix a flooded alignment reports because of padding issue.
    
    
    [ Upstream commit 58117672943734715bbe7565ac9f062effa524f0 ]
    
    According to LS1021A RM, the value of PAL can be set so that the start of the
    IP header in the receive data buffer is aligned to a 32-bit boundary. Normally,
    setting PAL = 2 provides minimal padding to ensure such alignment of the IP
    header.
    
    However every incoming packet's 8-byte time stamp will be inserted into the
    packet data buffer as padding alignment bytes when hardware time stamping is
    enabled.
    
    So we set the padding 8+2 here to avoid the flooded alignment faults:
    
    root@128:~# cat /proc/cpu/alignment
    User:           0
    System:         17539 (inet_gro_receive+0x114/0x2c0)
    Skipped:        0
    Half:           0
    Word:           0
    DWord:          0
    Multi:          17539
    User faults:    2 (fixup)
    
    Also shown when exception report enablement
    
    CPU: 0 PID: 161 Comm: irq/66-eth1_g0_ Not tainted 4.1.21-rt13-WR8.0.0.0_preempt-rt #16
    Hardware name: Freescale LS1021A
    [<8001b420>] (unwind_backtrace) from [<8001476c>] (show_stack+0x20/0x24)
    [<8001476c>] (show_stack) from [<807cfb48>] (dump_stack+0x94/0xac)
    [<807cfb48>] (dump_stack) from [<80025d70>] (do_alignment+0x720/0x958)
    [<80025d70>] (do_alignment) from [<80009224>] (do_DataAbort+0x40/0xbc)
    [<80009224>] (do_DataAbort) from [<80015398>] (__dabt_svc+0x38/0x60)
    Exception stack(0x86ad1cc0 to 0x86ad1d08)
    1cc0: f9b3e080 86b3d072 2d78d287 00000000 866816c0 86b3d05e 86e785d0 00000000
    1ce0: 00000011 0000000e 80840ab0 86ad1d3c 86ad1d08 86ad1d08 806d7fc0 806d806c
    1d00: 40070013 ffffffff
    [<80015398>] (__dabt_svc) from [<806d806c>] (inet_gro_receive+0x114/0x2c0)
    [<806d806c>] (inet_gro_receive) from [<80660eec>] (dev_gro_receive+0x21c/0x3c0)
    [<80660eec>] (dev_gro_receive) from [<8066133c>] (napi_gro_receive+0x44/0x17c)
    [<8066133c>] (napi_gro_receive) from [<804f0538>] (gfar_clean_rx_ring+0x39c/0x7d4)
    [<804f0538>] (gfar_clean_rx_ring) from [<804f0bf4>] (gfar_poll_rx_sq+0x58/0xe0)
    [<804f0bf4>] (gfar_poll_rx_sq) from [<80660b10>] (net_rx_action+0x27c/0x43c)
    [<80660b10>] (net_rx_action) from [<80033638>] (do_current_softirqs+0x1e0/0x3dc)
    [<80033638>] (do_current_softirqs) from [<800338c4>] (__local_bh_enable+0x90/0xa8)
    [<800338c4>] (__local_bh_enable) from [<8008025c>] (irq_forced_thread_fn+0x70/0x84)
    [<8008025c>] (irq_forced_thread_fn) from [<800805e8>] (irq_thread+0x16c/0x244)
    [<800805e8>] (irq_thread) from [<8004e490>] (kthread+0xe8/0x104)
    [<8004e490>] (kthread) from [<8000fda8>] (ret_from_fork+0x14/0x2c)
    
    Signed-off-by: Zumeng Chen <zumeng.chen@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4bbd45c38ed6d0ded82ab453a1395f110814c389
Author: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
Date:   Fri Dec 1 21:37:23 2017 -0800

    nfp: fix port stats for mac representors
    
    
    [ Upstream commit 42d779ffc186f6dd26271fc60a7417cb51aca93e ]
    
    Previously we swapped the tx_packets, tx_bytes and tx_dropped counters
    with rx_packets, rx_bytes and rx_dropped counters, respectively. This
    behaviour is correct and expected for VF representors but it should not
    be swapped for physical port mac representors.
    
    Fixes: eadfa4c3be99 ("nfp: add stats and xmit helpers for representors")
    Signed-off-by: Pieter Jansen van Vuuren <pieter.jansenvanvuuren@netronome.com>
    Reviewed-by: Simon Horman <simon.horman@netronome.com>
    Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45f9e44667c135f629c8e965a788b4f9030289f1
Author: Tony Lindgren <tony@atomide.com>
Date:   Mon Dec 4 08:27:17 2017 -0800

    ARM: dts: Fix elm interrupt compiler warning
    
    
    [ Upstream commit d364b038bc962f494cffb8f6cb6cddbe41bcb5b6 ]
    
    Looks like the interrupt property is missing the controller and level
    information causing:
    
    Warning (interrupts_property): interrupts size is (4), expected multiple
    of 12 in /ocp/elm@48078000
    
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29c9acbc7463e8d94c6527ba46ce3e1b6366a4ca
Author: Stefan Haberland <sth@linux.vnet.ibm.com>
Date:   Thu Oct 26 14:37:35 2017 +0200

    s390/dasd: prevent prefix I/O error
    
    
    [ Upstream commit da340f921d3454f1521671c7a5a43ad3331fbe50 ]
    
    Prevent that a prefix flag is set based on invalid configuration data.
    The validity.verify_base flag should only be set for alias devices.
    Usually the unit address type is either one of base, PAV alias or
    HyperPAV alias. But in cases where the unit address type is not set or
    any other value the validity.verify_base flag might be set as well.
    This would lead to follow on errors.
    Explicitly check for alias devices and set the validity flag only for
    them.
    
    Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
    Reviewed-by: Jan Hoeppner <hoeppner@linux.vnet.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dfb48332d6021a854160a1f5e131c3258b9f60f0
Author: Michael S. Tsirkin <mst@redhat.com>
Date:   Tue Nov 28 16:11:29 2017 +0200

    s390/virtio: add BSD license to virtio-ccw
    
    
    [ Upstream commit edfb8d8fcb94a75b2e61c63549d4a5f6474ad3d2 ]
    
    The original intent of the virtio header relicensing
    from 2008 was to make sure anyone can implement compatible
    devices/drivers. The virtio-ccw was omitted by mistake.
    
    We have an ack from the only contributor as well as the
    maintainer from IBM, so it's not too late to fix that.
    
    Make it dual-licensed with GPLv2, as the whole kernel is GPL2.
    
    Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Acked-by: Cornelia Huck <cohuck@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0b028b06afc9b2acbae933fa1fd3be120252a4d3
Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Date:   Fri Dec 1 14:58:34 2017 +0100

    PM / runtime: Fix handling of suppliers with disabled runtime PM
    
    
    [ Upstream commit 31eb7431805493e10f4731f366cf4d4e3e952035 ]
    
    Prevent rpm_get_suppliers() from returning an error code if runtime
    PM is disabled for one or more of the supplier devices it wants to
    runtime-resume, so as to make runtime PM work for devices with links
    to suppliers that don't use runtime PM (such links may be created
    during device enumeration even before it is known whether or not
    runtime PM will be enabled for the devices in question, for example).
    
    Fixes: 21d5c57b3726 (PM / runtime: Use device links)
    Reported-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Reviewed-by: Lukas Wunner <lukas@wunner.de>
    Tested-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8b9d371a8c01c9ee321f87559f66f207e85a18c5
Author: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
Date:   Thu Nov 30 14:03:22 2017 +0530

    powerpc/perf: Fix oops when grouping different pmu events
    
    
    [ Upstream commit 5aa04b3eb6fca63d2e9827be656dcadc26d54e11 ]
    
    When user tries to group imc (In-Memory Collections) event with
    normal event, (sometime) kernel crashes with following log:
    
        Faulting instruction address: 0x00000000
        [link register   ] c00000000010ce88 power_check_constraints+0x128/0x980
        ...
        c00000000010e238 power_pmu_event_init+0x268/0x6f0
        c0000000002dc60c perf_try_init_event+0xdc/0x1a0
        c0000000002dce88 perf_event_alloc+0x7b8/0xac0
        c0000000002e92e0 SyS_perf_event_open+0x530/0xda0
        c00000000000b004 system_call+0x38/0xe0
    
    'event_base' field of 'struct hw_perf_event' is used as flags for
    normal hw events and used as memory address for imc events. While
    grouping these two types of events, collect_events() tries to
    interpret imc 'event_base' as a flag, which causes a corruption
    resulting in a crash.
    
    Consider only those events which belongs to 'perf_hw_context' in
    collect_events().
    
    Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Reviewed-By: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30791140de2148c5fd1bd82e0ba986dd1c9e3441
Author: Greg Ungerer <gerg@linux-m68k.org>
Date:   Tue Nov 14 11:50:07 2017 +1000

    m68k: add missing SOFTIRQENTRY_TEXT linker section
    
    
    [ Upstream commit 969de0988b77e5a57aac2f7270191a3c50540c52 ]
    
    Commit be7635e7287e ("arch, ftrace: for KASAN put hard/soft IRQ entries
    into separate sections") added a new linker section, SOFTIRQENTRY_TEXT,
    to the linker scripts for most architectures. It didn't add it to any of
    the linker scripts for the m68k architecture. This was not really a problem
    because it is only defined if either of CONFIG_FUNCTION_GRAPH_TRACER or
    CONFIG_KASAN are enabled - which can never be true for m68k.
    
    However commit 229a71860547 ("irq: Make the irqentry text section
    unconditional") means that SOFTIRQENTRY_TEXT is now always defined. So on
    m68k we now end up with a separate ELF section for .softirqentry.text
    instead of it being part of the .text section. On some m68k targets in some
    configurations this can also cause a fatal link error:
    
      LD      vmlinux
    /usr/local/bin/../m68k-uclinux/bin/ld.real: section .softirqentry.text loaded at [0000000010de10c0,0000000010de12dd] overlaps section .rodata loaded at [0000000010de10c0,0000000010e0fd67]
    
    To fix add in the missing SOFTIRQENTRY_TEXT section into the m68k linker
    scripts. I noticed that m68k is also missing the IRQENTRY_TEXT section,
    so this patch also adds an entry for that too.
    
    Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae5a0acea27346c1b32ab82ba6409adf15384fb1
Author: Gao Feng <gfree.wind@vip.163.com>
Date:   Fri Dec 1 09:58:42 2017 +0800

    ipvlan: Add the skb->mark as flow4's member to lookup route
    
    
    [ Upstream commit a98a4ebc8c61d20f0150d6be66e0e65223a347af ]
    
    Current codes don't use skb->mark to assign flowi4_mark, it would
    make the policy route rule with fwmark doesn't work as expected.
    
    Signed-off-by: Gao Feng <gfree.wind@vip.163.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b35e7321347a0ff2f06516f85797e35e277ea8b5
Author: Ray Jui <ray.jui@broadcom.com>
Date:   Fri Dec 1 03:13:02 2017 -0500

    bnxt_en: Need to unconditionally shut down RoCE in bnxt_shutdown
    
    
    [ Upstream commit a7f3f939dd7d8398acebecd1ceb2e9e7ffbe91d2 ]
    
    The current 'bnxt_shutdown' implementation only invokes
    'bnxt_ulp_shutdown' to shut down RoCE in the case when the system is in
    the path of power off (SYSTEM_POWER_OFF). While this may work in most
    cases, it does not work in the smart NIC case, when Linux 'reboot'
    command is initiated from the Linux that runs on the ARM cores of the
    NIC card. In this particular case, Linux 'reboot' results in a system
    'L3' level reset where the entire ARM and associated subsystems are
    being reset, but at the same time, Nitro core is being kept in sane state
    (to allow external PCIe connected servers to continue to work). Without
    properly shutting down RoCE and freeing all associated resources, it
    results in the ARM core to hang immediately after the 'reboot'
    
    By always invoking 'bnxt_ulp_shutdown' in 'bnxt_shutdown', it fixes the
    above issue
    
    Fixes: 0efd2fc65c92 ("bnxt_en: Add a callback to inform RDMA driver during PCI shutdown.")
    
    Signed-off-by: Ray Jui <ray.jui@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9537ff76fa06b7dfac07a6634d213282d6406fec
Author: Will Deacon <will.deacon@arm.com>
Date:   Wed Nov 29 15:20:03 2017 +0000

    scripts/kernel-doc: Don't fail with status != 0 if error encountered with -none
    
    
    [ Upstream commit e814bccbafece52a24e152d2395b5d49eef55841 ]
    
    My bisect scripts starting running into build failures when trying to
    compile 4.15-rc1 with the builds failing with things like:
    
    drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c:2078: error: Cannot parse struct or union!
    
    The line in question is actually just a #define, but after some digging
    it turns out that my scripts pass W=1 and since commit 3a025e1d1c2ea
    ("Add optional check for bad kernel-doc comments") that results in
    kernel-doc running on each source file. The file in question has a
    badly formatted comment immediately before the #define:
    
    /**
     * struct brcmf_skbuff_cb reserves first two bytes in sk_buff::cb for
     * bus layer usage.
     */
    
    which causes the regex in dump_struct to fail (lack of braces following
    struct declaration) and kernel-doc returns 1, which causes the build
    to fail.
    
    Fix the issue by always returning 0 from kernel-doc when invoked with
    -none. It successfully generates no documentation, and prints out any
    issues.
    
    Cc: Matthew Wilcox <mawilcox@microsoft.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Jonathan Corbet <corbet@lwn.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0d049e9131406607cabe6e508463584613fb36e
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Sun Oct 29 17:06:01 2017 -0700

    iio: fix kernel-doc build errors
    
    
    [ Upstream commit c175cb7cd953782bbf4e8bdf088ad61440d6dde5 ]
    
    Fix build errors in kernel-doc notation. Symbols that end in '_'
    have a special meaning, but adding a '*' makes them OK.
    
    ../drivers/iio/industrialio-core.c:635: ERROR: Unknown target name: "iio_val".
    ../drivers/iio/industrialio-core.c:642: ERROR: Unknown target name: "iio_val".
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c5ae538b3da25b47c0b8c87209697ea46579641
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Fri Nov 3 15:03:36 2017 +0200

    iio: proximity: sx9500: Assign interrupt from GpioIo()
    
    
    [ Upstream commit e53111ad5deaef98d8c18a9933ef1f5624c5979d ]
    
    The commit 0f0796509c07
    
    ("iio: remove gpio interrupt probing from drivers that use a single interrupt")
    
    removed custom IRQ assignment for the drivers which are enumerated via
    ACPI or OF. Unfortunately, some ACPI tables have IRQ line defined as
    GpioIo() resource and thus automatic IRQ allocation will fail.
    
    Partially revert the commit 0f0796509c07 to restore original behaviour.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 567c1f767ef4b8fcd96dcf1599b36dbce94d3c14
Author: Shaohua Li <shli@fb.com>
Date:   Fri Dec 1 12:12:34 2017 -0800

    md/raid1/10: add missed blk plug
    
    
    [ Upstream commit 18022a1bd3709b74ca31ef0b28fccd52bcd6c504 ]
    
    flush_pending_writes isn't always called with block plug, so add it, and plug
    works in nested way.
    
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86659fbb32a5f6d4c97e6f9058bf3f65d7501049
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Thu Nov 30 13:59:26 2017 +0000

    phylink: ensure we take the link down when phylink_stop() is called
    
    
    [ Upstream commit 2012b7d6b2868c532f22d9172c8b24611637eb48 ]
    
    Ensure that we tell the MAC to take the link down when phylink_stop()
    is called, and that this completes prior to phylink_stop() returns.
    
    Reported-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 778e7124f71dc42e0863c21aefd99b7c2155a4b8
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Thu Nov 30 13:59:11 2017 +0000

    sfp: fix RX_LOS signal handling
    
    
    [ Upstream commit acf1c02f023926b8b04672a9e81b1711ae681619 ]
    
    The options word is a be16 quantity, so we need to test the flags
    having converted the endian-ness.  Convert the flag bits to be16,
    which can be optimised by the compiler, rather than converting a
    variable at runtime.
    
    Reported-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a7bcee6d73cb8c1c22b18c709496af767d8dc46
Author: Xin Long <lucien.xin@gmail.com>
Date:   Sat Nov 25 21:18:34 2017 +0800

    sctp: only update outstanding_bytes for transmitted queue when doing prsctp_prune
    
    
    [ Upstream commit d30fc5126efb0c33b7adf5966d3051db2c3d7721 ]
    
    Now outstanding_bytes is only increased when appending chunks into one
    packet and sending it at 1st time, while decreased when it is about to
    move into retransmit queue. It means outstanding_bytes value is already
    decreased for all chunks in retransmit queue.
    
    However sctp_prsctp_prune_sent is a common function to check the chunks
    in both transmitted and retransmit queue, it decrease outstanding_bytes
    when moving a chunk into abandoned queue from either of them.
    
    It could cause outstanding_bytes underflow, as it also decreases it's
    value for the chunks in retransmit queue.
    
    This patch fixes it by only updating outstanding_bytes for transmitted
    queue when pruning queues for prsctp prio policy, the same fix is also
    needed in sctp_check_transmitted.
    
    Fixes: 8dbdf1f5b09c ("sctp: implement prsctp PRIO policy")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 559be170a4702d6546141584e5e784f9da9f8fe6
Author: bingjingc <bingjingc@synology.com>
Date:   Fri Nov 17 10:57:44 2017 +0800

    md/raid5: correct degraded calculation in raid5_error
    
    
    [ Upstream commit aff69d89bdebc39235cddb4445371eb979b49685 ]
    
    When disk failure occurs on new disks for reshape, mddev->degraded
    is not calculated correctly. Faulty bit of the failure device is not
    set before raid5_calc_degraded(conf).
    
    mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/loop[012]
    mdadm /dev/md0 -a /dev/loop3
    mdadm /dev/md0 --grow -n4
    mdadm /dev/md0 -f /dev/loop3 # simulating disk failure
    
    cat /sys/block/md0/md/degraded # it outputs 0, but it should be 1.
    
    However, mdadm -D /dev/md0 will show that it is degraded. It's a bug.
    It can be fixed by moving the resources raid5_calc_degraded() depends
    on before it.
    
    Reported-by: Roy Chung <roychung@synology.com>
    Reviewed-by: Alex Wu <alexwu@synology.com>
    Signed-off-by: BingJing Chang <bingjingc@synology.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ded534c9074c8e8df4636e617f778618c695593
Author: Dmitry Monakhov <dmonakhov@openvz.org>
Date:   Mon Nov 27 13:39:05 2017 +0000

    IB/core: Init subsys if compiled to vmlinuz-core
    
    
    [ Upstream commit a9cd1a673737dd81332fce1145801bfacfb90d90 ]
    
    Once infiniband is compiled as a core component its subsystem must be
    enabled before device initialization. Otherwise there is a NULL pointer
    dereference during mlx4_core init, calltrace:
    ->device_add
      if (dev->class) {
         deref  dev->class->p =>NULLPTR
    
    #Config
    CONFIG_NET_DEVLINK=y
    CONFIG_MAY_USE_DEVLINK=y
    CONFIG_MLX4_EN=y
    
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ffc1b361ac23ee73efd87f5fc812d5e39e06b2e
Author: Moni Shoua <monis@mellanox.com>
Date:   Sun Nov 26 20:23:54 2017 +0200

    RDMA/cma: Make sure that PSN is not over max allowed
    
    
    [ Upstream commit 23a9cd2ad90543e9da3786878d2b2729c095439d ]
    
    This patch limits the initial value for PSN to 24 bits as
    spec requires.
    
    Signed-off-by: Moni Shoua <monis@mellanox.com>
    Signed-off-by: Mukesh Kacker <mukesh.kacker@oracle.com>
    Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
    Reviewed-by: Parav Pandit <parav@mellanox.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f917b1c60e4a5570886976c1baac8980c41e9d66
Author: Mustafa Ismail <mustafa.ismail@intel.com>
Date:   Tue Nov 21 16:18:32 2017 -0600

    i40iw: Correct ARP index mask
    
    
    [ Upstream commit a283cdc4d3670700182c820b59078387f9a01a30 ]
    
    The ARP table entry indexes are aliased to 12bits
    instead of the intended 16bits when uploaded to
    the QP Context. This will present an issue when the
    number of connections exceeds 4096 as ARP entries are
    reused. Fix this by adjusting the mask to account for
    the full 16bits.
    
    Fixes: 4e9042e647ff ("i40iw: add hw and utils files")
    Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
    Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03f23424aa2b2809275db1b535862b9d8ddc7056
Author: Mustafa Ismail <mustafa.ismail@intel.com>
Date:   Tue Nov 21 16:18:31 2017 -0600

    i40iw: Do not free sqbuf when event is I40IW_TIMER_TYPE_CLOSE
    
    
    [ Upstream commit 10499986dbd8778e1acf9f9d2e166800dfee44b4 ]
    
    When the event type is I40IW_TIMER_TYPE_CLOSE, there is no sqbuf and
    it should not be freed as one in i40iw_schedule_cm_timer().
    
    Fixes: f27b4746f378 ("i40iw: add connection management code")
    Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
    Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f10f5b89c13635c32ebf6435c7849aef46e2ef4e
Author: Chien Tin Tung <chien.tin.tung@intel.com>
Date:   Tue Nov 21 16:18:30 2017 -0600

    i40iw: Allocate a sdbuf per CQP WQE
    
    
    [ Upstream commit 100d6de2ced538c539d923dc14a1b5cbae234503 ]
    
    Currently there is only one sdbuf per Control QP (CQP) for
    programming Segment Descriptor (SD). If multiple SD work
    requests are posted simultaneously, the sdbuf is reused
    by all WQEs and new WQEs can corrupt previous WQEs sdbuf
    leading to incorrect SD programming.
    
    Fix this by allocating one sdbuf per CQP SQ WQE. When an
    SD command is posted, it will use the corresponding sdbuf
    for the WQE.
    
    Fixes: 86dbcd0f12e9 ("i40iw: add file to handle cqp calls")
    Signed-off-by: Chien Tin Tung <chien.tin.tung@intel.com>
    Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97ef3a5027b043bcb6a9c4aeefdcbfe4cf6221f7
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Thu Nov 30 17:00:30 2017 +0000

    KVM: arm/arm64: Fix spinlock acquisition in vgic_set_owner
    
    
    [ Upstream commit 7465894e90e5a47e0e52aa5f1f708653fc40020f ]
    
    vgic_set_owner acquires the irq lock without disabling interrupts,
    resulting in a lockdep splat (an interrupt could fire and result
    in the same lock being taken if the same virtual irq is to be
    injected).
    
    In practice, it is almost impossible to trigger this bug, but
    better safe than sorry. Convert the lock acquisition to a
    spin_lock_irqsave() and keep lockdep happy.
    
    Reported-by: James Morse <james.morse@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2117bba3cfbb120dee072a11aba4a116f316dff5
Author: Arnaud Patard <arnaud.patard@rtp-net.org>
Date:   Wed Nov 29 16:09:46 2017 +0100

    meson-gx-socinfo: Fix package id parsing
    
    
    [ Upstream commit 044d71bc6cdee8980d0fdc35ec79a0d5818b2ce3 ]
    
    I've noticed the following message while booting a S905X based board:
    
    soc soc0: Amlogic Meson GXL (S905D) Revision 21:82 (b:2) Detected
    
    The S905D string is obviously wrong. The vendor code does:
    ...
            ver = (readl(assist_hw_rev) >> 8) & 0xff;
            meson_cpu_version[MESON_CPU_VERSION_LVL_MINOR] = ver;
            ver =  (readl(assist_hw_rev) >> 16) & 0xff;
            meson_cpu_version[MESON_CPU_VERSION_LVL_PACK] = ver;
    ...
    
    while the current code does:
    ...
    ...
    
    This means that the current mainline code has package id and minor
    version reversed.
    
    Fixes: a9daaba2965e8 ("soc: Add Amlogic SoC Information driver")
    Signed-off-by: Arnaud Patard <apatard@hupstream.com>
    Acked-by: Neil Armstrong <narmstrong@baylibre.com>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 844dfa1b41887029fce142f83cae07dfb9e6e86e
Author: Dennis Dalessandro <dennis.dalessandro@intel.com>
Date:   Tue Nov 14 04:34:23 2017 -0800

    IB/hfi1: Initialize bth1 in 16B rc ack builder
    
    
    [ Upstream commit 8935780b9f7bbad0f2eb5dd43f61ba7b509a1575 ]
    
    It is possible the bth1 variable could be used uninitialized so going
    ahead and giving it a default value.
    
    Otherwise we leak stack memory to the network.
    
    Fixes: 5b6cabb0db77 ("IB/hfi1: Add 16B RC/UC support")
    Reviewed-by: Don Hiatt <don.hiatt@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04521caaea964d627d4c969da7887935150d7280
Author: Andre Przywara <andre.przywara@arm.com>
Date:   Sat Nov 25 12:12:30 2017 +0000

    pinctrl: sunxi: Fix A64 UART mux value
    
    
    [ Upstream commit 7c5c2c2d18d778e51fd8b899965097168306031c ]
    
    To use pin PF4 as the RX signal of UART0, we have to write 0b011 into
    the respective pin controller register.
    Fix the wrong value we had in our table so far.
    
    Fixes: 96851d391d02 ("drivers: pinctrl: add driver for Allwinner A64 SoC")
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Acked-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1f0445d07f356a1b79c2fc6a370d755f703bc5e
Author: Andre Przywara <andre.przywara@arm.com>
Date:   Sat Nov 25 12:19:48 2017 +0000

    pinctrl: sunxi: Fix A80 interrupt pin bank
    
    
    [ Upstream commit 6ad4cc8d1ac483e0fd33f605fb2788b0ecf51ed4 ]
    
    On the A80 the pins on port B can trigger interrupts, and those are
    assigned to the second interrupt bank.
    Having two pins assigned to the same interrupt bank/pin combination does
    not look healthy (instead more like a copy&paste bug from pins PA14-PA16),
    so fix the interrupt bank for pins PB14-PB16, which is actually 1.
    
    I don't have any A80 board, so could not test this.
    
    Fixes: d5e9fb31baa2 ("pinctrl: sunxi: Add A80 pinctrl muxing options")
    Signed-off-by: Andre Przywara <andre.przywara@arm.com>
    Acked-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 073cd31e2fd18de990c6a1617c6c281eb6fb8ba3
Author: Keerthy <j-keerthy@ti.com>
Date:   Fri Nov 10 16:43:17 2017 +0530

    gpio: davinci: Assign first bank regs for unbanked case
    
    
    [ Upstream commit 7f8e2a85c1b0bd440ffe87be82c79fdc319e8291 ]
    
    As per the re-design assign the first bank regs for unbanked
    irq case. This was missed out in the original patch.
    
    Signed-off-by: Keerthy <j-keerthy@ti.com>
    Fixes: b5cf3fd827d2e1 ("gpio: davinci: Redesign driver to accommodate ngpios in one gpio chip")
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c194e5b0d90869a2fad206d106d524ba1c9232b
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Nov 21 15:18:10 2017 +0100

    gpio: 74x164: Fix crash during .remove()
    
    
    [ Upstream commit a158531f3c92467df0e93e000d58185acae78a6e ]
    
    Commit 7ebc194d0fd4bb0f ("gpio: 74x164: Introduce 'enable-gpios'
    property") added a new member gpiod_oe to the end of the struct
    gen_74x164_chip, after the zero-length buffer array.
    
    However, this buffer is a flexible array, allocated together with the
    structure during .probe().  As the buffer is no longer the last member,
    writing to it corrupts the newly added member after it.
    During device removal, the corrupted member will be used as a pointer,
    leading to a crash.
    
    This went unnoticed, as the flexible array was declared as "buffer[0]"
    instead of "buffer[]", and thus did not trigger a "flexible array member
    not at end of struct" error from gcc.
    
    Move the gpiod_oe field up to fix this, and drop the zero from the array
    size to prevent future similar bugs.
    
    Fixes: 7ebc194d0fd4bb0f ("gpio: 74x164: Introduce 'enable-gpios' property")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4ec37fab6008e17a1f2af26db8c6a801c9f7ec6
Author: Yan Markman <ymarkman@marvell.com>
Date:   Thu Nov 30 10:49:46 2017 +0100

    net: mvpp2: allocate zeroed tx descriptors
    
    
    [ Upstream commit a154f8e399a063137fc42b961f437248d55ece29 ]
    
    Reserved and unused fields in the Tx descriptors should be 0. The PPv2
    driver doesn't clear them at run-time (for performance reasons) but
    these descriptors aren't zeroed when allocated, which can lead to
    unpredictable behaviors. This patch fixes this by using
    dma_zalloc_coherent instead of dma_alloc_coherent.
    
    Fixes: 3f518509dedc ("ethernet: Add new driver for Marvell Armada 375 network unit")
    Signed-off-by: Yan Markman <ymarkman@marvell.com>
    [Antoine: commit message]
    Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 801f3b0c40da62ddc27dbd3e06331c8144cf394e
Author: Sakari Ailus <sakari.ailus@linux.intel.com>
Date:   Sun Nov 5 17:51:00 2017 -0500

    media: ov13858: Select V4L2_FWNODE
    
    
    [ Upstream commit fce8ba670b7418319da14a6fc6668db1f1a96267 ]
    
    The ov13858 driver depends on the V4L2 fwnode, thus add that to Kconfig.
    
    Fixes: 5fcf092e0c9f ("[media] ov13858: add support for OV13858 sensor")
    
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8c033b1f4bfda9315bf35063530cff79dec8f28
Author: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Date:   Wed Nov 29 08:44:41 2017 -0500

    media: s5k6aa: describe some function parameters
    
    
    [ Upstream commit 070250a1715cee2297de0d9e7e2cea58be999d37 ]
    
    as warned:
      drivers/media/i2c/s5k6aa.c:429: warning: No description found for parameter 's5k6aa'
      drivers/media/i2c/s5k6aa.c:679: warning: No description found for parameter 's5k6aa'
      drivers/media/i2c/s5k6aa.c:733: warning: No description found for parameter 's5k6aa'
      drivers/media/i2c/s5k6aa.c:733: warning: No description found for parameter 'preset'
      drivers/media/i2c/s5k6aa.c:787: warning: No description found for parameter 'sd'
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2dc548c0671dc614358f6fc2ca98ad2d5e149593
Author: Xie XiuQi <xiexiuqi@huawei.com>
Date:   Thu Nov 30 09:41:29 2017 +0800

    trace/xdp: fix compile warning: 'struct bpf_map' declared inside parameter list
    
    
    [ Upstream commit 23721a755f98ac846897a013c92cccb281c1bcc8 ]
    
    We meet this compile warning, which caused by missing bpf.h in xdp.h.
    
    In file included from ./include/trace/events/xdp.h:10:0,
                     from ./include/linux/bpf_trace.h:6,
                     from drivers/net/ethernet/intel/i40e/i40e_txrx.c:29:
    ./include/trace/events/xdp.h:93:17: warning: ‘struct bpf_map’ declared inside parameter list will not be visible outside of this definition or declaration
        const struct bpf_map *map, u32 map_index),
                     ^
    ./include/linux/tracepoint.h:187:34: note: in definition of macro ‘__DECLARE_TRACE’
      static inline void trace_##name(proto)    \
                                      ^~~~~
    ./include/linux/tracepoint.h:352:24: note: in expansion of macro ‘PARAMS’
      __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args),  \
                            ^~~~~~
    ./include/linux/tracepoint.h:477:2: note: in expansion of macro ‘DECLARE_TRACE’
      DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
      ^~~~~~~~~~~~~
    ./include/linux/tracepoint.h:477:22: note: in expansion of macro ‘PARAMS’
      DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
                          ^~~~~~
    ./include/trace/events/xdp.h:89:1: note: in expansion of macro ‘DEFINE_EVENT’
     DEFINE_EVENT(xdp_redirect_template, xdp_redirect,
     ^~~~~~~~~~~~
    ./include/trace/events/xdp.h:90:2: note: in expansion of macro ‘TP_PROTO’
      TP_PROTO(const struct net_device *dev,
      ^~~~~~~~
    ./include/trace/events/xdp.h:93:17: warning: ‘struct bpf_map’ declared inside parameter list will not be visible outside of this definition or declaration
        const struct bpf_map *map, u32 map_index),
                     ^
    ./include/linux/tracepoint.h:203:38: note: in definition of macro ‘__DECLARE_TRACE’
      register_trace_##name(void (*probe)(data_proto), void *data) \
                                          ^~~~~~~~~~
    ./include/linux/tracepoint.h:354:4: note: in expansion of macro ‘PARAMS’
        PARAMS(void *__data, proto),   \
        ^~~~~~
    
    Reported-by: Huang Daode <huangdaode@hisilicon.com>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Fixes: 8d3b778ff544 ("xdp: tracepoint xdp_redirect also need a map argument")
    Signed-off-by: Xie XiuQi <xiexiuqi@huawei.com>
    Acked-by: Jesper Dangaard Brouer <brouer@redhat.com>
    Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49a3efa81147c088505baa35eca827c4df6d4c38
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Tue Nov 28 15:18:19 2017 +0000

    kvm: arm: don't treat unavailable HYP mode as an error
    
    
    [ Upstream commit 58d0d19a204604ca0da26058828a53558b265da3 ]
    
    Since it is perfectly legal to run the kernel at EL1, it is not
    actually an error if HYP mode is not available when attempting to
    initialize KVM, given that KVM support cannot be built as a module.
    So demote the kvm_err() to kvm_info(), which prevents the error from
    appearing on an otherwise 'quiet' console.
    
    Acked-by: Marc Zyngier <marc.zyngier@arm.com>
    Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c05bbe5dc862789cbbc809a4c6b4422d0b158adb
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Fri Nov 10 19:55:18 2017 +0200

    pinctrl: denverton: Fix UART2 RTS pin mode
    
    
    [ Upstream commit 4bd6683da2e64590bdc27ecf7e61ad8376861768 ]
    
    UART2 RTS is mode 2 of the pin.
    
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f8a0b09520b15b66c44ff135c3cd482600e1549
Author: Thomas Richter <tmricht@linux.vnet.ibm.com>
Date:   Thu Nov 23 12:46:11 2017 +0100

    perf test: Fix test 21 for s390x
    
    
    [ Upstream commit 996548499df61babae5306544c7daf5fd39db31c ]
    
    Test case 21 (Number of exit events of a simple workload) fails on
    s390x. The reason is the invalid sample frequency supplied for this
    test. On s390x the minimum sample frequency is much higher (see output
    of /proc/service_levels).
    
    Supply a save sample frequency value for s390x to fix this.  The value
    will be adjusted by the s390x CPUMF frequency convertion function to a
    value well below the sysctl kernel.perf_event_max_sample_rate value.
    
    Signed-off-by: Thomas Richter <tmricht@linux.vnet.ibm.com>
    Reviewed-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
    Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    LPU-Reference: 20171123114611.93397-1-tmricht@linux.vnet.ibm.com
    Link: https://lkml.kernel.org/n/tip-1ynblyhi1n81idpido59nt1y@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8b6c6ab154b95b862f9dfd75bca6acebb5bd138d
Author: Satheesh Rajendran <sathnaga@linux.vnet.ibm.com>
Date:   Wed Nov 22 22:13:53 2017 +0530

    perf bench numa: Fixup discontiguous/sparse numa nodes
    
    
    [ Upstream commit 321a7c35c90cc834851ceda18a8ee18f1d032b92 ]
    
    Certain systems are designed to have sparse/discontiguous nodes.  On
    such systems, 'perf bench numa' hangs, shows wrong number of nodes and
    shows values for non-existent nodes. Handle this by only taking nodes
    that are exposed by kernel to userspace.
    
    Signed-off-by: Satheesh Rajendran <sathnaga@linux.vnet.ibm.com>
    Reviewed-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
    Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Link: http://lkml.kernel.org/r/1edbcd353c009e109e93d78f2f46381930c340fe.1511368645.git.sathnaga@linux.vnet.ibm.com
    Signed-off-by: Balamuruhan S <bala24@linux.vnet.ibm.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7efaeefce5c9bdfa015aa56f7d581f4f01a64e70
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Tue Nov 14 10:23:39 2017 +0100

    perf top: Fix window dimensions change handling
    
    
    [ Upstream commit 89d0aeab4252adc2a7ea693637dd21c588bfa2d1 ]
    
    The stdio perf top crashes when we change the terminal
    window size. The reason is that we assumed we get the
    perf_top pointer as a signal handler argument which is
    not the case.
    
    Changing the SIGWINCH handler logic to change global
    resize variable, which is checked in the main thread
    loop.
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Tested-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-ysuzwz77oev1ftgvdscn9bpu@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 984d85a69da98ef34389a31e8ed7f527e02cf637
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Wed Aug 9 18:14:06 2017 +0200

    perf: Fix header.size for namespace events
    
    
    [ Upstream commit 34900ec5c9577cc1b0f22887ac7349f458ba8ac2 ]
    
    Reset header size for namespace events, otherwise it only gets bigger in
    ctx iterations.
    
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Fixes: e422267322cd ("perf: Add PERF_RECORD_NAMESPACES to include namespaces related info")
    Link: http://lkml.kernel.org/n/tip-nlo4gonz9d4guyb8153ukzt0@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 475e6b835d8c395eab9d7e633e37d6daa20999f0
Author: Thomas Richter <tmricht@linux.vnet.ibm.com>
Date:   Tue Nov 14 08:18:46 2017 +0100

    perf test shell: Fix check open filename arg using 'perf trace' on s390x
    
    
    [ Upstream commit ccafc38f1c778847ab6d53dd7933260426731cf3 ]
    
    This 'perf test' case fails on s390x. The 'touch' command on s390x uses
    the 'openat' system call to open the file named on the command line:
    
    [root@s35lp76 perf]# perf probe -l
      probe:vfs_getname    (on getname_flags:72@fs/namei.c with pathname)
    [root@s35lp76 perf]# perf trace -e open touch /tmp/abc
         0.400 ( 0.015 ms): touch/27542 open(filename:
                    /usr/lib/locale/locale-archive, flags: CLOEXEC) = 3
    [root@s35lp76 perf]#
    
    There is no 'open' system call for file '/tmp/abc'. Instead the 'openat'
    system call is used:
    
    [root@s35lp76 perf]# strace touch /tmp/abc
        execve("/usr/bin/touch", ["touch", "/tmp/abc"], 0x3ffd547ec98
                            /* 30 vars */) = 0
        [...]
        openat(AT_FDCWD, "/tmp/abc", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
        [...]
    
    On s390x the 'egrep' command does not find a matching pattern and
    returns an error.
    
    Fix this for s390x create a platform dependent command line to enable
    the 'perf probe' call to listen to the 'openat' system call and get the
    expected output.
    
    Signed-off-by: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com>
    Cc: Thomas-Mich Richter <tmricht@linux.vnet.ibm.com>
    LPU-Reference: 20171114071847.2381-1-tmricht@linux.vnet.ibm.com
    Link: http://lkml.kernel.org/n/tip-3qf38jk0prz54rhmhyu871my@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 863b61caaeb83cdd5ae7bc8e8a7da6b4bf103832
Author: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
Date:   Tue Nov 14 08:55:40 2017 +0530

    perf annotate: Do not truncate instruction names at 6 chars
    
    
    [ Upstream commit 05d0e62d9fa0f1002cf82009ef31b36174da5472 ]
    
    There are many instructions, esp on PowerPC, whose mnemonics are longer
    than 6 characters. Using precision limit causes truncation of such
    mnemonics.
    
    Fix this by removing precision limit. Note that, 'width' is still 6, so
    alignment won't get affected for length <= 6.
    
    Before:
    
       li     r11,-1
       xscvdp vs1,vs1
       add.   r10,r10,r11
    
    After:
    
      li     r11,-1
      xscvdpsxds vs1,vs1
      add.   r10,r10,r11
    
    Reported-by: Donald Stence <dstence@us.ibm.com>
    Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Taeung Song <treeze.taeung@gmail.com>
    Link: http://lkml.kernel.org/r/20171114032540.4564-1-ravi.bangoria@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 182d948c7ae957a152251d34e66d0e3ee382c197
Author: Namhyung Kim <namhyung@kernel.org>
Date:   Tue Nov 14 09:15:42 2017 +0900

    perf help: Fix a bug during strstart() conversion
    
    
    [ Upstream commit af98f2273fd0af31ce327cd1406b67c7be0b6734 ]
    
    The commit 8e99b6d4533c changed prefixcmp() to strstart() but missed to
    change the return value in some place.  It makes perf help print
    annoying output even for sane config items like below:
    
      $ perf help
      '.root': unsupported man viewer sub key.
      ...
    
    Reported-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Tested-by: Taeung Song <treeze.taeung@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Sihyeon Jang <uneedsihyeon@gmail.com>
    Cc: kernel-team@lge.com
    Link: http://lkml.kernel.org/r/20171114001542.GA16464@sejong
    Fixes: 8e99b6d4533c ("tools include: Adopt strstarts() from the kernel")
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bfb3906919d12aabc9d1974bb12c01902f7d2506
Author: Andi Kleen <ak@linux.intel.com>
Date:   Fri Oct 20 13:27:55 2017 -0700

    perf record: Fix -c/-F options for cpu event aliases
    
    
    [ Upstream commit 59622fd496a3175c7bf549046e091d81c303ecff ]
    
    The Intel PMU event aliases have a implicit period= specifier to set the
    default period.
    
    Unfortunately this breaks overriding these periods with -c or -F,
    because the alias terms look like they are user specified to the
    internal parser, and user specified event qualifiers override the
    command line options.
    
    Track that they are coming from aliases by adding a "weak" state to the
    term. Any weak terms don't override command line options.
    
    I only did it for -c/-F for now, I think that's the only case that's
    broken currently.
    
    Before:
    
    $ perf record -c 1000 -vv -e uops_issued.any
    ...
      { sample_period, sample_freq }   2000003
    
    After:
    
    $ perf record -c 1000 -vv -e uops_issued.any
    ...
      { sample_period, sample_freq }   1000
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Link: http://lkml.kernel.org/r/20171020202755.21410-2-andi@firstfloor.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76103695459665e6f1cc19097a619b57766d2798
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Wed Nov 1 11:03:40 2017 +0200

    ARM: dts: am437x-cm-t43: Correct the dmas property of spi0
    
    
    [ Upstream commit ca41e244517d6d3f1600c229ff7ca615049c1e9c ]
    
    The DMA binding for eDMA needs 2 parameters, not 1.
    The second, missing parameter is the tptc to be used for the channel.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1fd303e1e4160e5fe9e41e5738e9e04d311dc4a
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Wed Nov 1 11:03:31 2017 +0200

    ARM: dts: am4372: Correct the interrupts_properties of McASP
    
    
    [ Upstream commit 627395a6f8091c0aa18f49dca7df59ba3ec147ef ]
    
    Fixes the following warnings:
    
    arch/arm/boot/dts/am437x-cm-t43.dtb: Warning (interrupts_property):
    interrupts size is (8), expected multiple of 12 in
    /ocp@44000000/mcasp@48038000
    
    arch/arm/boot/dts/am437x-cm-t43.dtb: Warning (interrupts_property):
    interrupts size is (8), expected multiple of 12 in
    /ocp@44000000/mcasp@4803C000
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c601b98e14dfbda5175a2aabc6578c3b903cc095
Author: Adam Ford <aford173@gmail.com>
Date:   Tue Oct 31 13:45:59 2017 -0500

    ARM: dts: logicpd-somlv: Fix wl127x pinmux
    
    
    [ Upstream commit cd7594ac3281722cb8f10d6f6c7e4287747c7a9d ]
    
    The pin assignment for the wl127x interrupt was incorrect.  I am
    not sure how this every worked.  This also eliminates a conflict with
    the SMC911x ethernet driver and properly moves pinmuxes for the
    related gpio to omap3_pmx_wkup from omap3_pmx_core.
    
    Fixes: ab8dd3aed011 ("ARM: DTS: Add minimal Support for Logic PD
    DM3730 SOM-LV")
    
    Signed-off-by: Adam Ford <aford173@gmail.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90e4395ca72da52dd1ecda333b5612f546806d4c
Author: Adam Ford <aford173@gmail.com>
Date:   Tue Oct 31 13:42:13 2017 -0500

    ARM: dts: logicpd-som-lv: Fix gpmc addresses for NAND and enet
    
    
    [ Upstream commit 3c18bbf3d11d2005da08b57ff26f44ff1c2b12d0 ]
    
    This patch fixes and issue where the NAND and GPMC based ethernet
    controller stopped working.  This also updates the GPMC settings
    to be consistent with the Logic PD Torpedo development from the
    commit listed above.
    
    Fixes: 44e4716499b8 ("ARM: dts: omap3: Fix NAND device nodes")
    
    Signed-off-by: Adam Ford <aford173@gmail.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 104df4374d5d75fe3b6d2d7e9c67aa9510e4a385
Author: Tony Lindgren <tony@atomide.com>
Date:   Fri Nov 17 08:56:58 2017 -0800

    ARM: dts: Fix omap4 hang with GPS connected to USB by using wakeupgen
    
    
    [ Upstream commit cf87634c8b24e24bf379b8c6807c8b0fb5f23567 ]
    
    There's been a reproducable USB OHCI/EHCI cpuidle related hang on omap4
    for a while that happens after about 20 - 40 minutes on an idle system
    with some data feeding device being connected, like a USB GPS device or
    a cellular modem.
    
    This issue happens in cpuidle states C2 and C3 and does not happen if
    cpuidle is limited to C1 state only. The symptoms are that the whole
    system hangs and never wakes up from idle, and if a watchdog is
    configured the system reboots after a while.
    
    Turns out that OHCI/EHCI devices on omap4 are trying to use the GIC
    interrupt controller directly as a parent instead of the WUGEN. We
    need to pass the interrupts through WUGEN to GIC to provide the wakeup
    events for the processor.
    
    Let's fix the issue by removing the gic interrupt-parent and use the
    default interrupt-parent wakeupgen instead. Note that omap5.dtsi had
    this already fixes earlier by commit 7136d457f365 ("ARM: omap: convert
    wakeupgen to stacked domains") but we somehow missed omap4 at that
    point.
    
    Fixes: 7136d457f365 ("ARM: omap: convert wakeupgen to stacked domains")
    Cc: Dave Gerlach <d-gerlach@ti.com>
    Cc: Nishanth Menon <nm@ti.com>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Reviewed-by: Roger Quadros <rogerq@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17e712b1294a35773ed3a7c43b68bfb8fbe1b8f9
Author: Keerthy <j-keerthy@ti.com>
Date:   Fri Nov 10 16:56:52 2017 +0530

    ARM: AM33xx: PRM: Remove am33xx_pwrdm_read_prev_pwrst function
    
    
    [ Upstream commit b6d6af7226465b6d11eac09d0be2ab78a4a9eb62 ]
    
    Referring TRM Am335X series:
    http://www.ti.com/lit/ug/spruh73p/spruh73p.pdf
    
    The LastPowerStateEntered bitfield is present only for PM_CEFUSE
    domain. This is not present in any of the other power domains. Hence
    remove the generic am33xx_pwrdm_read_prev_pwrst hook which wrongly
    reads the reserved bit fields for all the other power domains.
    
    Reading the reserved bits leads to wrongly interpreting the low
    power transitions for various power domains that do not have the
    LastPowerStateEntered field. The pm debug counters values are wrong
    currently as we are incrementing them based on the reserved bits.
    
    Signed-off-by: Keerthy <j-keerthy@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b59a1da647f163d0bf035f823a908b45c357643a
Author: Tony Lindgren <tony@atomide.com>
Date:   Mon Nov 27 08:57:26 2017 -0800

    ARM: OMAP2+: Fix SRAM virt to phys translation for save_secure_ram_context
    
    
    [ Upstream commit d09220a887f70368afa79e850c95e74890c0a32d ]
    
    With the CMA changes from Joonsoo Kim <iamjoonsoo.kim@lge.com>, it
    was noticed that n900 stopped booting. After investigating it turned
    out that n900 save_secure_ram_context does some whacky virtual to
    physical address translation for the SRAM data address.
    
    As we now only have minimal parts of omap3 idle code copied to SRAM,
    running save_secure_ram_context() in SRAM is not needed. It only gets
    called on PM init. And it seems there's no need to ever call this from
    SRAM idle code.
    
    So let's just keep save_secure_ram_context() in DDR, and pass it the
    physical address of the parameters. We can do everything else in
    omap-secure.c like we already do for other secure code.
    
    And since we don't have any documentation, I still have no clue what
    the values for 0, 1 and 1 for the parameters might be. If somebody has
    figured it out, please do send a patch to add some comments.
    
    Debugged-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2ba11e4309b58d290d471f24b2f89d481e4d873f
Author: Johan Hovold <johan@kernel.org>
Date:   Fri Nov 3 15:30:53 2017 +0100

    serdev: fix receive_buf return value when no callback
    
    
    [ Upstream commit fd00cf81a9a84776ba58e56bd042c726dcf75cf3 ]
    
    The receive_buf callback is supposed to return the number of bytes
    processed and should specifically not return a negative errno.
    
    Due to missing sanity checks in the serdev tty-port controller, a driver
    not providing a receive_buf callback could cause the flush_to_ldisc()
    worker to spin in a tight loop when the tty buffer pointers are
    incremented with -EINVAL (-22).
    
    The missing sanity checks have now been added to the tty-port
    controller, but let's fix up the serdev-controller helper as well.
    
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 371cf4043b29e55cfa30c68e7304659e6e253222
Author: Randy Dunlap <rdunlap@infradead.org>
Date:   Fri Nov 17 11:00:45 2017 -0800

    usb: build drivers/usb/common/ when USB_SUPPORT is set
    
    
    [ Upstream commit c9d24f78268be444e803fb2bb138a2f598de9c23 ]
    
    PHY drivers can use ULPI interfaces when CONFIG_USB (which is host side
    support) is not enabled, so also build drivers/usb/ when CONFIG_USB_SUPPORT
    is enabled so that drivers/usb/common/ is built.
    
    ERROR: "ulpi_unregister_driver" [drivers/phy/ti/phy-tusb1210.ko] undefined!
    ERROR: "__ulpi_register_driver" [drivers/phy/ti/phy-tusb1210.ko] undefined!
    ERROR: "ulpi_read" [drivers/phy/ti/phy-tusb1210.ko] undefined!
    ERROR: "ulpi_write" [drivers/phy/ti/phy-tusb1210.ko] undefined!
    ERROR: "ulpi_unregister_driver" [drivers/phy/qualcomm/phy-qcom-usb-hs.ko] undefined!
    ERROR: "__ulpi_register_driver" [drivers/phy/qualcomm/phy-qcom-usb-hs.ko] undefined!
    ERROR: "ulpi_write" [drivers/phy/qualcomm/phy-qcom-usb-hs.ko] undefined!
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c276379fa71576b9ae082dd8c1dc00ecb32bdba1
Author: Shuah Khan <shuahkh@osg.samsung.com>
Date:   Fri Jan 26 11:56:50 2018 -0700

    usbip: keep usbip_device sockfd state in sync with tcp_socket
    
    commit 009f41aed4b3e11e6dc1e3c07377a10c20f1a5ed upstream.
    
    Keep usbip_device sockfd state in sync with tcp_socket. When tcp_socket
    is reset to null, reset sockfd to -1 to keep it in sync.
    
    Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d74450a91a4af7bc7406403064e4325513d1fcdf
Author: Alexandru Ardelean <alexandru.ardelean@analog.com>
Date:   Thu Jan 25 14:30:45 2018 +0200

    staging: iio: ad5933: switch buffer mode to software
    
    commit 7d2b8e6aaf9ee87910c2337e1c59bb5d3e3ba8c5 upstream.
    
    Since commit 152a6a884ae1 ("staging:iio:accel:sca3000 move
    to hybrid hard / soft buffer design.")
    the buffer mechanism has changed and the
    INDIO_BUFFER_HARDWARE flag has been unused.
    
    Since commit 2d6ca60f3284 ("iio: Add a DMAengine framework
    based buffer")
    the INDIO_BUFFER_HARDWARE flag has been re-purposed for
    DMA buffers.
    
    This driver has lagged behind these changes, and
    in order for buffers to work, the INDIO_BUFFER_SOFTWARE
    needs to be used.
    
    Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
    Fixes: 2d6ca60f3284 ("iio: Add a DMAengine framework based buffer")
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5ccf5138bd107624a9ef371166399a6c970babd7
Author: Alexandru Ardelean <alexandru.ardelean@analog.com>
Date:   Mon Jan 22 11:53:12 2018 +0200

    staging: iio: adc: ad7192: fix external frequency setting
    
    commit e31b617d0a63c6558485aaa730fd162faa95a766 upstream.
    
    The external clock frequency was set only when selecting
    the internal clock, which is fixed at 4.9152 Mhz.
    
    This is incorrect, since it should be set when any of
    the external clock or crystal settings is selected.
    
    Added range validation for the external (crystal/clock)
    frequency setting.
    Valid values are between 2.4576 and 5.12 Mhz.
    
    Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6648ab4f03c01bd84815d1d0e4ab55485c0994c7
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Feb 16 16:36:04 2018 +0100

    staging: fsl-mc: fix build testing on x86
    
    commit 02b7b2844c2ffd3b614ec2b9293e8c7f041d60da upstream.
    
    Selecting GENERIC_MSI_IRQ_DOMAIN on x86 causes a compile-time error in
    some configurations:
    
    drivers/base/platform-msi.c:37:19: error: field 'arg' has incomplete type
    
    On the other architectures, we are fine, but here we should have an additional
    dependency on X86_LOCAL_APIC so we can get the PCI_MSI_IRQ_DOMAIN symbol.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b46af094b82a47ca1cbba9092578f8f96af82798
Author: Todd Kjos <tkjos@android.com>
Date:   Wed Feb 7 13:57:37 2018 -0800

    binder: replace "%p" with "%pK"
    
    commit 8ca86f1639ec5890d400fff9211aca22d0a392eb upstream.
    
    The format specifier "%p" can leak kernel addresses. Use
    "%pK" instead. There were 4 remaining cases in binder.c.
    
    Signed-off-by: Todd Kjos <tkjos@google.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 047ba51a55e369ba2b5a9e7e5dfa179cb10a7569
Author: Eric Biggers <ebiggers@google.com>
Date:   Tue Jan 30 23:11:24 2018 -0800

    binder: check for binder_thread allocation failure in binder_poll()
    
    commit f88982679f54f75daa5b8eff3da72508f1e7422f upstream.
    
    If the kzalloc() in binder_get_thread() fails, binder_poll()
    dereferences the resulting NULL pointer.
    
    Fix it by returning POLLERR if the memory allocation failed.
    
    This bug was found by syzkaller using fault injection.
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Fixes: 457b9a6f09f0 ("Staging: android: add binder driver")
    Cc: stable@vger.kernel.org
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95f9c2edcbaea324be43d45540dda080fcd677f8
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sun Feb 4 02:06:27 2018 +0000

    staging: android: ashmem: Fix a race condition in pin ioctls
    
    commit ce8a3a9e76d0193e2e8d74a06d275b3c324ca652 upstream.
    
    ashmem_pin_unpin() reads asma->file and asma->size before taking the
    ashmem_mutex, so it can race with other operations that modify them.
    
    Build-tested only.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 441b5d10e4602b25ad960d1ca1c6bb77e788c220
Author: Martijn Coenen <maco@android.com>
Date:   Fri Feb 16 09:47:15 2018 +0100

    ANDROID: binder: synchronize_rcu() when using POLLFREE.
    
    commit 5eeb2ca02a2f6084fc57ae5c244a38baab07033a upstream.
    
    To prevent races with ep_remove_waitqueue() removing the
    waitqueue at the same time.
    
    Reported-by: syzbot+a2a3c4909716e271487e@syzkaller.appspotmail.com
    Signed-off-by: Martijn Coenen <maco@android.com>
    Cc: stable <stable@vger.kernel.org> # 4.14+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 129926c3756ac93c19608f8065d9654a99006fbf
Author: Todd Kjos <tkjos@android.com>
Date:   Wed Feb 7 12:38:47 2018 -0800

    ANDROID: binder: remove WARN() for redundant txn error
    
    commit e46a3b3ba7509cb7fda0e07bc7c63a2cd90f579b upstream.
    
    binder_send_failed_reply() is called when a synchronous
    transaction fails. It reports an error to the thread that
    is waiting for the completion. Given that the transaction
    is synchronous, there should never be more than 1 error
    response to that thread -- this was being asserted with
    a WARN().
    
    However, when exercising the driver with syzbot tests, cases
    were observed where multiple "synchronous" requests were
    sent without waiting for responses, so it is possible that
    multiple errors would be reported to the thread. This testing
    was conducted with panic_on_warn set which forced the crash.
    
    This is easily reproduced by sending back-to-back
    "synchronous" transactions without checking for any
    response (eg, set read_size to 0):
    
        bwr.write_buffer = (uintptr_t)&bc1;
        bwr.write_size = sizeof(bc1);
        bwr.read_buffer = (uintptr_t)&br;
        bwr.read_size = 0;
        ioctl(fd, BINDER_WRITE_READ, &bwr);
        sleep(1);
        bwr2.write_buffer = (uintptr_t)&bc2;
        bwr2.write_size = sizeof(bc2);
        bwr2.read_buffer = (uintptr_t)&br;
        bwr2.read_size = 0;
        ioctl(fd, BINDER_WRITE_READ, &bwr2);
        sleep(1);
    
    The first transaction is sent to the servicemanager and the reply
    fails because no VMA is set up by this client. After
    binder_send_failed_reply() is called, the BINDER_WORK_RETURN_ERROR
    is sitting on the thread's todo list since the read_size was 0 and
    the client is not waiting for a response.
    
    The 2nd transaction is sent and the BINDER_WORK_RETURN_ERROR has not
    been consumed, so the thread's reply_error.cmd is still set (normally
    cleared when the BINDER_WORK_RETURN_ERROR is handled). Therefore
    when the servicemanager attempts to reply to the 2nd failed
    transaction, the error is already set and it triggers this warning.
    
    This is a user error since it is not waiting for the synchronous
    transaction to complete. If it ever does check, it will see an
    error.
    
    Changed the WARN() to a pr_warn().
    
    Signed-off-by: Todd Kjos <tkjos@android.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6b581e3db4a5d9cf81ed7587f2655095259d0a1
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Thu Feb 15 16:59:49 2018 +0100

    dn_getsockoptdecnet: move nf_{get/set}sockopt outside sock lock
    
    commit dfec091439bb2acf763497cfc58f2bdfc67c56b7 upstream.
    
    After commit 3f34cfae1238 ("netfilter: on sockopt() acquire sock lock
    only in the required scope"), the caller of nf_{get/set}sockopt() must
    not hold any lock, but, in such changeset, I forgot to cope with DECnet.
    
    This commit addresses the issue moving the nf call outside the lock,
    in the dn_{get,set}sockopt() with the same schema currently used by
    ipv4 and ipv6. Also moves the unhandled sockopts of the end of the main
    switch statements, to improve code readability.
    
    Reported-by: Petr Vandrovec <petr@vandrovec.name>
    BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=198791#c2
    Fixes: 3f34cfae1238 ("netfilter: on sockopt() acquire sock lock only in the required scope")
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80b1c636a72b7999fc5b91c2259839393fc4fb3e
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Jan 10 22:06:48 2018 +0100

    arm64: dts: add #cooling-cells to CPU nodes
    
    commit acbf76ee05067c3942852019993f7beb69a0f45f upstream.
    
    dtc complains about the lack of #coolin-cells properties for the
    CPU nodes that are referred to as "cooling-device":
    
    arch/arm64/boot/dts/mediatek/mt8173-evb.dtb: Warning (cooling_device_property): Missing property '#cooling-cells' in node /cpus/cpu@0 or bad phandle (referred from /thermal-zones/cpu_thermal/cooling-maps/map@0:cooling-device[0])
    arch/arm64/boot/dts/mediatek/mt8173-evb.dtb: Warning (cooling_device_property): Missing property '#cooling-cells' in node /cpus/cpu@100 or bad phandle (referred from /thermal-zones/cpu_thermal/cooling-maps/map@1:cooling-device[0])
    
    Apparently this property must be '<2>' to match the binding.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Tested-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    [arnd: backported to 4.15]
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 225fcdd0e33b26d3269b0cc517d6c91bf5ce9285
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Jan 10 17:53:18 2018 +0100

    ARM: 8743/1: bL_switcher: add MODULE_LICENSE tag
    
    commit a21b4c10c7bf5b58112afa20d6fa829e8d74e3e6 upstream.
    
    Without this tag, we get a build warning:
    
    WARNING: modpost: missing MODULE_LICENSE() in arch/arm/common/bL_switcher_dummy_if.o
    
    For completeness, I'm also adding author and description fields.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52d4c1978cb49e7228c4d8c8bcddfdb734a51a3f
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jan 15 17:04:22 2018 +0100

    video: fbdev/mmp: add MODULE_LICENSE
    
    commit c1530ac5a3ce93a1f02adabc4508b5fbf862dfe2 upstream.
    
    Kbuild complains about the lack of a license tag in this driver:
    
    WARNING: modpost: missing MODULE_LICENSE() in drivers/video/fbdev/mmp/mmp_disp.o
    
    This adds the license, author and description tags.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f4f5777e5fa10f8d4c50aeece7d3eb2e9865d09
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Wed Jan 10 17:34:45 2018 +0100

    ASoC: ux500: add MODULE_LICENSE tag
    
    commit 1783c9d7cb7bc3181b9271665959b87280d98d8e upstream.
    
    This adds MODULE_LICENSE/AUTHOR/DESCRIPTION tags to the ux500
    platform drivers, to avoid these build warnings:
    
    WARNING: modpost: missing MODULE_LICENSE() in sound/soc/ux500/snd-soc-ux500-plat-dma.o
    WARNING: modpost: missing MODULE_LICENSE() in sound/soc/ux500/snd-soc-ux500-mach-mop500.o
    
    The company no longer exists, so the email addresses of the authors
    don't work any more, but I've added them anyway for consistency.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14b2ad0bb2fa7bbc5b5b90ec3b3b3e7a68aa10c2
Author: Eric Dumazet <edumazet@google.com>
Date:   Sat Jan 27 10:58:43 2018 -0800

    net_sched: gen_estimator: fix lockdep splat
    
    commit 40ca54e3a686f13117f3de0c443f8026dadf7c44 upstream.
    
    syzbot reported a lockdep splat in gen_new_estimator() /
    est_fetch_counters() when attempting to lock est->stats_lock.
    
    Since est_fetch_counters() is called from BH context from timer
    interrupt, we need to block BH as well when calling it from process
    context.
    
    Most qdiscs use per cpu counters and are immune to the problem,
    but net/sched/act_api.c and net/netfilter/xt_RATEEST.c are using
    a spinlock to protect their data. They both call gen_new_estimator()
    while object is created and not yet alive, so this bug could
    not trigger a deadlock, only a lockdep splat.
    
    Fixes: 1c0d32fde5bd ("net_sched: gen_estimator: complete rewrite of rate estimators")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Acked-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 701ba0df95205187f1afc4f3f520bff57ba4001d
Author: Willem de Bruijn <willemb@google.com>
Date:   Tue Dec 12 11:39:04 2017 -0500

    net: avoid skb_warn_bad_offload on IS_ERR
    
    commit 8d74e9f88d65af8bb2e095aff506aa6eac755ada upstream.
    
    skb_warn_bad_offload warns when packets enter the GSO stack that
    require skb_checksum_help or vice versa. Do not warn on arbitrary
    bad packets. Packet sockets can craft many. Syzkaller was able to
    demonstrate another one with eth_type games.
    
    In particular, suppress the warning when segmentation returns an
    error, which is for reasons other than checksum offload.
    
    See also commit 36c92474498a ("net: WARN if skb_checksum_help() is
    called on skb requiring segmentation") for context on this warning.
    
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 83ee02de2c8d958b598498a81323635f02bc4b1e
Author: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Date:   Thu Nov 30 11:11:29 2017 -0800

    rds: tcp: atomically purge entries from rds_tcp_conn_list during netns delete
    
    commit f10b4cff98c6977668434fbf5dd58695eeca2897 upstream.
    
    The rds_tcp_kill_sock() function parses the rds_tcp_conn_list
    to find the rds_connection entries marked for deletion as part
    of the netns deletion under the protection of the rds_tcp_conn_lock.
    Since the rds_tcp_conn_list tracks rds_tcp_connections (which
    have a 1:1 mapping with rds_conn_path), multiple tc entries in
    the rds_tcp_conn_list will map to a single rds_connection, and will
    be deleted as part of the rds_conn_destroy() operation that is
    done outside the rds_tcp_conn_lock.
    
    The rds_tcp_conn_list traversal done under the protection of
    rds_tcp_conn_lock should not leave any doomed tc entries in
    the list after the rds_tcp_conn_lock is released, else another
    concurrently executiong netns delete (for a differnt netns) thread
    may trip on these entries.
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c64534f82608a8f9d58d7c74d4a12122bdb2c3fe
Author: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Date:   Thu Nov 30 11:11:28 2017 -0800

    rds: tcp: correctly sequence cleanup on netns deletion.
    
    commit 681648e67d43cf269c5590ecf021ed481f4551fc upstream.
    
    Commit 8edc3affc077 ("rds: tcp: Take explicit refcounts on struct net")
    introduces a regression in rds-tcp netns cleanup. The cleanup_net(),
    (and thus rds_tcp_dev_event notification) is only called from put_net()
    when all netns refcounts go to 0, but this cannot happen if the
    rds_connection itself is holding a c_net ref that it expects to
    release in rds_tcp_kill_sock.
    
    Instead, the rds_tcp_kill_sock callback should make sure to
    tear down state carefully, ensuring that the socket teardown
    is only done after all data-structures and workqs that depend
    on it are quiesced.
    
    The original motivation for commit 8edc3affc077 ("rds: tcp: Take explicit
    refcounts on struct net") was to resolve a race condition reported by
    syzkaller where workqs for tx/rx/connect were triggered after the
    namespace was deleted. Those worker threads should have been
    cancelled/flushed before socket tear-down and indeed,
    rds_conn_path_destroy() does try to sequence this by doing
         /* cancel cp_send_w */
         /* cancel cp_recv_w */
         /* flush cp_down_w */
         /* free data structures */
    Here the "flush cp_down_w" will trigger rds_conn_shutdown and thus
    invoke rds_tcp_conn_path_shutdown() to close the tcp socket, so that
    we ought to have satisfied the requirement that "socket-close is
    done after all other dependent state is quiesced". However,
    rds_conn_shutdown has a bug in that it *always* triggers the reconnect
    workq (and if connection is successful, we always restart tx/rx
    workqs so with the right timing, we risk the race conditions reported
    by syzkaller).
    
    Netns deletion is like module teardown- no need to restart a
    reconnect in this case. We can use the c_destroy_in_prog bit
    to avoid restarting the reconnect.
    
    Fixes: 8edc3affc077 ("rds: tcp: Take explicit refcounts on struct net")
    Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e12516df1367e80f25fc204b6002db2a700a6ad
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Mon Feb 5 14:41:45 2018 -0800

    netfilter: xt_RATEEST: acquire xt_rateest_mutex for hash insert
    
    commit 7dc68e98757a8eccf8ca7a53a29b896f1eef1f76 upstream.
    
    rateest_hash is supposed to be protected by xt_rateest_mutex,
    and, as suggested by Eric, lookup and insert should be atomic,
    so we should acquire the xt_rateest_mutex once for both.
    
    So introduce a non-locking helper for internal use and keep the
    locking one for external.
    
    Reported-by: <syzbot+5cb189720978275e4c75@syzkaller.appspotmail.com>
    Fixes: 5859034d7eb8 ("[NETFILTER]: x_tables: add RATEEST target")
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Reviewed-by: Florian Westphal <fw@strlen.de>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be6c08bf9aea46775232e48241b55e768362b9e0
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Wed Jan 31 15:02:47 2018 -0800

    netfilter: xt_cgroup: initialize info->priv in cgroup_mt_check_v1()
    
    commit ba7cd5d95f25cc6005f687dabdb4e7a6063adda9 upstream.
    
    xt_cgroup_info_v1->priv is an internal pointer only used for kernel,
    we should not trust what user-space provides.
    
    Reported-by: <syzbot+4fbcfcc0d2e6592bd641@syzkaller.appspotmail.com>
    Fixes: c38c4597e4bf ("netfilter: implement xt_cgroup cgroup2 path match")
    Cc: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 516c855cf51462678eb50ec52da845c10734d0bf
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Tue Jan 30 19:01:40 2018 +0100

    netfilter: on sockopt() acquire sock lock only in the required scope
    
    commit 3f34cfae1238848fd53f25e5c8fd59da57901f4b upstream.
    
    Syzbot reported several deadlocks in the netfilter area caused by
    rtnl lock and socket lock being acquired with a different order on
    different code paths, leading to backtraces like the following one:
    
    ======================================================
    WARNING: possible circular locking dependency detected
    4.15.0-rc9+ #212 Not tainted
    ------------------------------------------------------
    syzkaller041579/3682 is trying to acquire lock:
      (sk_lock-AF_INET6){+.+.}, at: [<000000008775e4dd>] lock_sock
    include/net/sock.h:1463 [inline]
      (sk_lock-AF_INET6){+.+.}, at: [<000000008775e4dd>]
    do_ipv6_setsockopt.isra.8+0x3c5/0x39d0 net/ipv6/ipv6_sockglue.c:167
    
    but task is already holding lock:
      (rtnl_mutex){+.+.}, at: [<000000004342eaa9>] rtnl_lock+0x17/0x20
    net/core/rtnetlink.c:74
    
    which lock already depends on the new lock.
    
    the existing dependency chain (in reverse order) is:
    
    -> #1 (rtnl_mutex){+.+.}:
            __mutex_lock_common kernel/locking/mutex.c:756 [inline]
            __mutex_lock+0x16f/0x1a80 kernel/locking/mutex.c:893
            mutex_lock_nested+0x16/0x20 kernel/locking/mutex.c:908
            rtnl_lock+0x17/0x20 net/core/rtnetlink.c:74
            register_netdevice_notifier+0xad/0x860 net/core/dev.c:1607
            tee_tg_check+0x1a0/0x280 net/netfilter/xt_TEE.c:106
            xt_check_target+0x22c/0x7d0 net/netfilter/x_tables.c:845
            check_target net/ipv6/netfilter/ip6_tables.c:538 [inline]
            find_check_entry.isra.7+0x935/0xcf0
    net/ipv6/netfilter/ip6_tables.c:580
            translate_table+0xf52/0x1690 net/ipv6/netfilter/ip6_tables.c:749
            do_replace net/ipv6/netfilter/ip6_tables.c:1165 [inline]
            do_ip6t_set_ctl+0x370/0x5f0 net/ipv6/netfilter/ip6_tables.c:1691
            nf_sockopt net/netfilter/nf_sockopt.c:106 [inline]
            nf_setsockopt+0x67/0xc0 net/netfilter/nf_sockopt.c:115
            ipv6_setsockopt+0x115/0x150 net/ipv6/ipv6_sockglue.c:928
            udpv6_setsockopt+0x45/0x80 net/ipv6/udp.c:1422
            sock_common_setsockopt+0x95/0xd0 net/core/sock.c:2978
            SYSC_setsockopt net/socket.c:1849 [inline]
            SyS_setsockopt+0x189/0x360 net/socket.c:1828
            entry_SYSCALL_64_fastpath+0x29/0xa0
    
    -> #0 (sk_lock-AF_INET6){+.+.}:
            lock_acquire+0x1d5/0x580 kernel/locking/lockdep.c:3914
            lock_sock_nested+0xc2/0x110 net/core/sock.c:2780
            lock_sock include/net/sock.h:1463 [inline]
            do_ipv6_setsockopt.isra.8+0x3c5/0x39d0 net/ipv6/ipv6_sockglue.c:167
            ipv6_setsockopt+0xd7/0x150 net/ipv6/ipv6_sockglue.c:922
            udpv6_setsockopt+0x45/0x80 net/ipv6/udp.c:1422
            sock_common_setsockopt+0x95/0xd0 net/core/sock.c:2978
            SYSC_setsockopt net/socket.c:1849 [inline]
            SyS_setsockopt+0x189/0x360 net/socket.c:1828
            entry_SYSCALL_64_fastpath+0x29/0xa0
    
    other info that might help us debug this:
    
      Possible unsafe locking scenario:
    
            CPU0                    CPU1
            ----                    ----
       lock(rtnl_mutex);
                                    lock(sk_lock-AF_INET6);
                                    lock(rtnl_mutex);
       lock(sk_lock-AF_INET6);
    
      *** DEADLOCK ***
    
    1 lock held by syzkaller041579/3682:
      #0:  (rtnl_mutex){+.+.}, at: [<000000004342eaa9>] rtnl_lock+0x17/0x20
    net/core/rtnetlink.c:74
    
    The problem, as Florian noted, is that nf_setsockopt() is always
    called with the socket held, even if the lock itself is required only
    for very tight scopes and only for some operation.
    
    This patch addresses the issues moving the lock_sock() call only
    where really needed, namely in ipv*_getorigdst(), so that nf_setsockopt()
    does not need anymore to acquire both locks.
    
    Fixes: 22265a5c3c10 ("netfilter: xt_TEE: resolve oif using netdevice notifiers")
    Reported-by: syzbot+a4c2dc980ac1af699b36@syzkaller.appspotmail.com
    Suggested-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2852a7dd15fe311e96be2d36a7361faac471b7a9
Author: Dmitry Vyukov <dvyukov@google.com>
Date:   Tue Jan 30 15:21:34 2018 +0100

    netfilter: ipt_CLUSTERIP: fix out-of-bounds accesses in clusterip_tg_check()
    
    commit 1a38956cce5eabd7b74f94bab70265e4df83165e upstream.
    
    Commit 136e92bbec0a switched local_nodes from an array to a bitmask
    but did not add proper bounds checks. As the result
    clusterip_config_init_nodelist() can both over-read
    ipt_clusterip_tgt_info.local_nodes and over-write
    clusterip_config.local_nodes.
    
    Add bounds checks for both.
    
    Fixes: 136e92bbec0a ("[NETFILTER] CLUSTERIP: use a bitmap to store node responsibility data")
    Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f25f048d3bde992239b7e019467b4fb4832bac99
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 24 17:16:09 2018 -0800

    netfilter: x_tables: avoid out-of-bounds reads in xt_request_find_{match|target}
    
    commit da17c73b6eb74aad3c3c0654394635675b623b3e upstream.
    
    It looks like syzbot found its way into netfilter territory.
    
    Issue here is that @name comes from user space and might
    not be null terminated.
    
    Out-of-bound reads happen, KASAN is not happy.
    
    v2 added similar fix for xt_request_find_target(),
    as Florian advised.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Acked-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6609d112229fff5dbccf57bbc31facffc1ba06dd
Author: Dmitry Vyukov <dvyukov@google.com>
Date:   Thu Dec 28 09:48:54 2017 +0100

    netfilter: x_tables: fix int overflow in xt_alloc_table_info()
    
    commit 889c604fd0b5f6d3b8694ade229ee44124de1127 upstream.
    
    syzkaller triggered OOM kills by passing ipt_replace.size = -1
    to IPT_SO_SET_REPLACE. The root cause is that SMP_ALIGN() in
    xt_alloc_table_info() causes int overflow and the size check passes
    when it should not. SMP_ALIGN() is no longer needed leftover.
    
    Remove SMP_ALIGN() call in xt_alloc_table_info().
    
    Reported-by: syzbot+4396883fa8c4f64e0175@syzkaller.appspotmail.com
    Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4249e8af8108afadc6316d9e4815f3333c9770d0
Author: Dmitry Vyukov <dvyukov@google.com>
Date:   Tue Feb 6 15:40:28 2018 -0800

    kcov: detect double association with a single task
    
    commit a77660d231f8b3d84fd23ed482e0964f7aa546d6 upstream.
    
    Currently KCOV_ENABLE does not check if the current task is already
    associated with another kcov descriptor.  As the result it is possible
    to associate a single task with more than one kcov descriptor, which
    later leads to a memory leak of the old descriptor.  This relation is
    really meant to be one-to-one (task has only one back link).
    
    Extend validation to detect such misuse.
    
    Link: http://lkml.kernel.org/r/20180122082520.15716-1-dvyukov@google.com
    Fixes: 5c9a8750a640 ("kernel: add kcov code coverage")
    Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
    Reported-by: Shankara Pailoor <sp3485@columbia.edu>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7b5ec5505945ee2ba6f6dbab51483a1102720623
Author: Wanpeng Li <wanpeng.li@hotmail.com>
Date:   Wed Dec 13 10:46:40 2017 +0100

    KVM: x86: fix escape of guest dr6 to the host
    
    commit efdab992813fb2ed825745625b83c05032e9cda2 upstream.
    
    syzkaller reported:
    
       WARNING: CPU: 0 PID: 12927 at arch/x86/kernel/traps.c:780 do_debug+0x222/0x250
       CPU: 0 PID: 12927 Comm: syz-executor Tainted: G           OE    4.15.0-rc2+ #16
       RIP: 0010:do_debug+0x222/0x250
       Call Trace:
        <#DB>
        debug+0x3e/0x70
       RIP: 0010:copy_user_enhanced_fast_string+0x10/0x20
        </#DB>
        _copy_from_user+0x5b/0x90
        SyS_timer_create+0x33/0x80
        entry_SYSCALL_64_fastpath+0x23/0x9a
    
    The testcase sets a watchpoint (with perf_event_open) on a buffer that is
    passed to timer_create() as the struct sigevent argument.  In timer_create(),
    copy_from_user()'s rep movsb triggers the BP.  The testcase also sets
    the debug registers for the guest.
    
    However, KVM only restores host debug registers when the host has active
    watchpoints, which triggers a race condition when running the testcase with
    multiple threads.  The guest's DR6.BS bit can escape to the host before
    another thread invokes timer_create(), and do_debug() complains.
    
    The fix is to respect do_debug()'s dr6 invariant when leaving KVM.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2cc50a1946e69400399575f8ea63c2131baa83b7
Author: Douglas Gilbert <dgilbert@interlog.com>
Date:   Sun Jan 14 17:00:48 2018 -0500

    blk_rq_map_user_iov: fix error override
    
    commit 69e0927b3774563c19b5fb32e91d75edc147fb62 upstream.
    
    During stress tests by syzkaller on the sg driver the block layer
    infrequently returns EINVAL. Closer inspection shows the block
    layer was trying to return ENOMEM (which is much more
    understandable) but for some reason overroad that useful error.
    
    Patch below does not show this (unchanged) line:
       ret =__blk_rq_map_user_iov(rq, map_data, &i, gfp_mask, copy);
    That 'ret' was being overridden when that function failed.
    
    Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c565a9538a13e0b427ff7c3fbd2ee8e8cd59709
Author: Laura Abbott <labbott@redhat.com>
Date:   Fri Jan 5 11:14:09 2018 -0800

    staging: android: ion: Switch from WARN to pr_warn
    
    commit e4e179a844f52e907e550f887d0a2171f1508af1 upstream.
    
    Syzbot reported a warning with Ion:
    
    WARNING: CPU: 0 PID: 3502 at drivers/staging/android/ion/ion-ioctl.c:73 ion_ioctl+0x2db/0x380 drivers/staging/android/ion/ion-ioctl.c:73
    Kernel panic - not syncing: panic_on_warn set ...
    
    This is a warning that validation of the ioctl fields failed. This was
    deliberately added as a warning to make it very obvious to developers that
    something needed to be fixed. In reality, this is overkill and disturbs
    fuzzing. Switch to pr_warn for a message instead.
    
    Reported-by: syzbot+fa2d5f63ee5904a0115a@syzkaller.appspotmail.com
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Laura Abbott <labbott@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 747ad3d315923647ca4d79d92b28b512e85cd96e
Author: Laura Abbott <labbott@redhat.com>
Date:   Fri Jan 5 11:14:08 2018 -0800

    staging: android: ion: Add __GFP_NOWARN for system contig heap
    
    commit 0c75f10312a35b149b2cebb1832316b35c2337ca upstream.
    
    syzbot reported a warning from Ion:
    
      WARNING: CPU: 1 PID: 3485 at mm/page_alloc.c:3926
    
      ...
       __alloc_pages_nodemask+0x9fb/0xd80 mm/page_alloc.c:4252
      alloc_pages_current+0xb6/0x1e0 mm/mempolicy.c:2036
      alloc_pages include/linux/gfp.h:492 [inline]
      ion_system_contig_heap_allocate+0x40/0x2c0
      drivers/staging/android/ion/ion_system_heap.c:374
      ion_buffer_create drivers/staging/android/ion/ion.c:93 [inline]
      ion_alloc+0x2c1/0x9e0 drivers/staging/android/ion/ion.c:420
      ion_ioctl+0x26d/0x380 drivers/staging/android/ion/ion-ioctl.c:84
      vfs_ioctl fs/ioctl.c:46 [inline]
      do_vfs_ioctl+0x1b1/0x1520 fs/ioctl.c:686
      SYSC_ioctl fs/ioctl.c:701 [inline]
      SyS_ioctl+0x8f/0xc0 fs/ioctl.c:692
    
    This is a warning about attempting to allocate order > MAX_ORDER. This
    is coming from a userspace Ion allocation request. Since userspace is
    free to request however much memory it wants (and the kernel is free to
    deny its allocation), silence the allocation attempt with __GFP_NOWARN
    in case it fails.
    
    Reported-by: syzbot+76e7efc4748495855a4d@syzkaller.appspotmail.com
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Laura Abbott <labbott@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 392e03283a3ddddf7c48dcc002b8668e1612a578
Author: Eric Biggers <ebiggers@google.com>
Date:   Mon Dec 18 16:40:26 2017 -0800

    crypto: x86/twofish-3way - Fix %rbp usage
    
    commit d8c7fe9f2a486a6e5f0d5229ca43807af5ab22c6 upstream.
    
    Using %rbp as a temporary register breaks frame pointer convention and
    breaks stack traces when unwinding from an interrupt in the crypto code.
    
    In twofish-3way, we can't simply replace %rbp with another register
    because there are none available.  Instead, we use the stack to hold the
    values that %rbp, %r11, and %r12 were holding previously.  Each of these
    values represents the half of the output from the previous Feistel round
    that is being passed on unchanged to the following round.  They are only
    used once per round, when they are exchanged with %rax, %rbx, and %rcx.
    
    As a result, we free up 3 registers (one per block) and can reassign
    them so that %rbp is not used, and additionally %r14 and %r15 are not
    used so they do not need to be saved/restored.
    
    There may be a small overhead caused by replacing 'xchg REG, REG' with
    the needed sequence 'mov MEM, REG; mov REG, MEM; mov REG, REG' once per
    round.  But, counterintuitively, when I tested "ctr-twofish-3way" on a
    Haswell processor, the new version was actually about 2% faster.
    (Perhaps 'xchg' is not as well optimized as plain moves.)
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9bae74042eb17eeaed782f85438a7a131fe68282
Author: Andrey Konovalov <andreyknvl@google.com>
Date:   Thu Nov 2 09:52:27 2017 -0400

    media: pvrusb2: properly check endpoint types
    
    commit 72c27a68a2a3f650f0dc7891ee98f02283fc11af upstream.
    
    As syzkaller detected, pvrusb2 driver submits bulk urb withount checking
    the the endpoint type is actually blunk. Add a check.
    
    usb 1-1: BOGUS urb xfer, pipe 3 != type 1
    ------------[ cut here ]------------
    WARNING: CPU: 1 PID: 2713 at drivers/usb/core/urb.c:449 usb_submit_urb+0xf8a/0x11d0
    Modules linked in:
    CPU: 1 PID: 2713 Comm: pvrusb2-context Not tainted
    4.14.0-rc1-42251-gebb2c2437d80 #210
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    task: ffff88006b7a18c0 task.stack: ffff880069978000
    RIP: 0010:usb_submit_urb+0xf8a/0x11d0 drivers/usb/core/urb.c:448
    RSP: 0018:ffff88006997f990 EFLAGS: 00010286
    RAX: 0000000000000029 RBX: ffff880063661900 RCX: 0000000000000000
    RDX: 0000000000000029 RSI: ffffffff86876d60 RDI: ffffed000d32ff24
    RBP: ffff88006997fa90 R08: 1ffff1000d32fdca R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000000 R12: 1ffff1000d32ff39
    R13: 0000000000000001 R14: 0000000000000003 R15: ffff880068bbed68
    FS:  0000000000000000(0000) GS:ffff88006c600000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000001032000 CR3: 000000006a0ff000 CR4: 00000000000006f0
    Call Trace:
     pvr2_send_request_ex+0xa57/0x1d80 drivers/media/usb/pvrusb2/pvrusb2-hdw.c:3645
     pvr2_hdw_check_firmware drivers/media/usb/pvrusb2/pvrusb2-hdw.c:1812
     pvr2_hdw_setup_low drivers/media/usb/pvrusb2/pvrusb2-hdw.c:2107
     pvr2_hdw_setup drivers/media/usb/pvrusb2/pvrusb2-hdw.c:2250
     pvr2_hdw_initialize+0x548/0x3c10 drivers/media/usb/pvrusb2/pvrusb2-hdw.c:2327
     pvr2_context_check drivers/media/usb/pvrusb2/pvrusb2-context.c:118
     pvr2_context_thread_func+0x361/0x8c0 drivers/media/usb/pvrusb2/pvrusb2-context.c:167
     kthread+0x3a1/0x470 kernel/kthread.c:231
     ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431
    Code: 48 8b 85 30 ff ff ff 48 8d b8 98 00 00 00 e8 ee 82 89 fe 45 89
    e8 44 89 f1 4c 89 fa 48 89 c6 48 c7 c7 40 c0 ea 86 e8 30 1b dc fc <0f>
    ff e9 9b f7 ff ff e8 aa 95 25 fd e9 80 f7 ff ff e8 50 74 f3
    ---[ end trace 6919030503719da6 ]---
    
    Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>

commit ca181454e726e47434566d9a126e9cfc29db48ae
Author: Paul Moore <paul@paul-moore.com>
Date:   Tue Dec 5 17:17:43 2017 -0500

    selinux: skip bounded transition processing if the policy isn't loaded
    
    commit 4b14752ec4e0d87126e636384cf37c8dd9df157c upstream.
    
    We can't do anything reasonable in security_bounded_transition() if we
    don't have a policy loaded, and in fact we could run into problems
    with some of the code inside expecting a policy.  Fix these problems
    like we do many others in security/selinux/ss/services.c by checking
    to see if the policy is loaded (ss_initialized) and returning quickly
    if it isn't.
    
    Reported-by: syzbot <syzkaller-bugs@googlegroups.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
    Reviewed-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 116df867dbc12297d0e04cd6540ecad401f4c060
Author: Paul Moore <paul@paul-moore.com>
Date:   Tue Nov 28 18:51:12 2017 -0500

    selinux: ensure the context is NUL terminated in security_context_to_sid_core()
    
    commit ef28df55ac27e1e5cd122e19fa311d886d47a756 upstream.
    
    The syzbot/syzkaller automated tests found a problem in
    security_context_to_sid_core() during early boot (before we load the
    SELinux policy) where we could potentially feed context strings without
    NUL terminators into the strcmp() function.
    
    We already guard against this during normal operation (after the SELinux
    policy has been loaded) by making a copy of the context strings and
    explicitly adding a NUL terminator to the end.  The patch extends this
    protection to the early boot case (no loaded policy) by moving the context
    copy earlier in security_context_to_sid_core().
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Reviewed-By: William Roberts <william.c.roberts@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b517942f5126c04fff8ff341cdd6a28b0a8de84f
Author: Jason Wang <jasowang@redhat.com>
Date:   Fri Feb 9 17:45:50 2018 +0800

    ptr_ring: try vmalloc() when kmalloc() fails
    
    commit 0bf7800f1799b5b1fd7d4f024e9ece53ac489011 upstream.
    
    This patch switch to use kvmalloc_array() for using a vmalloc()
    fallback to help in case kmalloc() fails.
    
    Reported-by: syzbot+e4d4f9ddd4295539735d@syzkaller.appspotmail.com
    Fixes: 2e0ab8ca83c12 ("ptr_ring: array based FIFO for pointers")
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6688494804d87dcc8c936941f3f9969797af5419
Author: Jason Wang <jasowang@redhat.com>
Date:   Fri Feb 9 17:45:49 2018 +0800

    ptr_ring: fail early if queue occupies more than KMALLOC_MAX_SIZE
    
    commit 6e6e41c3112276288ccaf80c70916779b84bb276 upstream.
    
    To avoid slab to warn about exceeded size, fail early if queue
    occupies more than KMALLOC_MAX_SIZE.
    
    Reported-by: syzbot+e4d4f9ddd4295539735d@syzkaller.appspotmail.com
    Fixes: 2e0ab8ca83c12 ("ptr_ring: array based FIFO for pointers")
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73e6a383d1509d8bee58579041e76e5d36793c18
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 4 15:03:40 2017 +0200

    ALSA: bcd2000: Add a sanity check for invalid EPs
    
    commit 6815a0b444572527256f0d0efd8efe3ddede6018 upstream.
    
    As syzkaller spotted, currently bcd2000 driver submits a URB with the
    fixed EP without checking whether it's actually available, which may
    result in a kernel warning like:
      usb 1-1: BOGUS urb xfer, pipe 1 != type 3
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 1846 at drivers/usb/core/urb.c:449
      usb_submit_urb+0xf8a/0x11d0
      Modules linked in:
      CPU: 0 PID: 1846 Comm: kworker/0:2 Not tainted
      4.14.0-rc2-42613-g1488251d1a98 #238
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
      Workqueue: usb_hub_wq hub_event
      Call Trace:
       bcd2000_init_device sound/usb/bcd2000/bcd2000.c:289
       bcd2000_init_midi sound/usb/bcd2000/bcd2000.c:345
       bcd2000_probe+0xe64/0x19e0 sound/usb/bcd2000/bcd2000.c:406
       usb_probe_interface+0x35d/0x8e0 drivers/usb/core/driver.c:361
       ....
    
    This patch adds a sanity check of validity of EPs at the device
    initialization phase for avoiding the call with an invalid EP.
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b43a3e21937c869706e94efb53ad166478ad1a93
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 4 15:07:21 2017 +0200

    ALSA: caiaq: Add a sanity check for invalid EPs
    
    commit 58fc7f73a85d45a47057dad2af53502fdf6cf778 upstream.
    
    As syzkaller spotted, currently caiaq driver submits a URB with the
    fixed EP without checking whether it's actually available, which may
    result in a kernel warning like:
      usb 1-1: BOGUS urb xfer, pipe 3 != type 1
      ------------[ cut here ]------------
      WARNING: CPU: 1 PID: 1150 at drivers/usb/core/urb.c:449
      usb_submit_urb+0xf8a/0x11d0
      Modules linked in:
      CPU: 1 PID: 1150 Comm: kworker/1:1 Not tainted
      4.14.0-rc2-42660-g24b7bd59eec0 #277
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
      Workqueue: usb_hub_wq hub_event
      Call Trace:
       init_card sound/usb/caiaq/device.c:467
       snd_probe+0x81c/0x1150 sound/usb/caiaq/device.c:525
       usb_probe_interface+0x35d/0x8e0 drivers/usb/core/driver.c:361
       ....
    
    This patch adds a sanity check of validity of EPs at the device
    initialization phase for avoiding the call with an invalid EP.
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90bca3712acb0ddffbb85beb099eb7eeafba6cd3
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 4 15:09:24 2017 +0200

    ALSA: line6: Add a sanity check for invalid EPs
    
    commit 2a4340c57717162c6bf07a0860d05711d4de994b upstream.
    
    As syzkaller spotted, currently line6 drivers submit a URB with the
    fixed EP without checking whether it's actually available, which may
    result in a kernel warning like:
      usb 1-1: BOGUS urb xfer, pipe 3 != type 1
      ------------[ cut here ]------------
      WARNING: CPU: 0 PID: 24 at drivers/usb/core/urb.c:449
      usb_submit_urb+0xf8a/0x11d0
      Modules linked in:
      CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 4.14.0-rc2-42613-g1488251d1a98 #238
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
      Workqueue: usb_hub_wq hub_event
      Call Trace:
       line6_start_listen+0x55f/0x9e0 sound/usb/line6/driver.c:82
       line6_init_cap_control sound/usb/line6/driver.c:690
       line6_probe+0x7c9/0x1310 sound/usb/line6/driver.c:764
       podhd_probe+0x64/0x70 sound/usb/line6/podhd.c:474
       usb_probe_interface+0x35d/0x8e0 drivers/usb/core/driver.c:361
       ....
    
    This patch adds a sanity check of validity of EPs at the device
    initialization phase for avoiding the call with an invalid EP.
    
    Reported-by: Andrey Konovalov <andreyknvl@google.com>
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c666e6471acb1fe33b6b88d95486ed2d548d944
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue Oct 31 11:55:35 2017 +0000

    drm: Require __GFP_NOFAIL for the legacy drm_modeset_lock_all
    
    commit d18d1a5ac811d12f7ebc1129230312b5f2c50cb8 upstream.
    
    To acquire all modeset locks requires a ww_ctx to be allocated. As this
    is the legacy path and the allocation small, to reduce the changes
    required (and complex untested error handling) to the legacy drivers, we
    simply assume that the allocation succeeds. At present, it relies on the
    too-small-to-fail rule, but syzbot found that by injecting a failure
    here we would hit the WARN. Document that this allocation must succeed
    with __GFP_NOFAIL.
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171031115535.15166-1-chris@chris-wilson.co.uk
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3587188ad596da05a8dd691fc28ee56d335f41b8
Author: Jan Kara <jack@suse.cz>
Date:   Tue Oct 31 09:53:28 2017 +0100

    dnotify: Handle errors from fsnotify_add_mark_locked() in fcntl_dirnotify()
    
    commit b3a0066005821acdc0cdb092cb72587182ab583f upstream.
    
    fsnotify_add_mark_locked() can fail but we do not check its return
    value. This didn't matter before commit 9dd813c15b2c "fsnotify: Move
    mark list head from object into dedicated structure" as none of possible
    failures could happen for dnotify but after that commit -ENOMEM can be
    returned. Handle this error properly in fcntl_dirnotify() as
    otherwise we just hit BUG_ON(dn_mark->dn) in dnotify_free_mark().
    
    Reviewed-by: Amir Goldstein <amir73il@gmail.com>
    Reported-by: syzkaller
    Fixes: 9dd813c15b2c101168808d4f5941a29985758973
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90f9a1ff1e8eaa15c1e33fefa44705707db4de2b
Author: Jens Axboe <axboe@kernel.dk>
Date:   Sun Nov 5 09:16:09 2017 -0700

    blktrace: fix unlocked registration of tracepoints
    
    commit a6da0024ffc19e0d47712bb5ca4fd083f76b07df upstream.
    
    We need to ensure that tracepoints are registered and unregistered
    with the users of them. The existing atomic count isn't enough for
    that. Add a lock around the tracepoints, so we serialize access
    to them.
    
    This fixes cases where we have multiple users setting up and
    tearing down tracepoints, like this:
    
    CPU: 0 PID: 2995 Comm: syzkaller857118 Not tainted
    4.14.0-rc5-next-20171018+ #36
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
    Google 01/01/2011
    Call Trace:
      __dump_stack lib/dump_stack.c:16 [inline]
      dump_stack+0x194/0x257 lib/dump_stack.c:52
      panic+0x1e4/0x41c kernel/panic.c:183
      __warn+0x1c4/0x1e0 kernel/panic.c:546
      report_bug+0x211/0x2d0 lib/bug.c:183
      fixup_bug+0x40/0x90 arch/x86/kernel/traps.c:177
      do_trap_no_signal arch/x86/kernel/traps.c:211 [inline]
      do_trap+0x260/0x390 arch/x86/kernel/traps.c:260
      do_error_trap+0x120/0x390 arch/x86/kernel/traps.c:297
      do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:310
      invalid_op+0x18/0x20 arch/x86/entry/entry_64.S:905
    RIP: 0010:tracepoint_add_func kernel/tracepoint.c:210 [inline]
    RIP: 0010:tracepoint_probe_register_prio+0x397/0x9a0 kernel/tracepoint.c:283
    RSP: 0018:ffff8801d1d1f6c0 EFLAGS: 00010293
    RAX: ffff8801d22e8540 RBX: 00000000ffffffef RCX: ffffffff81710f07
    RDX: 0000000000000000 RSI: ffffffff85b679c0 RDI: ffff8801d5f19818
    RBP: ffff8801d1d1f7c8 R08: ffffffff81710c10 R09: 0000000000000004
    R10: ffff8801d1d1f6b0 R11: 0000000000000003 R12: ffffffff817597f0
    R13: 0000000000000000 R14: 00000000ffffffff R15: ffff8801d1d1f7a0
      tracepoint_probe_register+0x2a/0x40 kernel/tracepoint.c:304
      register_trace_block_rq_insert include/trace/events/block.h:191 [inline]
      blk_register_tracepoints+0x1e/0x2f0 kernel/trace/blktrace.c:1043
      do_blk_trace_setup+0xa10/0xcf0 kernel/trace/blktrace.c:542
      blk_trace_setup+0xbd/0x180 kernel/trace/blktrace.c:564
      sg_ioctl+0xc71/0x2d90 drivers/scsi/sg.c:1089
      vfs_ioctl fs/ioctl.c:45 [inline]
      do_vfs_ioctl+0x1b1/0x1520 fs/ioctl.c:685
      SYSC_ioctl fs/ioctl.c:700 [inline]
      SyS_ioctl+0x8f/0xc0 fs/ioctl.c:691
      entry_SYSCALL_64_fastpath+0x1f/0xbe
    RIP: 0033:0x444339
    RSP: 002b:00007ffe05bb5b18 EFLAGS: 00000206 ORIG_RAX: 0000000000000010
    RAX: ffffffffffffffda RBX: 00000000006d66c0 RCX: 0000000000444339
    RDX: 000000002084cf90 RSI: 00000000c0481273 RDI: 0000000000000009
    RBP: 0000000000000082 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000206 R12: ffffffffffffffff
    R13: 00000000c0481273 R14: 0000000000000000 R15: 0000000000000000
    
    since we can now run these in parallel. Ensure that the exported helpers
    for doing this are grabbing the queue trace mutex.
    
    Reported-by: Steven Rostedt <rostedt@goodmis.org>
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2df0d6de5eff25b8fb4e858c9d77c98cae8a0bc0
Author: Xin Long <lucien.xin@gmail.com>
Date:   Fri Nov 17 14:11:11 2017 +0800

    sctp: set frag_point in sctp_setsockopt_maxseg correctly
    
    commit ecca8f88da5c4260cc2bccfefd2a24976704c366 upstream.
    
    Now in sctp_setsockopt_maxseg user_frag or frag_point can be set with
    val >= 8 and val <= SCTP_MAX_CHUNK_LEN. But both checks are incorrect.
    
    val >= 8 means frag_point can even be less than SCTP_DEFAULT_MINSEGMENT.
    Then in sctp_datamsg_from_user(), when it's value is greater than cookie
    echo len and trying to bundle with cookie echo chunk, the first_len will
    overflow.
    
    The worse case is when it's value is equal as cookie echo len, first_len
    becomes 0, it will go into a dead loop for fragment later on. In Hangbin
    syzkaller testing env, oom was even triggered due to consecutive memory
    allocation in that loop.
    
    Besides, SCTP_MAX_CHUNK_LEN is the max size of the whole chunk, it should
    deduct the data header for frag_point or user_frag check.
    
    This patch does a proper check with SCTP_DEFAULT_MINSEGMENT subtracting
    the sctphdr and datahdr, SCTP_MAX_CHUNK_LEN subtracting datahdr when
    setting frag_point via sockopt. It also improves sctp_setsockopt_maxseg
    codes.
    
    Suggested-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Reported-by: Hangbin Liu <liuhangbin@gmail.com>
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Acked-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d4d55665f32c20117ec1d1a96dc807f6d04fc09
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Mon Nov 27 11:15:16 2017 -0800

    xfrm: check id proto in validate_tmpl()
    
    commit 6a53b7593233ab9e4f96873ebacc0f653a55c3e1 upstream.
    
    syzbot reported a kernel warning in xfrm_state_fini(), which
    indicates that we have entries left in the list
    net->xfrm.state_all whose proto is zero. And
    xfrm_id_proto_match() doesn't consider them as a match with
    IPSEC_PROTO_ANY in this case.
    
    Proto with value 0 is probably not a valid value, at least
    verify_newsa_info() doesn't consider it valid either.
    
    This patch fixes it by checking the proto value in
    validate_tmpl() and rejecting invalid ones, like what iproute2
    does in xfrm_xfrmproto_getbyname().
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 70c5e41f4734ee5cbafb5c49576bdc914f02c6b8
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Wed Nov 29 06:53:55 2017 +0100

    xfrm: Fix stack-out-of-bounds read on socket policy lookup.
    
    commit ddc47e4404b58f03e98345398fb12d38fe291512 upstream.
    
    When we do tunnel or beet mode, we pass saddr and daddr from the
    template to xfrm_state_find(), this is ok. On transport mode,
    we pass the addresses from the flowi, assuming that the IP
    addresses (and address family) don't change during transformation.
    This assumption is wrong in the IPv4 mapped IPv6 case, packet
    is IPv4 and template is IPv6.
    
    Fix this by catching address family missmatches of the policy
    and the flow already before we do the lookup.
    
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6b36a2616ab94040b24ce622bd6befb1a28e4aa
Author: Leon Romanovsky <leonro@mellanox.com>
Date:   Tue Dec 5 22:30:04 2017 +0200

    RDMA/netlink: Fix general protection fault
    
    commit d0e312fe3d34c1bc014a7f8ec6540d05e8077483 upstream.
    
    The RDMA netlink core code checks validity of messages by ensuring
    that type and operand are in range. It works well for almost all
    clients except NLDEV, which has cb_table less than number of operands.
    
    Request to access such operand will trigger the following kernel panic.
    
    This patch updates all places where cb_table is declared for the
    consistency, but only NLDEV is actually need it.
    
    general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN
    Modules linked in:
    CPU: 0 PID: 522 Comm: syz-executor6 Not tainted 4.13.0+ #4
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5-0-ge51488c-20140602_164612-nilsson.home.kraxel.org 04/01/2014
    task: ffff8800657799c0 task.stack: ffff8800695d000
    RIP: 0010:rdma_nl_rcv_msg+0x13a/0x4c0
    RSP: 0018:ffff8800695d7838 EFLAGS: 00010207
    RAX: dffffc0000000000 RBX: 1ffff1000d2baf0b RCX: 00000000704ff4d7
    RDX: 0000000000000000 RSI: ffffffff81ddb03c RDI: 00000003827fa6bc
    RBP: ffff8800695d7900 R08: ffffffff82ec0578 R09: 0000000000000000
    R10: ffff8800695d7900 R11: 0000000000000001 R12: 000000000000001c
    R13: ffff880069d31e00 R14: 00000000ffffffff R15: ffff880069d357c0
    FS:  00007fee6acb8700(0000) GS:ffff88006ca00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000201a9000 CR3: 0000000059766000 CR4: 00000000000006b0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     ? rdma_nl_multicast+0x80/0x80
     rdma_nl_rcv+0x36b/0x4d0
     ? ibnl_put_attr+0xc0/0xc0
     netlink_unicast+0x4bd/0x6d0
     ? netlink_sendskb+0x50/0x50
     ? drop_futex_key_refs.isra.4+0x68/0xb0
     netlink_sendmsg+0x9ab/0xbd0
     ? nlmsg_notify+0x140/0x140
     ? wake_up_q+0xa1/0xf0
     ? drop_futex_key_refs.isra.4+0x68/0xb0
     sock_sendmsg+0x88/0xd0
     sock_write_iter+0x228/0x3c0
     ? sock_sendmsg+0xd0/0xd0
     ? do_futex+0x3e5/0xb20
     ? iov_iter_init+0xaf/0x1d0
     __vfs_write+0x46e/0x640
     ? sched_clock_cpu+0x1b/0x190
     ? __vfs_read+0x620/0x620
     ? __fget+0x23a/0x390
     ? rw_verify_area+0xca/0x290
     vfs_write+0x192/0x490
     SyS_write+0xde/0x1c0
     ? SyS_read+0x1c0/0x1c0
     ? trace_hardirqs_on_thunk+0x1a/0x1c
     entry_SYSCALL_64_fastpath+0x18/0xad
    RIP: 0033:0x7fee6a74a219
    RSP: 002b:00007fee6acb7d58 EFLAGS: 00000212 ORIG_RAX: 0000000000000001
    RAX: ffffffffffffffda RBX: 0000000000638000 RCX: 00007fee6a74a219
    RDX: 0000000000000078 RSI: 0000000020141000 RDI: 0000000000000006
    RBP: 0000000000000046 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000212 R12: ffff8800695d7f98
    R13: 0000000020141000 R14: 0000000000000006 R15: 00000000ffffffff
    Code: d6 48 b8 00 00 00 00 00 fc ff df 66 41 81 e4 ff 03 44 8d 72 ff 4a 8d 3c b5 c0 a6 7f 82 44 89 b5 4c ff ff ff 48 89 f9 48 c1 e9 03 <0f> b6 0c 01 48 89 f8 83 e0 07 83 c0 03 38 c8 7c 08 84 c9 0f 85
    RIP: rdma_nl_rcv_msg+0x13a/0x4c0 RSP: ffff8800695d7838
    ---[ end trace ba085d123959c8ec ]---
    Kernel panic - not syncing: Fatal exception
    
    Cc: syzkaller <syzkaller@googlegroups.com>
    Fixes: b4c598a67ea1 ("RDMA/netlink: Implement nldev device dumpit calback")
    Reviewed-by: Mark Bloch <markb@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Signed-off-by: Doug Ledford <dledford@redhat.com>

commit 846666fad8d7de79b47a4147e39330fe96e1bdc3
Author: Lan Tianyu <tianyu.lan@intel.com>
Date:   Thu Dec 14 03:01:52 2017 -0500

    KVM/x86: Check input paging mode when cs.l is set
    
    commit f29810335965ac1f7bcb501ee2af5f039f792416 upstream.
    
    Reported by syzkaller:
        WARNING: CPU: 0 PID: 27962 at arch/x86/kvm/emulate.c:5631 x86_emulate_insn+0x557/0x15f0 [kvm]
        Modules linked in: kvm_intel kvm [last unloaded: kvm]
        CPU: 0 PID: 27962 Comm: syz-executor Tainted: G    B   W        4.15.0-rc2-next-20171208+ #32
        Hardware name: Intel Corporation S1200SP/S1200SP, BIOS S1200SP.86B.01.03.0006.040720161253 04/07/2016
        RIP: 0010:x86_emulate_insn+0x557/0x15f0 [kvm]
        RSP: 0018:ffff8807234476d0 EFLAGS: 00010282
        RAX: 0000000000000000 RBX: ffff88072d0237a0 RCX: ffffffffa0065c4d
        RDX: 1ffff100e5a046f9 RSI: 0000000000000003 RDI: ffff88072d0237c8
        RBP: ffff880723447728 R08: ffff88072d020000 R09: ffffffffa008d240
        R10: 0000000000000002 R11: ffffed00e7d87db3 R12: ffff88072d0237c8
        R13: ffff88072d023870 R14: ffff88072d0238c2 R15: ffffffffa008d080
        FS:  00007f8a68666700(0000) GS:ffff880802200000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 000000002009506c CR3: 000000071fec4005 CR4: 00000000003626f0
        Call Trace:
         x86_emulate_instruction+0x3bc/0xb70 [kvm]
         ? reexecute_instruction.part.162+0x130/0x130 [kvm]
         vmx_handle_exit+0x46d/0x14f0 [kvm_intel]
         ? trace_event_raw_event_kvm_entry+0xe7/0x150 [kvm]
         ? handle_vmfunc+0x2f0/0x2f0 [kvm_intel]
         ? wait_lapic_expire+0x25/0x270 [kvm]
         vcpu_enter_guest+0x720/0x1ef0 [kvm]
         ...
    
    When CS.L is set, vcpu should run in the 64 bit paging mode.
    Current kvm set_sregs function doesn't have such check when
    userspace inputs sreg values. This will lead unexpected behavior.
    This patch is to add checks for CS.L, EFER.LME, EFER.LMA and
    CR4.PAE when get SREG inputs from userspace in order to avoid
    unexpected behavior.
    
    Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Jim Mattson <jmattson@google.com>
    Signed-off-by: Tianyu Lan <tianyu.lan@intel.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7880fc541566166d140954825fc83c826534e622
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Dec 18 20:31:41 2017 +0900

    mm,vmscan: Make unregister_shrinker() no-op if register_shrinker() failed.
    
    commit bb422a738f6566f7439cd347d54e321e4fe92a9f upstream.
    
    Syzbot caught an oops at unregister_shrinker() because combination of
    commit 1d3d4437eae1bb29 ("vmscan: per-node deferred work") and fault
    injection made register_shrinker() fail and the caller of
    register_shrinker() did not check for failure.
    
    ----------
    [  554.881422] FAULT_INJECTION: forcing a failure.
    [  554.881422] name failslab, interval 1, probability 0, space 0, times 0
    [  554.881438] CPU: 1 PID: 13231 Comm: syz-executor1 Not tainted 4.14.0-rc8+ #82
    [  554.881443] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    [  554.881445] Call Trace:
    [  554.881459]  dump_stack+0x194/0x257
    [  554.881474]  ? arch_local_irq_restore+0x53/0x53
    [  554.881486]  ? find_held_lock+0x35/0x1d0
    [  554.881507]  should_fail+0x8c0/0xa40
    [  554.881522]  ? fault_create_debugfs_attr+0x1f0/0x1f0
    [  554.881537]  ? check_noncircular+0x20/0x20
    [  554.881546]  ? find_next_zero_bit+0x2c/0x40
    [  554.881560]  ? ida_get_new_above+0x421/0x9d0
    [  554.881577]  ? find_held_lock+0x35/0x1d0
    [  554.881594]  ? __lock_is_held+0xb6/0x140
    [  554.881628]  ? check_same_owner+0x320/0x320
    [  554.881634]  ? lock_downgrade+0x990/0x990
    [  554.881649]  ? find_held_lock+0x35/0x1d0
    [  554.881672]  should_failslab+0xec/0x120
    [  554.881684]  __kmalloc+0x63/0x760
    [  554.881692]  ? lock_downgrade+0x990/0x990
    [  554.881712]  ? register_shrinker+0x10e/0x2d0
    [  554.881721]  ? trace_event_raw_event_module_request+0x320/0x320
    [  554.881737]  register_shrinker+0x10e/0x2d0
    [  554.881747]  ? prepare_kswapd_sleep+0x1f0/0x1f0
    [  554.881755]  ? _down_write_nest_lock+0x120/0x120
    [  554.881765]  ? memcpy+0x45/0x50
    [  554.881785]  sget_userns+0xbcd/0xe20
    (...snipped...)
    [  554.898693] kasan: CONFIG_KASAN_INLINE enabled
    [  554.898724] kasan: GPF could be caused by NULL-ptr deref or user memory access
    [  554.898732] general protection fault: 0000 [#1] SMP KASAN
    [  554.898737] Dumping ftrace buffer:
    [  554.898741]    (ftrace buffer empty)
    [  554.898743] Modules linked in:
    [  554.898752] CPU: 1 PID: 13231 Comm: syz-executor1 Not tainted 4.14.0-rc8+ #82
    [  554.898755] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    [  554.898760] task: ffff8801d1dbe5c0 task.stack: ffff8801c9e38000
    [  554.898772] RIP: 0010:__list_del_entry_valid+0x7e/0x150
    [  554.898775] RSP: 0018:ffff8801c9e3f108 EFLAGS: 00010246
    [  554.898780] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
    [  554.898784] RDX: 0000000000000000 RSI: ffff8801c53c6f98 RDI: ffff8801c53c6fa0
    [  554.898788] RBP: ffff8801c9e3f120 R08: 1ffff100393c7d55 R09: 0000000000000004
    [  554.898791] R10: ffff8801c9e3ef70 R11: 0000000000000000 R12: 0000000000000000
    [  554.898795] R13: dffffc0000000000 R14: 1ffff100393c7e45 R15: ffff8801c53c6f98
    [  554.898800] FS:  0000000000000000(0000) GS:ffff8801db300000(0000) knlGS:0000000000000000
    [  554.898804] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
    [  554.898807] CR2: 00000000dbc23000 CR3: 00000001c7269000 CR4: 00000000001406e0
    [  554.898813] DR0: 0000000020000000 DR1: 0000000020000000 DR2: 0000000000000000
    [  554.898816] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000600
    [  554.898818] Call Trace:
    [  554.898828]  unregister_shrinker+0x79/0x300
    [  554.898837]  ? perf_trace_mm_vmscan_writepage+0x750/0x750
    [  554.898844]  ? down_write+0x87/0x120
    [  554.898851]  ? deactivate_super+0x139/0x1b0
    [  554.898857]  ? down_read+0x150/0x150
    [  554.898864]  ? check_same_owner+0x320/0x320
    [  554.898875]  deactivate_locked_super+0x64/0xd0
    [  554.898883]  deactivate_super+0x141/0x1b0
    ----------
    
    Since allowing register_shrinker() callers to call unregister_shrinker()
    when register_shrinker() failed can simplify error recovery path, this
    patch makes unregister_shrinker() no-op when register_shrinker() failed.
    Also, reset shrinker->nr_deferred in case unregister_shrinker() was
    by error called twice.
    
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: Aliaksei Karaliou <akaraliou.dev@gmail.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Glauber Costa <glauber@scylladb.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e754b4ec589f14ef6efa454ee872580ba1802fa
Author: Florian Westphal <fw@strlen.de>
Date:   Wed Dec 27 23:25:45 2017 +0100

    xfrm: skip policies marked as dead while rehashing
    
    commit 862591bf4f519d1b8d859af720fafeaebdd0162a upstream.
    
    syzkaller triggered following KASAN splat:
    
    BUG: KASAN: slab-out-of-bounds in xfrm_hash_rebuild+0xdbe/0xf00 net/xfrm/xfrm_policy.c:618
    read of size 2 at addr ffff8801c8e92fe4 by task kworker/1:1/23 [..]
    Workqueue: events xfrm_hash_rebuild [..]
     __asan_report_load2_noabort+0x14/0x20 mm/kasan/report.c:428
     xfrm_hash_rebuild+0xdbe/0xf00 net/xfrm/xfrm_policy.c:618
     process_one_work+0xbbf/0x1b10 kernel/workqueue.c:2112
     worker_thread+0x223/0x1990 kernel/workqueue.c:2246 [..]
    
    The reproducer triggers:
    1016                 if (error) {
    1017                         list_move_tail(&walk->walk.all, &x->all);
    1018                         goto out;
    1019                 }
    
    in xfrm_policy_walk() via pfkey (it sets tiny rcv space, dump
    callback returns -ENOBUFS).
    
    In this case, *walk is located the pfkey socket struct, so this socket
    becomes visible in the global policy list.
    
    It looks like this is intentional -- phony walker has walk.dead set to 1
    and all other places skip such "policies".
    
    Ccing original authors of the two commits that seem to expose this
    issue (first patch missed ->dead check, second patch adds pfkey
    sockets to policies dumper list).
    
    Fixes: 880a6fab8f6ba5b ("xfrm: configure policy hash table thresholds by netlink")
    Fixes: 12a169e7d8f4b1c ("ipsec: Put dumpers on the dump list")
    Cc: Herbert Xu <herbert@gondor.apana.org.au>
    Cc: Timo Teras <timo.teras@iki.fi>
    Cc: Christophe Gouault <christophe.gouault@6wind.com>
    Reported-by: syzbot <bot+c028095236fcb6f4348811565b75084c754dc729@syzkaller.appspotmail.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8370258ca0bc9e630043157db862be2c5c341a6
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Sun Dec 31 16:18:56 2017 +0100

    xfrm: fix rcu usage in xfrm_get_type_offload
    
    commit 2f10a61cee8fdb9f8da90f5db687e1862b22cf06 upstream.
    
    request_module can sleep, thus we cannot hold rcu_read_lock() while
    calling it. The function also jumps back and takes rcu_read_lock()
    again (in xfrm_state_get_afinfo()), resulting in an imbalance.
    
    This codepath is triggered whenever a new offloaded state is created.
    
    Fixes: ffdb5211da1c ("xfrm: Auto-load xfrm offload modules")
    Reported-by: syzbot+ca425f44816d749e8eb49755567a75ee48cf4a30@syzkaller.appspotmail.com
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85c31887a20da06fe2803b4ec1031b9af89c1899
Author: Florian Westphal <fw@strlen.de>
Date:   Sat Jan 6 01:13:08 2018 +0100

    xfrm: don't call xfrm_policy_cache_flush while holding spinlock
    
    commit b1bdcb59b64f806ef08d25a85c39ffb3ad841ce6 upstream.
    
    xfrm_policy_cache_flush can sleep, so it cannot be called while holding
    a spinlock.  We could release the lock first, but I don't see why we need
    to invoke this function here in first place, the packet path won't reuse
    an xdst entry unless its still valid.
    
    While at it, add an annotation to xfrm_policy_cache_flush, it would
    have probably caught this bug sooner.
    
    Fixes: ec30d78c14a813 ("xfrm: add xdst pcpu cache")
    Reported-by: syzbot+e149f7d1328c26f9c12f@syzkaller.appspotmail.com
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 201941360944afbde6ab6f5ff70f96f16d334971
Author: Steffen Klassert <steffen.klassert@secunet.com>
Date:   Fri Jan 5 08:35:47 2018 +0100

    esp: Fix GRO when the headers not fully in the linear part of the skb.
    
    commit 374d1b5a81f7f9cc5e7f095ac3d5aff3f6600376 upstream.
    
    The GRO layer does not necessarily pull the complete headers
    into the linear part of the skb, a part may remain on the
    first page fragment. This can lead to a crash if we try to
    pull the headers, so make sure we have them on the linear
    part before pulling.
    
    Fixes: 7785bba299a8 ("esp: Add a software GRO codepath")
    Reported-by: syzbot+82bbd65569c49c6c0c4d@syzkaller.appspotmail.com
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 447f1170c23bea791c3b5efdc0264519fd22f565
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jan 15 09:32:36 2018 +0100

    mac80211_hwsim: validate number of different channels
    
    commit 51a1aaa631c90223888d8beac4d649dc11d2ca55 upstream.
    
    When creating a new radio on the fly, hwsim allows this
    to be done with an arbitrary number of channels, but
    cfg80211 only supports a limited number of simultaneous
    channels, leading to a warning.
    
    Fix this by validating the number - this requires moving
    the define for the maximum out to a visible header file.
    
    Reported-by: syzbot+8dd9051ff19940290931@syzkaller.appspotmail.com
    Fixes: b59ec8dd4394 ("mac80211_hwsim: fix number of channels in interface combinations")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9e441e2e6346284120c9e8e24c4050c245b8895
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jan 15 09:58:27 2018 +0100

    cfg80211: check dev_set_name() return value
    
    commit 59b179b48ce2a6076448a44531242ac2b3f6cef2 upstream.
    
    syzbot reported a warning from rfkill_alloc(), and after a while
    I think that the reason is that it was doing fault injection and
    the dev_set_name() failed, leaving the name NULL, and we didn't
    check the return value and got to rfkill_alloc() with a NULL name.
    Since we really don't want a NULL name, we ought to check the
    return value.
    
    Fixes: fb28ad35906a ("net: struct device - replace bus_id with dev_name(), dev_set_name()")
    Reported-by: syzbot+1ddfb3357e1d7bb5b5d3@syzkaller.appspotmail.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ddf0936b9eefe0af6d046cd7d6a9212478812c9a
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Thu Jan 18 01:15:21 2018 +0100

    bpf: mark dst unknown on inconsistent {s, u}bounds adjustments
    
    commit 6f16101e6a8b4324c36e58a29d9e0dbb287cdedb upstream.
    
    syzkaller generated a BPF proglet and triggered a warning with
    the following:
    
      0: (b7) r0 = 0
      1: (d5) if r0 s<= 0x0 goto pc+0
       R0=inv0 R1=ctx(id=0,off=0,imm=0) R10=fp0
      2: (1f) r0 -= r1
       R0=inv0 R1=ctx(id=0,off=0,imm=0) R10=fp0
      verifier internal error: known but bad sbounds
    
    What happens is that in the first insn, r0's min/max value
    are both 0 due to the immediate assignment, later in the jsle
    test the bounds are updated for the min value in the false
    path, meaning, they yield smin_val = 1, smax_val = 0, and when
    ctx pointer is subtracted from r0, verifier bails out with the
    internal error and throwing a WARN since smin_val != smax_val
    for the known constant.
    
    For min_val > max_val scenario it means that reg_set_min_max()
    and reg_set_min_max_inv() (which both refine existing bounds)
    demonstrated that such branch cannot be taken at runtime.
    
    In above scenario for the case where it will be taken, the
    existing [0, 0] bounds are kept intact. Meaning, the rejection
    is not due to a verifier internal error, and therefore the
    WARN() is not necessary either.
    
    We could just reject such cases in adjust_{ptr,scalar}_min_max_vals()
    when either known scalars have smin_val != smax_val or
    umin_val != umax_val or any scalar reg with bounds
    smin_val > smax_val or umin_val > umax_val. However, there
    may be a small risk of breakage of buggy programs, so handle
    this more gracefully and in adjust_{ptr,scalar}_min_max_vals()
    just taint the dst reg as unknown scalar when we see ops with
    such kind of src reg.
    
    Reported-by: syzbot+6d362cadd45dc0a12ba4@syzkaller.appspotmail.com
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c0b71202f83f7851f173caee9059f830e3b0dfd
Author: Tom Herbert <tom@quantonium.net>
Date:   Wed Jan 24 12:35:40 2018 -0800

    kcm: Only allow TCP sockets to be attached to a KCM mux
    
    commit 581e7226a5d43f629eb6399a121f85f6a15f81be upstream.
    
    TCP sockets for IPv4 and IPv6 that are not listeners or in closed
    stated are allowed to be attached to a KCM mux.
    
    Fixes: ab7ac4eb9832 ("kcm: Kernel Connection Multiplexor module")
    Reported-by: syzbot+8865eaff7f9acd593945@syzkaller.appspotmail.com
    Signed-off-by: Tom Herbert <tom@quantonium.net>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44890e9ff771ef11777b2d1ebf8589255eb12502
Author: Tom Herbert <tom@quantonium.net>
Date:   Wed Jan 24 12:35:41 2018 -0800

    kcm: Check if sk_user_data already set in kcm_attach
    
    commit e5571240236c5652f3e079b1d5866716a7ad819c upstream.
    
    This is needed to prevent sk_user_data being overwritten.
    The check is done under the callback lock. This should prevent
    a socket from being attached twice to a KCM mux. It also prevents
    a socket from being attached for other use cases of sk_user_data
    as long as the other cases set sk_user_data under the lock.
    Followup work is needed to unify all the use cases of sk_user_data
    to use the same locking.
    
    Reported-by: syzbot+114b15f2be420a8886c3@syzkaller.appspotmail.com
    Fixes: ab7ac4eb9832 ("kcm: Kernel Connection Multiplexor module")
    Signed-off-by: Tom Herbert <tom@quantonium.net>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed25667f33032b7715bc4af67e6728020fe75f5e
Author: Jason Wang <jasowang@redhat.com>
Date:   Tue Jan 23 17:27:25 2018 +0800

    vhost: use mutex_lock_nested() in vhost_dev_lock_vqs()
    
    commit e9cb4239134c860e5f92c75bf5321bd377bb505b upstream.
    
    We used to call mutex_lock() in vhost_dev_lock_vqs() which tries to
    hold mutexes of all virtqueues. This may confuse lockdep to report a
    possible deadlock because of trying to hold locks belong to same
    class. Switch to use mutex_lock_nested() to avoid false positive.
    
    Fixes: 6b1e6cc7855b0 ("vhost: new device IOTLB API")
    Reported-by: syzbot+dbb7c1161485e61b0241@syzkaller.appspotmail.com
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ebf7d035c39a70756a9b68a6a670ee8a39ecc586
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 4 16:15:59 2017 +0200

    usb: core: Add a helper function to check the validity of EP type in URB
    
    commit e901b9873876ca30a09253731bd3a6b00c44b5b0 upstream.
    
    This patch adds a new helper function to perform a sanity check of the
    given URB to see whether it contains a valid endpoint.  It's a light-
    weight version of what usb_submit_urb() does, but without the kernel
    warning followed by the stack trace, just returns an error code.
    
    Especially for a driver that doesn't parse the descriptor but fills
    the URB with the fixed endpoint (e.g. some quirks for non-compliant
    devices), this kind of check is preferable at the probe phase before
    actually submitting the urb.
    
    Tested-by: Andrey Konovalov <andreyknvl@google.com>
    Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>