commit b8fa9d76c58c08f5fb00f91080c224a9f5d492c7
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Feb 20 10:09:12 2019 +0100

    Linux 3.18.135

commit ca82c95c00ae84261b88f1c87ec72eb2931937e3
Author: Christian Lamparter <chunkeey@gmail.com>
Date:   Mon May 21 22:57:37 2018 +0200

    pinctrl: msm: fix gpio-hog related boot issues
    
    commit a86caa9ba5d70696ceb35d1d39caa20d8b641387 upstream.
    
    Sven Eckelmann reported an issue with the current IPQ4019 pinctrl.
    Setting up any gpio-hog in the device-tree for his device would
    "kill the bootup completely":
    
    | [    0.477838] msm_serial 78af000.serial: could not find pctldev for node /soc/pinctrl@1000000/serial_pinmux, deferring probe
    | [    0.499828] spi_qup 78b5000.spi: could not find pctldev for node /soc/pinctrl@1000000/spi_0_pinmux, deferring probe
    | [    1.298883] requesting hog GPIO enable USB2 power (chip 1000000.pinctrl, offset 58) failed, -517
    | [    1.299609] gpiochip_add_data: GPIOs 0..99 (1000000.pinctrl) failed to register
    | [    1.308589] ipq4019-pinctrl 1000000.pinctrl: Failed register gpiochip
    | [    1.316586] msm_serial 78af000.serial: could not find pctldev for node /soc/pinctrl@1000000/serial_pinmux, deferring probe
    | [    1.322415] spi_qup 78b5000.spi: could not find pctldev for node /soc/pinctrl@1000000/spi_0_pinmux, deferri
    
    This was also verified on a RT-AC58U (IPQ4018) which would
    no longer boot, if a gpio-hog was specified. (Tried forcing
    the USB LED PIN (GPIO0) to high.).
    
    The problem is that Pinctrl+GPIO registration is currently
    peformed in the following order in pinctrl-msm.c:
            1. pinctrl_register()
            2. gpiochip_add()
            3. gpiochip_add_pin_range()
    
    The actual error code -517 == -EPROBE_DEFER is coming from
    pinctrl_get_device_gpio_range(), which is called through:
            gpiochip_add
                of_gpiochip_add
                    of_gpiochip_scan_gpios
                        gpiod_hog
                            gpiochip_request_own_desc
                                __gpiod_request
                                    chip->request
                                        gpiochip_generic_request
                                           pinctrl_gpio_request
                                              pinctrl_get_device_gpio_range
    
    pinctrl_get_device_gpio_range() is unable to find any valid
    pin ranges, since nothing has been added to the pinctrldev_list yet.
    so the range can't be found, and the operation fails with -EPROBE_DEFER.
    
    This patch fixes the issue by adding the "gpio-ranges" property to
    the pinctrl device node of all upstream Qcom SoC. The pin ranges are
    then added by the gpio core.
    
    In order to remain compatible with older, existing DTs (and ACPI)
    a check for the "gpio-ranges" property has been added to
    msm_gpio_init(). This prevents the driver of adding the same entry
    to the pinctrldev_list twice.
    
    Reported-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Tested-by: Sven Eckelmann <sven.eckelmann@openmesh.com> [ipq4019]
    Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e5c77104be2b8cd3e19c7e6f04fe7b3ae4ba40c
Author: John Youn <johnyoun@synopsys.com>
Date:   Thu Nov 3 17:55:45 2016 -0700

    usb: dwc2: Remove unnecessary kfree
    
    commit cd4b1e34655d46950c065d9284b596cd8d7b28cd upstream.
    
    This shouldn't be freed by the HCD as it is owned by the core and
    allocated with devm_kzalloc.
    
    Signed-off-by: John Youn <johnyoun@synopsys.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a96103a842025b1b7620b3dca95eb469c3dc06f
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Apr 19 09:59:26 2017 -0700

    kaweth: use skb_cow_head() to deal with cloned skbs
    
    commit 39fba7835aacda65284a86e611774cbba71dac20 upstream.
    
    We can use skb_cow_head() to properly deal with clones,
    especially the ones coming from TCP stack that allow their head being
    modified. This avoids a copy.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: James Hughes <james.hughes@raspberrypi.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d14da01ad342437cdb5a4106fb5ad7bbee8c11ef
Author: James Hughes <james.hughes@raspberrypi.org>
Date:   Wed Apr 19 11:13:40 2017 +0100

    smsc95xx: Use skb_cow_head to deal with cloned skbs
    
    commit e9156cd26a495a18706e796f02a81fee41ec14f4 upstream.
    
    The driver was failing to check that the SKB wasn't cloned
    before adding checksum data.
    Replace existing handling to extend/copy the header buffer
    with skb_cow_head.
    
    Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Woojung Huh <Woojung.Huh@microchip.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 390bb181dcd2f75cc94d8cc3b9e39a304b5fb7b4
Author: Borislav Petkov <bp@suse.de>
Date:   Tue Feb 12 14:28:03 2019 +0100

    x86/a.out: Clear the dump structure initially
    
    commit 10970e1b4be9c74fce8ab6e3c34a7d718f063f2c upstream.
    
    dump_thread32() in aout_core_dump() does not clear the user32 structure
    allocated on the stack as the first thing on function entry.
    
    As a result, the dump.u_comm, dump.u_ar0 and dump.signal which get
    assigned before the clearing, get overwritten.
    
    Rename that function to fill_dump() to make it clear what it does and
    call it first thing.
    
    This was caught while staring at a patch by Derek Robson
    <robsonde@gmail.com>.
    
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: Derek Robson <robsonde@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Michael Matz <matz@suse.de>
    Cc: x86@kernel.org
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20190202005512.3144-1-robsonde@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f7e684c1a5bcae8a492a56f5eb1db179e4ae165e
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Mon Feb 11 23:27:42 2019 -0600

    signal: Restore the stop PTRACE_EVENT_EXIT
    
    commit cf43a757fd49442bc38f76088b70c2299eed2c2f upstream.
    
    In the middle of do_exit() there is there is a call
    "ptrace_event(PTRACE_EVENT_EXIT, code);" That call places the process
    in TACKED_TRACED aka "(TASK_WAKEKILL | __TASK_TRACED)" and waits for
    for the debugger to release the task or SIGKILL to be delivered.
    
    Skipping past dequeue_signal when we know a fatal signal has already
    been delivered resulted in SIGKILL remaining pending and
    TIF_SIGPENDING remaining set.  This in turn caused the
    scheduler to not sleep in PTACE_EVENT_EXIT as it figured
    a fatal signal was pending.  This also caused ptrace_freeze_traced
    in ptrace_check_attach to fail because it left a per thread
    SIGKILL pending which is what fatal_signal_pending tests for.
    
    This difference in signal state caused strace to report
    strace: Exit of unknown pid NNNNN ignored
    
    Therefore update the signal handling state like dequeue_signal
    would when removing a per thread SIGKILL, by removing SIGKILL
    from the per thread signal mask and clearing TIF_SIGPENDING.
    
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Reported-by: Oleg Nesterov <oleg@redhat.com>
    Reported-by: Ivan Delalande <colona@arista.com>
    Cc: stable@vger.kernel.org
    Fixes: 35634ffa1751 ("signal: Always notice exiting tasks")
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f0d202b2d56e6bc2eeb90000b874f3d480a7e71
Author: Andreas Ziegler <andreas.ziegler@fau.de>
Date:   Wed Jan 16 15:16:29 2019 +0100

    tracing/uprobes: Fix output for multiple string arguments
    
    commit 0722069a5374b904ec1a67f91249f90e1cfae259 upstream.
    
    When printing multiple uprobe arguments as strings the output for the
    earlier arguments would also include all later string arguments.
    
    This is best explained in an example:
    
    Consider adding a uprobe to a function receiving two strings as
    parameters which is at offset 0xa0 in strlib.so and we want to print
    both parameters when the uprobe is hit (on x86_64):
    
    $ echo 'p:func /lib/strlib.so:0xa0 +0(%di):string +0(%si):string' > \
        /sys/kernel/debug/tracing/uprobe_events
    
    When the function is called as func("foo", "bar") and we hit the probe,
    the trace file shows a line like the following:
    
      [...] func: (0x7f7e683706a0) arg1="foobar" arg2="bar"
    
    Note the extra "bar" printed as part of arg1. This behaviour stacks up
    for additional string arguments.
    
    The strings are stored in a dynamically growing part of the uprobe
    buffer by fetch_store_string() after copying them from userspace via
    strncpy_from_user(). The return value of strncpy_from_user() is then
    directly used as the required size for the string. However, this does
    not take the terminating null byte into account as the documentation
    for strncpy_from_user() cleary states that it "[...] returns the
    length of the string (not including the trailing NUL)" even though the
    null byte will be copied to the destination.
    
    Therefore, subsequent calls to fetch_store_string() will overwrite
    the terminating null byte of the most recently fetched string with
    the first character of the current string, leading to the
    "accumulation" of strings in earlier arguments in the output.
    
    Fix this by incrementing the return value of strncpy_from_user() by
    one if we did not hit the maximum buffer size.
    
    Link: http://lkml.kernel.org/r/20190116141629.5752-1-andreas.ziegler@fau.de
    
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: 5baaa59ef09e ("tracing/probes: Implement 'memory' fetch method for uprobes")
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Andreas Ziegler <andreas.ziegler@fau.de>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5205a12327f7996fd9bdf678190f66e29fd9396a
Author: Meelis Roos <mroos@linux.ee>
Date:   Fri Oct 12 12:27:51 2018 +0300

    alpha: Fix Eiger NR_IRQS to 128
    
    commit bfc913682464f45bc4d6044084e370f9048de9d5 upstream.
    
    Eiger machine vector definition has nr_irqs 128, and working 2.6.26
    boot shows SCSI getting IRQ-s 64 and 65. Current kernel boot fails
    because Symbios SCSI fails to request IRQ-s and does not find the disks.
    It has been broken at least since 3.18 - the earliest I could test with
    my gcc-5.
    
    The headers have moved around and possibly another order of defines has
    worked in the past - but since 128 seems to be correct and used, fix
    arch/alpha/include/asm/irq.h to have NR_IRQS=128 for Eiger.
    
    This fixes 4.19-rc7 boot on my Force Flexor A264 (Eiger subarch).
    
    Cc: stable@vger.kernel.org # v3.18+
    Signed-off-by: Meelis Roos <mroos@linux.ee>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8a1e1e4cf58808b94e0b758474313ef9d97bcfe1
Author: Sergei Trofimovich <slyfox@gentoo.org>
Date:   Mon Dec 31 11:53:55 2018 +0000

    alpha: fix page fault handling for r16-r18 targets
    
    commit 491af60ffb848b59e82f7c9145833222e0bf27a5 upstream.
    
    Fix page fault handling code to fixup r16-r18 registers.
    Before the patch code had off-by-two registers bug.
    This bug caused overwriting of ps,pc,gp registers instead
    of fixing intended r16,r17,r18 (see `struct pt_regs`).
    
    More details:
    
    Initially Dmitry noticed a kernel bug as a failure
    on strace test suite. Test passes unmapped userspace
    pointer to io_submit:
    
    ```c
        #include <err.h>
        #include <unistd.h>
        #include <sys/mman.h>
        #include <asm/unistd.h>
        int main(void)
        {
            unsigned long ctx = 0;
            if (syscall(__NR_io_setup, 1, &ctx))
                err(1, "io_setup");
            const size_t page_size = sysconf(_SC_PAGESIZE);
            const size_t size = page_size * 2;
            void *ptr = mmap(NULL, size, PROT_READ | PROT_WRITE,
                             MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
            if (MAP_FAILED == ptr)
                err(1, "mmap(%zu)", size);
            if (munmap(ptr, size))
                err(1, "munmap");
            syscall(__NR_io_submit, ctx, 1, ptr + page_size);
            syscall(__NR_io_destroy, ctx);
            return 0;
        }
    ```
    
    Running this test causes kernel to crash when handling page fault:
    
    ```
        Unable to handle kernel paging request at virtual address ffffffffffff9468
        CPU 3
        aio(26027): Oops 0
        pc = [<fffffc00004eddf8>]  ra = [<fffffc00004edd5c>]  ps = 0000    Not tainted
        pc is at sys_io_submit+0x108/0x200
        ra is at sys_io_submit+0x6c/0x200
        v0 = fffffc00c58e6300  t0 = fffffffffffffff2  t1 = 000002000025e000
        t2 = fffffc01f159fef8  t3 = fffffc0001009640  t4 = fffffc0000e0f6e0
        t5 = 0000020001002e9e  t6 = 4c41564e49452031  t7 = fffffc01f159c000
        s0 = 0000000000000002  s1 = 000002000025e000  s2 = 0000000000000000
        s3 = 0000000000000000  s4 = 0000000000000000  s5 = fffffffffffffff2
        s6 = fffffc00c58e6300
        a0 = fffffc00c58e6300  a1 = 0000000000000000  a2 = 000002000025e000
        a3 = 00000200001ac260  a4 = 00000200001ac1e8  a5 = 0000000000000001
        t8 = 0000000000000008  t9 = 000000011f8bce30  t10= 00000200001ac440
        t11= 0000000000000000  pv = fffffc00006fd320  at = 0000000000000000
        gp = 0000000000000000  sp = 00000000265fd174
        Disabling lock debugging due to kernel taint
        Trace:
        [<fffffc0000311404>] entSys+0xa4/0xc0
    ```
    
    Here `gp` has invalid value. `gp is s overwritten by a fixup for the
    following page fault handler in `io_submit` syscall handler:
    
    ```
        __se_sys_io_submit
        ...
            ldq     a1,0(t1)
            bne     t0,4280 <__se_sys_io_submit+0x180>
    ```
    
    After a page fault `t0` should contain -EFALUT and `a1` is 0.
    Instead `gp` was overwritten in place of `a1`.
    
    This happens due to a off-by-two bug in `dpf_reg()` for `r16-r18`
    (aka `a0-a2`).
    
    I think the bug went unnoticed for a long time as `gp` is one
    of scratch registers. Any kernel function call would re-calculate `gp`.
    
    Dmitry tracked down the bug origin back to 2.1.32 kernel version
    where trap_a{0,1,2} fields were inserted into struct pt_regs.
    And even before that `dpf_reg()` contained off-by-one error.
    
    Cc: Richard Henderson <rth@twiddle.net>
    Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    Cc: linux-alpha@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Reported-and-reviewed-by: "Dmitry V. Levin" <ldv@altlinux.org>
    Cc: stable@vger.kernel.org # v2.1.32+
    Bug: https://bugs.gentoo.org/672040
    Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d8cfdac38725bc3e74adacdf37266a51067f375
Author: Matti Kurkela <Matti.Kurkela@iki.fi>
Date:   Thu Feb 7 23:49:23 2019 -0800

    Input: elantech - enable 3rd button support on Fujitsu CELSIUS H780
    
    commit e8b22d0a329f0fb5c7ef95406872d268f01ee3b1 upstream.
    
    Like Fujitsu CELSIUS H760, the H780 also has a three-button Elantech
    touchpad, but the driver needs to be told so to enable the middle touchpad
    button.
    
    The elantech_dmi_force_crc_enabled quirk was not necessary with the H780.
    
    Also document the fw_version and caps values detected for both H760 and
    H780 models.
    
    Signed-off-by: Matti Kurkela <Matti.Kurkela@iki.fi>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 382fc3571870d90e7ba488f74c97bc9d92f29d86
Author: Jonathan Bakker <xc-racer2@live.ca>
Date:   Wed Feb 6 10:45:37 2019 -0800

    Input: bma150 - register input device after setting private data
    
    commit 90cc55f067f6ca0e64e5e52883ece47d8af7b67b upstream.
    
    Otherwise we introduce a race condition where userspace can request input
    before we're ready leading to null pointer dereference such as
    
    input: bma150 as /devices/platform/i2c-gpio-2/i2c-5/5-0038/input/input3
    Unable to handle kernel NULL pointer dereference at virtual address 00000018
    pgd = (ptrval)
    [00000018] *pgd=55dac831, *pte=00000000, *ppte=00000000
    Internal error: Oops: 17 [#1] PREEMPT ARM
    Modules linked in: bma150 input_polldev [last unloaded: bma150]
    CPU: 0 PID: 2870 Comm: accelerometer Not tainted 5.0.0-rc3-dirty #46
    Hardware name: Samsung S5PC110/S5PV210-based board
    PC is at input_event+0x8/0x60
    LR is at bma150_report_xyz+0x9c/0xe0 [bma150]
    pc : [<80450f70>]    lr : [<7f0a614c>]    psr: 800d0013
    sp : a4c1fd78  ip : 00000081  fp : 00020000
    r10: 00000000  r9 : a5e2944c  r8 : a7455000
    r7 : 00000016  r6 : 00000101  r5 : a7617940  r4 : 80909048
    r3 : fffffff2  r2 : 00000000  r1 : 00000003  r0 : 00000000
    Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
    Control: 10c5387d  Table: 54e34019  DAC: 00000051
    Process accelerometer (pid: 2870, stack limit = 0x(ptrval))
    Stackck: (0xa4c1fd78 to 0xa4c20000)
    fd60:                                                       fffffff3 fc813f6c
    fd80: 40410581 d7530ce3 a5e2817c a7617f00 a5e29404 a5e2817c 00000000 7f008324
    fda0: a5e28000 8044f59c a5fdd9d0 a5e2945c a46a4a00 a5e29668 a7455000 80454f10
    fdc0: 80909048 a5e29668 a5fdd9d0 a46a4a00 806316d0 00000000 a46a4a00 801df5f0
    fde0: 00000000 d7530ce3 a4c1fec0 a46a4a00 00000000 a5fdd9d0 a46a4a08 801df53c
    fe00: 00000000 801d74bc a4c1fec0 00000000 a4c1ff70 00000000 a7038da8 00000000
    fe20: a46a4a00 801e91fc a411bbe0 801f2e88 00000004 00000000 80909048 00000041
    fe40: 00000000 00020000 00000000 dead4ead a6a88da0 00000000 ffffe000 806fcae8
    fe60: a4c1fec8 00000000 80909048 00000002 a5fdd9d0 a7660110 a411bab0 00000001
    fe80: dead4ead ffffffff ffffffff a4c1fe8c a4c1fe8c d7530ce3 20000013 80909048
    fea0: 80909048 a4c1ff70 00000001 fffff000 a4c1e000 00000005 00026038 801eabd8
    fec0: a7660110 a411bab0 b9394901 00000006 a696201b 76fb3000 00000000 a7039720
    fee0: a5fdd9d0 00000101 00000002 00000096 00000000 00000000 00000000 a4c1ff00
    ff00: a6b310f4 805cb174 a6b310f4 00000010 00000fe0 00000010 a4c1e000 d7530ce3
    ff20: 00000003 a5f41400 a5f41424 00000000 a6962000 00000000 00000003 00000002
    ff40: ffffff9c 000a0000 80909048 d7530ce3 a6962000 00000003 80909048 ffffff9c
    ff60: a6962000 801d890c 00000000 00000000 00020000 a7590000 00000004 00000100
    ff80: 00000001 d7530ce3 000288b8 00026320 000288b8 00000005 80101204 a4c1e000
    ffa0: 00000005 80101000 000288b8 00026320 000288b8 000a0000 00000000 00000000
    ffc0: 000288b8 00026320 000288b8 00000005 7eef3bac 000264e8 00028ad8 00026038
    ffe0: 00000005 7eef3300 76f76e91 76f78546 800d0030 000288b8 00000000 00000000
    [<80450f70>] (input_event) from [<a5e2817c>] (0xa5e2817c)
    Code: e1a08148 eaffffa8 e351001f 812fff1e (e590c018)
    ---[ end trace 1c691ee85f2ff243 ]---
    
    Signed-off-by: Jonathan Bakker <xc-racer2@live.ca>
    Signed-off-by: Paweł Chmiel <pawel.mikolaj.chmiel@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 51700aa4bfed4cb2f724386f98bca13277109f2f
Author: Manuel Reinhardt <manuel.rhdt@gmail.com>
Date:   Thu Jan 31 15:32:35 2019 +0100

    ALSA: usb-audio: Fix implicit fb endpoint setup by quirk
    
    commit 2bc16b9f3223d049b57202ee702fcb5b9b507019 upstream.
    
    The commit a60945fd08e4 ("ALSA: usb-audio: move implicit fb quirks to
    separate function") introduced an error in the handling of quirks for
    implicit feedback endpoints. This commit fixes this.
    
    If a quirk successfully sets up an implicit feedback endpoint, usb-audio
    no longer tries to find the implicit fb endpoint itself.
    
    Fixes: a60945fd08e4 ("ALSA: usb-audio: move implicit fb quirks to separate function")
    Signed-off-by: Manuel Reinhardt <manuel.rhdt@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7cda3ff4d648cb4c0862418b786063af52ad845
Author: Ingo Molnar <mingo@kernel.org>
Date:   Wed Feb 13 07:57:02 2019 +0100

    perf/core: Fix impossible ring-buffer sizes warning
    
    commit 528871b456026e6127d95b1b2bd8e3a003dc1614 upstream.
    
    The following commit:
    
      9dff0aa95a32 ("perf/core: Don't WARN() for impossible ring-buffer sizes")
    
    results in perf recording failures with larger mmap areas:
    
      root@skl:/tmp# perf record -g -a
      failed to mmap with 12 (Cannot allocate memory)
    
    The root cause is that the following condition is buggy:
    
            if (order_base_2(size) >= MAX_ORDER)
                    goto fail;
    
    The problem is that @size is in bytes and MAX_ORDER is in pages,
    so the right test is:
    
            if (order_base_2(size) >= PAGE_SHIFT+MAX_ORDER)
                    goto fail;
    
    Fix it.
    
    Reported-by: "Jin, Yao" <yao.jin@linux.intel.com>
    Bisected-by: Borislav Petkov <bp@alien8.de>
    Analyzed-by: Peter Zijlstra <peterz@infradead.org>
    Cc: Julien Thierry <julien.thierry@arm.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: <stable@vger.kernel.org>
    Fixes: 9dff0aa95a32 ("perf/core: Don't WARN() for impossible ring-buffer sizes")
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32f501297e0ca4d0c290aaf4da9993def414fff5
Author: Ross Lagerwall <ross.lagerwall@citrix.com>
Date:   Tue Jan 8 18:30:56 2019 +0000

    cifs: Limit memory used by lock request calls to a page
    
    [ Upstream commit 92a8109e4d3a34fb6b115c9098b51767dc933444 ]
    
    The code tries to allocate a contiguous buffer with a size supplied by
    the server (maxBuf). This could fail if memory is fragmented since it
    results in high order allocations for commonly used server
    implementations. It is also wasteful since there are probably
    few locks in the usual case. Limit the buffer to be no larger than a
    page to avoid memory allocation failures due to fragmentation.
    
    Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 95dd551264fd184467e6df875fddbf9e2b643d1a
Author: Nicholas Mc Guire <hofrat@osadl.org>
Date:   Sat Dec 1 12:57:18 2018 +0100

    gpio: pl061: handle failed allocations
    
    [ Upstream commit df209c43a0e8258e096fb722dfbdae4f0dd13fde ]
    
    devm_kzalloc(), devm_kstrdup() and devm_kasprintf() all can
    fail internal allocation and return NULL. Using any of the assigned
    objects without checking is not safe. As this is early in the boot
    phase and these allocations really should not fail, any failure here
    is probably an indication of a more serious issue so it makes little
    sense to try and rollback the previous allocated resources or try to
    continue;  but rather the probe function is simply exited with -ENOMEM.
    
    Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
    Fixes: 684284b64aae ("ARM: integrator: add MMCI device to IM-PD1")
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b99b873675cbfec5d28a4c7a2132855f7cb1f411
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Tue Jan 8 00:08:18 2019 +0100

    ARM: dts: kirkwood: Fix polarity of GPIO fan lines
    
    [ Upstream commit b5f034845e70916fd33e172fad5ad530a29c10ab ]
    
    These two lines are active high, not active low. The bug was
    found when we changed the kernel to respect the polarity defined
    in the device tree.
    
    Fixes: 1b90e06b1429 ("ARM: kirkwood: Use devicetree to define DNS-32[05] fan")
    Cc: Jamie Lentin <jm@lentin.co.uk>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: Gregory Clement <gregory.clement@bootlin.com>
    Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Cc: Julien D'Ascenzio <jdascenzio@posteo.net>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Tested-by: Jamie Lentin <jm@lentin.co.uk>
    Reported-by: Julien D'Ascenzio <jdascenzio@posteo.net>
    Tested-by: Julien D'Ascenzio <jdascenzio@posteo.net>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e5cd1083a5cde5a5e0e81579912be78bf7eb7989
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Wed Dec 19 13:47:24 2018 +0200

    ARM: dts: da850-evm: Correct the sound card name
    
    [ Upstream commit 7fca69d4e43fa1ae9cb4f652772c132dc5a659c6 ]
    
    To avoid  the following error:
    asoc-simple-card sound: ASoC: Failed to create card debugfs directory
    
    Which is because the card name contains '/' character, which can not be
    used in file or directory names.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 36c3e2f0890beda9deb9371490db25a537619adb
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Feb 14 15:02:18 2019 -0800

    Revert "exec: load_script: don't blindly truncate shebang string"
    
    commit cb5b020a8d38f77209d0472a0fea755299a8ec78 upstream.
    
    This reverts commit 8099b047ecc431518b9bb6bdbba3549bbecdc343.
    
    It turns out that people do actually depend on the shebang string being
    truncated, and on the fact that an interpreter (like perl) will often
    just re-interpret it entirely to get the full argument list.
    
    Reported-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ed044e3db5d5f948fbbc2ae10d865a87b918cbe
Author: Andrzej Hajda <a.hajda@samsung.com>
Date:   Mon Sep 21 15:33:39 2015 +0200

    usb: host: ehci-msm: fix handling platform_get_irq result
    
    commit 0c43e9d835b003d862a5f76e3affcc1f973fb3c0 upstream.
    
    The function can return negative values.
    
    The problem has been detected using proposed semantic patch
    scripts/coccinelle/tests/unsigned_lesser_than_zero.cocci [1].
    
    [1]: http://permalink.gmane.org/gmane.linux.kernel/2038576
    
    Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d86449d2b4d1280caf8be0a2ab6a661894c9b397
Author: Sven Eckelmann <sven@narfation.org>
Date:   Mon Dec 31 22:31:01 2018 +0100

    batman-adv: Force mac header to start of data on xmit
    
    commit 9114daa825fc3f335f9bea3313ce667090187280 upstream.
    
    The caller of ndo_start_xmit may not already have called
    skb_reset_mac_header. The returned value of skb_mac_header/eth_hdr
    therefore can be in the wrong position and even outside the current skbuff.
    This for example happens when the user binds to the device using a
    PF_PACKET-SOCK_RAW with enabled qdisc-bypass:
    
      int opt = 4;
      setsockopt(sock, SOL_PACKET, PACKET_QDISC_BYPASS, &opt, sizeof(opt));
    
    Since eth_hdr is used all over the codebase, the batadv_interface_tx
    function must always take care of resetting it.
    
    Fixes: c6c8fea29769 ("net: Add batman-adv meshing protocol")
    Reported-by: syzbot+9d7405c7faa390e60b4e@syzkaller.appspotmail.com
    Reported-by: syzbot+7d20bc3f1ddddc0f9079@syzkaller.appspotmail.com
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 863938b84c4b2c34623c76dd838014e011951ccc
Author: Sven Eckelmann <sven@narfation.org>
Date:   Sun Dec 30 12:46:01 2018 +0100

    batman-adv: Avoid WARN on net_device without parent in netns
    
    commit 955d3411a17f590364238bd0d3329b61f20c1cd2 upstream.
    
    It is not allowed to use WARN* helpers on potential incorrect input from
    the user or transient problems because systems configured as panic_on_warn
    will reboot due to such a problem.
    
    A NULL return value of __dev_get_by_index can be caused by various problems
    which can either be related to the system configuration or problems
    (incorrectly returned network namespaces) in other (virtual) net_device
    drivers. batman-adv should not cause a (harmful) WARN in this situation and
    instead only report it via a simple message.
    
    Fixes: b7eddd0b3950 ("batman-adv: prevent using any virtual device created on batman-adv as hard-interface")
    Reported-by: syzbot+c764de0fcfadca9a8595@syzkaller.appspotmail.com
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 98af4f7e3377fa73a6aaa8872b111d9cf03570bb
Author: Florian Westphal <fw@strlen.de>
Date:   Wed Jan 9 14:37:34 2019 +0100

    xfrm: refine validation of template and selector families
    
    commit 35e6103861a3a970de6c84688c6e7a1f65b164ca upstream.
    
    The check assumes that in transport mode, the first templates family
    must match the address family of the policy selector.
    
    Syzkaller managed to build a template using MODE_ROUTEOPTIMIZATION,
    with ipv4-in-ipv6 chain, leading to following splat:
    
    BUG: KASAN: stack-out-of-bounds in xfrm_state_find+0x1db/0x1854
    Read of size 4 at addr ffff888063e57aa0 by task a.out/2050
     xfrm_state_find+0x1db/0x1854
     xfrm_tmpl_resolve+0x100/0x1d0
     xfrm_resolve_and_create_bundle+0x108/0x1000 [..]
    
    Problem is that addresses point into flowi4 struct, but xfrm_state_find
    treats them as being ipv6 because it uses templ->encap_family is used
    (AF_INET6 in case of reproducer) rather than family (AF_INET).
    
    This patch inverts the logic: Enforce 'template family must match
    selector' EXCEPT for tunnel and BEET mode.
    
    In BEET and Tunnel mode, xfrm_tmpl_resolve_one will have remote/local
    address pointers changed to point at the addresses found in the template,
    rather than the flowi ones, so no oob read will occur.
    
    Reported-by: 3ntr0py1337@gmail.com
    Reported-by: Daniel Borkmann <daniel@iogearbox.net>
    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 e85998a9e10ffee858a2ef94d542e1f9dae99b29
Author: Ilya Dryomov <idryomov@gmail.com>
Date:   Mon Jan 14 21:13:10 2019 +0100

    libceph: avoid KEEPALIVE_PENDING races in ceph_con_keepalive()
    
    commit 4aac9228d16458cedcfd90c7fb37211cf3653ac3 upstream.
    
    con_fault() can transition the connection into STANDBY right after
    ceph_con_keepalive() clears STANDBY in clear_standby():
    
        libceph user thread               ceph-msgr worker
    
    ceph_con_keepalive()
      mutex_lock(&con->mutex)
      clear_standby(con)
      mutex_unlock(&con->mutex)
                                    mutex_lock(&con->mutex)
                                    con_fault()
                                      ...
                                      if KEEPALIVE_PENDING isn't set
                                        set state to STANDBY
                                      ...
                                    mutex_unlock(&con->mutex)
      set KEEPALIVE_PENDING
      set WRITE_PENDING
    
    This triggers warnings in clear_standby() when either ceph_con_send()
    or ceph_con_keepalive() get to clearing STANDBY next time.
    
    I don't see a reason to condition queue_con() call on the previous
    value of KEEPALIVE_PENDING, so move the setting of KEEPALIVE_PENDING
    into the critical section -- unlike WRITE_PENDING, KEEPALIVE_PENDING
    could have been a non-atomic flag.
    
    Reported-by: syzbot+acdeb633f6211ccdf886@syzkaller.appspotmail.com
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Tested-by: Myungho Jung <mhjungk@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit be120f656b4f3f71d9d82d52d5604e2fb1fb9a94
Author: Vladis Dronov <vdronov@redhat.com>
Date:   Tue Jan 29 11:58:35 2019 +0100

    HID: debug: fix the ring buffer implementation
    
    commit 13054abbaa4f1fd4e6f3b4b63439ec033b4c8035 upstream.
    
    Ring buffer implementation in hid_debug_event() and hid_debug_events_read()
    is strange allowing lost or corrupted data. After commit 717adfdaf147
    ("HID: debug: check length before copy_to_user()") it is possible to enter
    an infinite loop in hid_debug_events_read() by providing 0 as count, this
    locks up a system. Fix this by rewriting the ring buffer implementation
    with kfifo and simplify the code.
    
    This fixes CVE-2019-3819.
    
    v2: fix an execution logic and add a comment
    v3: use __set_current_state() instead of set_current_state()
    
    Backport to v3.18: some (tree-wide) patches are missing in v3.18 so
    cherry-pick relevant pieces from:
     * 6396bb221514 ("treewide: kzalloc() -> kcalloc()")
     * a9a08845e9ac ("vfs: do bulk POLL* -> EPOLL* replacement")
     * 92529623d242 ("HID: debug: improve hid_debug_event()")
     * 174cd4b1e5fb ("sched/headers: Prepare to move signal wakeup & sigpending
       methods from <linux/sched.h> into <linux/sched/signal.h>")
     * 8fec02a73e31 ("HID: debug: fix error handling in hid_debug_events_read()")
    
    
    Link: https://bugzilla.redhat.com/show_bug.cgi?id=1669187
    Cc: stable@vger.kernel.org # v4.18+
    Fixes: cd667ce24796 ("HID: use debugfs for events/reports dumping")
    Fixes: 717adfdaf147 ("HID: debug: check length before copy_to_user()")
    Signed-off-by: Vladis Dronov <vdronov@redhat.com>
    Reviewed-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 568a25a1f5484ca91b52d71e537b73bfff788ffb
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Thu Jan 31 10:55:37 2019 +0100

    drm/vmwgfx: Return error code from vmw_execbuf_copy_fence_user
    
    commit 728354c005c36eaf44b6e5552372b67e60d17f56 upstream.
    
    The function was unconditionally returning 0, and a caller would have to
    rely on the returned fence pointer being NULL to detect errors. However,
    the function vmw_execbuf_copy_fence_user() would expect a non-zero error
    code in that case and would BUG otherwise.
    
    So make sure we return a proper non-zero error code if the fence pointer
    returned is NULL.
    
    Cc: <stable@vger.kernel.org>
    Fixes: ae2a104058e2: ("vmwgfx: Implement fence objects")
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Deepak Rawat <drawat@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b102a170e2166ea7c81327afe4307ab1667a39a
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Mon Jan 28 10:31:33 2019 +0100

    drm/vmwgfx: Fix setting of dma masks
    
    commit 4cbfa1e6c09e98450aab3240e5119b0ab2c9795b upstream.
    
    Previously we set only the dma mask and not the coherent mask. Fix that.
    Also, for clarity, make sure both are initially set to 64 bits.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 0d00c488f3de: ("drm/vmwgfx: Fix the driver for large dma addresses")
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Deepak Rawat <drawat@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3351b1504d40893f196259a21feb5d1651f4da08
Author: Tina Zhang <tina.zhang@intel.com>
Date:   Wed Jan 23 15:28:59 2019 +0800

    drm/modes: Prevent division by zero htotal
    
    commit a2fcd5c84f7a7825e028381b10182439067aa90d upstream.
    
    This patch prevents division by zero htotal.
    
    In a follow-up mail Tina writes:
    
    > > How did you manage to get here with htotal == 0? This needs backtraces (or if
    > > this is just about static checkers, a mention of that).
    > > -Daniel
    >
    > In GVT-g, we are trying to enable a virtual display w/o setting timings for a pipe
    > (a.k.a htotal=0), then we met the following kernel panic:
    >
    > [   32.832048] divide error: 0000 [#1] SMP PTI
    > [   32.833614] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.18.0-rc4-sriov+ #33
    > [   32.834438] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.10.1-0-g8891697-dirty-20180511_165818-tinazhang-linux-1 04/01/2014
    > [   32.835901] RIP: 0010:drm_mode_hsync+0x1e/0x40
    > [   32.836004] Code: 31 c0 c3 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 8b 87 d8 00 00 00 85 c0 75 22 8b 4f 68 85 c9 78 1b 69 47 58 e8 03 00 00 99 <f7> f9 b9 d3 4d 62 10 05 f4 01 00 00 f7 e1 89 d0 c1 e8 06 f3 c3 66
    > [   32.836004] RSP: 0000:ffffc900000ebb90 EFLAGS: 00010206
    > [   32.836004] RAX: 0000000000000000 RBX: ffff88001c67c8a0 RCX: 0000000000000000
    > [   32.836004] RDX: 0000000000000000 RSI: ffff88001c67c000 RDI: ffff88001c67c8a0
    > [   32.836004] RBP: ffff88001c7d03a0 R08: ffff88001c67c8a0 R09: ffff88001c7d0330
    > [   32.836004] R10: ffffffff822c3a98 R11: 0000000000000001 R12: ffff88001c67c000
    > [   32.836004] R13: ffff88001c7d0370 R14: ffffffff8207eb78 R15: ffff88001c67c800
    > [   32.836004] FS:  0000000000000000(0000) GS:ffff88001da00000(0000) knlGS:0000000000000000
    > [   32.836004] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    > [   32.836004] CR2: 0000000000000000 CR3: 000000000220a000 CR4: 00000000000006f0
    > [   32.836004] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    > [   32.836004] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    > [   32.836004] Call Trace:
    > [   32.836004]  intel_mode_from_pipe_config+0x72/0x90
    > [   32.836004]  intel_modeset_setup_hw_state+0x569/0xf90
    > [   32.836004]  intel_modeset_init+0x905/0x1db0
    > [   32.836004]  i915_driver_load+0xb8c/0x1120
    > [   32.836004]  i915_pci_probe+0x4d/0xb0
    > [   32.836004]  local_pci_probe+0x44/0xa0
    > [   32.836004]  ? pci_assign_irq+0x27/0x130
    > [   32.836004]  pci_device_probe+0x102/0x1c0
    > [   32.836004]  driver_probe_device+0x2b8/0x480
    > [   32.836004]  __driver_attach+0x109/0x110
    > [   32.836004]  ? driver_probe_device+0x480/0x480
    > [   32.836004]  bus_for_each_dev+0x67/0xc0
    > [   32.836004]  ? klist_add_tail+0x3b/0x70
    > [   32.836004]  bus_add_driver+0x1e8/0x260
    > [   32.836004]  driver_register+0x5b/0xe0
    > [   32.836004]  ? mipi_dsi_bus_init+0x11/0x11
    > [   32.836004]  do_one_initcall+0x4d/0x1eb
    > [   32.836004]  kernel_init_freeable+0x197/0x237
    > [   32.836004]  ? rest_init+0xd0/0xd0
    > [   32.836004]  kernel_init+0xa/0x110
    > [   32.836004]  ret_from_fork+0x35/0x40
    > [   32.836004] Modules linked in:
    > [   32.859183] ---[ end trace 525608b0ed0e8665 ]---
    > [   32.859722] RIP: 0010:drm_mode_hsync+0x1e/0x40
    > [   32.860287] Code: 31 c0 c3 90 90 90 90 90 90 90 90 90 0f 1f 44 00 00 8b 87 d8 00 00 00 85 c0 75 22 8b 4f 68 85 c9 78 1b 69 47 58 e8 03 00 00 99 <f7> f9 b9 d3 4d 62 10 05 f4 01 00 00 f7 e1 89 d0 c1 e8 06 f3 c3 66
    > [   32.862680] RSP: 0000:ffffc900000ebb90 EFLAGS: 00010206
    > [   32.863309] RAX: 0000000000000000 RBX: ffff88001c67c8a0 RCX: 0000000000000000
    > [   32.864182] RDX: 0000000000000000 RSI: ffff88001c67c000 RDI: ffff88001c67c8a0
    > [   32.865206] RBP: ffff88001c7d03a0 R08: ffff88001c67c8a0 R09: ffff88001c7d0330
    > [   32.866359] R10: ffffffff822c3a98 R11: 0000000000000001 R12: ffff88001c67c000
    > [   32.867213] R13: ffff88001c7d0370 R14: ffffffff8207eb78 R15: ffff88001c67c800
    > [   32.868075] FS:  0000000000000000(0000) GS:ffff88001da00000(0000) knlGS:0000000000000000
    > [   32.868983] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    > [   32.869659] CR2: 0000000000000000 CR3: 000000000220a000 CR4: 00000000000006f0
    > [   32.870599] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    > [   32.871598] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    > [   32.872549] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
    >
    > Since drm_mode_hsync() has the logic to check mode->htotal, I just extend it to cover the case htotal==0.
    
    Signed-off-by: Tina Zhang <tina.zhang@intel.com>
    Cc: Adam Jackson <ajax@redhat.com>
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    [danvet: Add additional explanations + cc: stable.]
    Cc: stable@vger.kernel.org
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/1548228539-3061-1-git-send-email-tina.zhang@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ece07807c13256cef3f6e849af8a840cd4237b38
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Fri Jan 25 20:10:15 2019 +0000

    ARM: iop32x/n2100: fix PCI IRQ mapping
    
    commit db4090920ba2d61a5827a23e441447926a02ffee upstream.
    
    Booting 4.20 on a TheCUS N2100 results in a kernel oops while probing
    PCI, due to n2100_pci_map_irq() having been discarded during boot.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Cc: stable@vger.kernel.org # 2.6.18+
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4fe6f07e5d20c480b430fa7ecd3d4ff5cc8a1f7
Author: Aaro Koskinen <aaro.koskinen@iki.fi>
Date:   Sun Jan 27 23:28:33 2019 +0200

    MIPS: OCTEON: don't set octeon_dma_bar_type if PCI is disabled
    
    commit dcf300a69ac307053dfb35c2e33972e754a98bce upstream.
    
    Don't set octeon_dma_bar_type if PCI is disabled. This avoids creation
    of the MSI irqchip later on, and saves a bit of memory.
    
    Signed-off-by: Aaro Koskinen <aaro.koskinen@iki.fi>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Fixes: a214720cbf50 ("Disable MSI also when pcie-octeon.pcie_disable on")
    Cc: stable@vger.kernel.org # v3.3+
    Cc: linux-mips@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64870211efd5d69d115c7798ae089d11919355a9
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Jan 23 11:27:02 2019 +0100

    debugfs: fix debugfs_rename parameter checking
    
    commit d88c93f090f708c18195553b352b9f205e65418f upstream.
    
    debugfs_rename() needs to check that the dentries passed into it really
    are valid, as sometimes they are not (i.e. if the return value of
    another debugfs call is passed into this one.)  So fix this up by
    properly checking if the two parent directories are errors (they are
    allowed to be NULL), and if the dentry to rename is not NULL or an
    error.
    
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cc44bfd608e27eee344a62e386b93cd71abd0643
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Dec 3 17:52:19 2018 +0300

    misc: vexpress: Off by one in vexpress_syscfg_exec()
    
    commit f8a70d8b889f180e6860cb1f85fed43d37844c5a upstream.
    
    The > comparison should be >= to prevent reading beyond the end of the
    func->template[] array.
    
    (The func->template array is allocated in vexpress_syscfg_regmap_init()
    and it has func->num_templates elements.)
    
    Fixes: 974cc7b93441 ("mfd: vexpress: Define the device as MFD cells")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db2e3ba117bd65c761d8f182d81a3674ade876b1
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Wed Feb 6 17:51:47 2019 -0600

    signal: Better detection of synchronous signals
    
    commit 7146db3317c67b517258cb5e1b08af387da0618b upstream.
    
    Recently syzkaller was able to create unkillablle processes by
    creating a timer that is delivered as a thread local signal on SIGHUP,
    and receiving SIGHUP SA_NODEFERER.  Ultimately causing a loop failing
    to deliver SIGHUP but always trying.
    
    When the stack overflows delivery of SIGHUP fails and force_sigsegv is
    called.  Unfortunately because SIGSEGV is numerically higher than
    SIGHUP next_signal tries again to deliver a SIGHUP.
    
    From a quality of implementation standpoint attempting to deliver the
    timer SIGHUP signal is wrong.  We should attempt to deliver the
    synchronous SIGSEGV signal we just forced.
    
    We can make that happening in a fairly straight forward manner by
    instead of just looking at the signal number we also look at the
    si_code.  In particular for exceptions (aka synchronous signals) the
    si_code is always greater than 0.
    
    That still has the potential to pick up a number of asynchronous
    signals as in a few cases the same si_codes that are used
    for synchronous signals are also used for asynchronous signals,
    and SI_KERNEL is also included in the list of possible si_codes.
    
    Still the heuristic is much better and timer signals are definitely
    excluded.  Which is enough to prevent all known ways for someone
    sending a process signals fast enough to cause unexpected and
    arguably incorrect behavior.
    
    Cc: stable@vger.kernel.org
    Fixes: a27341cd5fcb ("Prioritize synchronous signals over 'normal' signals")
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c63a38a937c5ff650806455af515a3392a42ba78
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Wed Feb 6 18:39:40 2019 -0600

    signal: Always notice exiting tasks
    
    commit 35634ffa1751b6efd8cf75010b509dcb0263e29b upstream.
    
    Recently syzkaller was able to create unkillablle processes by
    creating a timer that is delivered as a thread local signal on SIGHUP,
    and receiving SIGHUP SA_NODEFERER.  Ultimately causing a loop
    failing to deliver SIGHUP but always trying.
    
    Upon examination it turns out part of the problem is actually most of
    the solution.  Since 2.5 signal delivery has found all fatal signals,
    marked the signal group for death, and queued SIGKILL in every threads
    thread queue relying on signal->group_exit_code to preserve the
    information of which was the actual fatal signal.
    
    The conversion of all fatal signals to SIGKILL results in the
    synchronous signal heuristic in next_signal kicking in and preferring
    SIGHUP to SIGKILL.  Which is especially problematic as all
    fatal signals have already been transformed into SIGKILL.
    
    Instead of dequeueing signals and depending upon SIGKILL to
    be the first signal dequeued, first test if the signal group
    has already been marked for death.  This guarantees that
    nothing in the signal queue can prevent a process that needs
    to exit from exiting.
    
    Cc: stable@vger.kernel.org
    Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Ref: ebf5ebe31d2c ("[PATCH] signal-fixes-2.5.59-A4")
    History Tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a5f2927775e76233aabf78a0058ff7d609e1b6cf
Author: Martin Kepplinger <martin.kepplinger@ginzinger.com>
Date:   Tue Feb 5 16:52:51 2019 +0100

    mtd: rawnand: gpmi: fix MX28 bus master lockup problem
    
    commit d5d27fd9826b59979b184ec288e4812abac0e988 upstream.
    
    Disable BCH soft reset according to MX23 erratum #2847 ("BCH soft
    reset may cause bus master lock up") for MX28 too. It has the same
    problem.
    
    Observed problem: once per 100,000+ MX28 reboots NAND read failed on
    DMA timeout errors:
    [    1.770823] UBI: attaching mtd3 to ubi0
    [    2.768088] gpmi_nand: DMA timeout, last DMA :1
    [    3.958087] gpmi_nand: BCH timeout, last DMA :1
    [    4.156033] gpmi_nand: Error in ECC-based read: -110
    [    4.161136] UBI warning: ubi_io_read: error -110 while reading 64
    bytes from PEB 0:0, read only 0 bytes, retry
    [    4.171283] step 1 error
    [    4.173846] gpmi_nand: Chip: 0, Error -1
    
    Without BCH soft reset we successfully executed 1,000,000 MX28 reboots.
    
    I have a quote from NXP regarding this problem, from July 18th 2016:
    
    "As the i.MX23 and i.MX28 are of the same generation, they share many
    characteristics. Unfortunately, also the erratas may be shared.
    In case of the documented erratas and the workarounds, you can also
    apply the workaround solution of one device on the other one. This have
    been reported, but I’m afraid that there are not an estimated date for
    updating the Errata documents.
    Please accept our apologies for any inconveniences this may cause."
    
    Fixes: 6f2a6a52560a ("mtd: nand: gpmi: reset BCH earlier, too, to avoid NAND startup problems")
    Cc: stable@vger.kernel.org
    Signed-off-by: Manfred Schlaegl <manfred.schlaegl@ginzinger.com>
    Signed-off-by: Martin Kepplinger <martin.kepplinger@ginzinger.com>
    Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Acked-by: Han Xu <han.xu@nxp.com>
    Signed-off-by: Boris Brezillon <bbrezillon@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd0506104bcc396f112b5ef06655146bd5e5a5a3
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Jan 22 17:34:39 2019 -0600

    perf tests evsel-tp-sched: Fix bitwise operator
    
    commit 489338a717a0dfbbd5a3fabccf172b78f0ac9015 upstream.
    
    Notice that the use of the bitwise OR operator '|' always leads to true
    in this particular case, which seems a bit suspicious due to the context
    in which this expression is being used.
    
    Fix this by using bitwise AND operator '&' instead.
    
    This bug was detected with the help of Coccinelle.
    
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: stable@vger.kernel.org
    Fixes: 6a6cd11d4e57 ("perf test: Add test for the sched tracepoint format fields")
    Link: http://lkml.kernel.org/r/20190122233439.GA5868@embeddedor
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a4608dd185cfe7c106af7d374dc32fa8a006db8
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Thu Jan 10 14:27:45 2019 +0000

    perf/core: Don't WARN() for impossible ring-buffer sizes
    
    commit 9dff0aa95a324e262ffb03f425d00e4751f3294e upstream.
    
    The perf tool uses /proc/sys/kernel/perf_event_mlock_kb to determine how
    large its ringbuffer mmap should be. This can be configured to arbitrary
    values, which can be larger than the maximum possible allocation from
    kmalloc.
    
    When this is configured to a suitably large value (e.g. thanks to the
    perf fuzzer), attempting to use perf record triggers a WARN_ON_ONCE() in
    __alloc_pages_nodemask():
    
       WARNING: CPU: 2 PID: 5666 at mm/page_alloc.c:4511 __alloc_pages_nodemask+0x3f8/0xbc8
    
    Let's avoid this by checking that the requested allocation is possible
    before calling kzalloc.
    
    Reported-by: Julien Thierry <julien.thierry@arm.com>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Julien Thierry <julien.thierry@arm.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org>
    Link: https://lkml.kernel.org/r/20190110142745.25495-1-mark.rutland@arm.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc6d3bf926161e2806333605168b2c78dcc84654
Author: Kan Liang <kan.liang@linux.intel.com>
Date:   Sun Jan 27 06:53:14 2019 -0800

    perf/x86/intel/uncore: Add Node ID mask
    
    commit 9e63a7894fd302082cf3627fe90844421a6cbe7f upstream.
    
    Some PCI uncore PMUs cannot be registered on an 8-socket system (HPE
    Superdome Flex).
    
    To understand which Socket the PCI uncore PMUs belongs to, perf retrieves
    the local Node ID of the uncore device from CPUNODEID(0xC0) of the PCI
    configuration space, and the mapping between Socket ID and Node ID from
    GIDNIDMAP(0xD4). The Socket ID can be calculated accordingly.
    
    The local Node ID is only available at bit 2:0, but current code doesn't
    mask it. If a BIOS doesn't clear the rest of the bits, an incorrect Node ID
    will be fetched.
    
    Filter the Node ID by adding a mask.
    
    Reported-by: Song Liu <songliubraving@fb.com>
    Tested-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Kan Liang <kan.liang@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org> # v3.7+
    Fixes: 7c94ee2e0917 ("perf/x86: Add Intel Nehalem and Sandy Bridge-EP uncore support")
    Link: https://lkml.kernel.org/r/1548600794-33162-1-git-send-email-kan.liang@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8767556995adf9a10b49fb0c2098b7aeb40ee64c
Author: Peter Shier <pshier@google.com>
Date:   Thu Oct 11 11:46:46 2018 -0700

    KVM: nVMX: unconditionally cancel preemption timer in free_nested (CVE-2019-7221)
    
    commit ecec76885bcfe3294685dc363fd1273df0d5d65f upstream.
    
    Bugzilla: 1671904
    
    There are multiple code paths where an hrtimer may have been started to
    emulate an L1 VMX preemption timer that can result in a call to free_nested
    without an intervening L2 exit where the hrtimer is normally
    cancelled. Unconditionally cancel in free_nested to cover all cases.
    
    Embargoed until Feb 7th 2019.
    
    Signed-off-by: Peter Shier <pshier@google.com>
    Reported-by: Jim Mattson <jmattson@google.com>
    Reviewed-by: Jim Mattson <jmattson@google.com>
    Reported-by: Felix Wilhelm <fwilhelm@google.com>
    Cc: stable@kernel.org
    Message-Id: <20181011184646.154065-1-pshier@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d283b5404655ef51aeafb092d7c79c6718b48c7b
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Tue Jan 29 18:41:16 2019 +0100

    KVM: x86: work around leak of uninitialized stack contents (CVE-2019-7222)
    
    commit 353c0956a618a07ba4bbe7ad00ff29fe70e8412a upstream.
    
    Bugzilla: 1671930
    
    Emulation of certain instructions (VMXON, VMCLEAR, VMPTRLD, VMWRITE with
    memory operand, INVEPT, INVVPID) can incorrectly inject a page fault
    when passed an operand that points to an MMIO address.  The page fault
    will use uninitialized kernel stack memory as the CR2 and error code.
    
    The right behavior would be to abort the VM with a KVM_EXIT_INTERNAL_ERROR
    exit to userspace; however, it is not an easy fix, so for now just
    ensure that the error code and CR2 are zero.
    
    Embargoed until Feb 7th 2019.
    
    Reported-by: Felix Wilhelm <fwilhelm@google.com>
    Cc: stable@kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb046e01d81e03f6b9f44ce395617bd1e2103c17
Author: Gustavo A. R. Silva <gustavo@embeddedor.com>
Date:   Tue Jan 22 15:28:08 2019 -0600

    usb: gadget: udc: net2272: Fix bitwise and boolean operations
    
    commit 07c69f1148da7de3978686d3af9263325d9d60bd upstream.
    
    (!x & y) strikes again.
    
    Fix bitwise and boolean operations by enclosing the expression:
    
            intcsr & (1 << NET2272_PCI_IRQ)
    
    in parentheses, before applying the boolean operator '!'.
    
    Notice that this code has been there since 2011. So, it would
    be helpful if someone can double-check this.
    
    This issue was detected with the help of Coccinelle.
    
    Fixes: ceb80363b2ec ("USB: net2272: driver for PLX NET2272 USB device controller")
    Cc: stable@vger.kernel.org
    Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6055cc520ab64637025df0f2eb390001d3ee88b
Author: Bin Liu <b-liu@ti.com>
Date:   Wed Jan 16 11:54:07 2019 -0600

    usb: phy: am335x: fix race condition in _probe
    
    commit a53469a68eb886e84dd8b69a1458a623d3591793 upstream.
    
    power off the phy should be done before populate the phy. Otherwise,
    am335x_init() could be called by the phy owner to power on the phy first,
    then am335x_phy_probe() turns off the phy again without the caller knowing
    it.
    
    Fixes: 2fc711d76352 ("usb: phy: am335x: Enable USB remote wakeup using PHY wakeup")
    Cc: stable@vger.kernel.org # v3.18+
    Signed-off-by: Bin Liu <b-liu@ti.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 76b24a3f462d5ffc16351ee869087447326179f9
Author: Leonid Iziumtsev <leonid.iziumtsev@gmail.com>
Date:   Tue Jan 15 17:15:23 2019 +0000

    dmaengine: imx-dma: fix wrong callback invoke
    
    commit 341198eda723c8c1cddbb006a89ad9e362502ea2 upstream.
    
    Once the "ld_queue" list is not empty, next descriptor will migrate
    into "ld_active" list. The "desc" variable will be overwritten
    during that transition. And later the dmaengine_desc_get_callback_invoke()
    will use it as an argument. As result we invoke wrong callback.
    
    That behaviour was in place since:
    commit fcaaba6c7136 ("dmaengine: imx-dma: fix callback path in tasklet").
    But after commit 4cd13c21b207 ("softirq: Let ksoftirqd do its job")
    things got worse, since possible delay between tasklet_schedule()
    from DMA irq handler and actual tasklet function execution got bigger.
    And that gave more time for new DMA request to be submitted and
    to be put into "ld_queue" list.
    
    It has been noticed that DMA issue is causing problems for "mxc-mmc"
    driver. While stressing the system with heavy network traffic and
    writing/reading to/from sd card simultaneously the timeout may happen:
    
    10013000.sdhci: mxcmci_watchdog: read time out (status = 0x30004900)
    
    That often lead to file system corruption.
    
    Signed-off-by: Leonid Iziumtsev <leonid.iziumtsev@gmail.com>
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95ae6d14def281543d4597fe98cd85dc978aab83
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Jan 16 10:27:59 2019 +0100

    fuse: handle zero sized retrieve correctly
    
    commit 97e1532ef81acb31c30f9e75bf00306c33a77812 upstream.
    
    Dereferencing req->page_descs[0] will Oops if req->max_pages is zero.
    
    Reported-by: syzbot+c1e36d30ee3416289cc0@syzkaller.appspotmail.com
    Tested-by: syzbot+c1e36d30ee3416289cc0@syzkaller.appspotmail.com
    Fixes: b2430d7567a3 ("fuse: add per-page descriptor <offset, length> to fuse_req")
    Cc: <stable@vger.kernel.org> # v3.9
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5791673ddc33134cc4dd57eddd014e41f1d1329c
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Jan 16 10:27:59 2019 +0100

    fuse: decrement NR_WRITEBACK_TEMP on the right page
    
    commit a2ebba824106dabe79937a9f29a875f837e1b6d4 upstream.
    
    NR_WRITEBACK_TEMP is accounted on the temporary page in the request, not
    the page cache page.
    
    Fixes: 8b284dc47291 ("fuse: writepages: handle same page rewrites")
    Cc: <stable@vger.kernel.org> # v3.13
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b9feaad40644f5cd82155c5755c560e23144b1bf
Author: Jann Horn <jannh@google.com>
Date:   Sat Jan 12 02:39:05 2019 +0100

    fuse: call pipe_buf_release() under pipe lock
    
    commit 9509941e9c534920ccc4771ae70bd6cbbe79df1c upstream.
    
    Some of the pipe_buf_release() handlers seem to assume that the pipe is
    locked - in particular, anon_pipe_buf_release() accesses pipe->tmp_page
    without taking any extra locks. From a glance through the callers of
    pipe_buf_release(), it looks like FUSE is the only one that calls
    pipe_buf_release() without having the pipe locked.
    
    This bug should only lead to a memory leak, nothing terrible.
    
    Fixes: dd3bb14f44a6 ("fuse: support splice() writing to fuse device")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jann Horn <jannh@google.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f93d1086fd34f327221390baefb1be8adf58306a
Author: Charles Keepax <ckeepax@opensource.cirrus.com>
Date:   Tue Feb 5 16:29:40 2019 +0000

    ALSA: compress: Fix stop handling on compressed capture streams
    
    commit 4f2ab5e1d13d6aa77c55f4914659784efd776eb4 upstream.
    
    It is normal user behaviour to start, stop, then start a stream
    again without closing it. Currently this works for compressed
    playback streams but not capture ones.
    
    The states on a compressed capture stream go directly from OPEN to
    PREPARED, unlike a playback stream which moves to SETUP and waits
    for a write of data before moving to PREPARED. Currently however,
    when a stop is sent the state is set to SETUP for both types of
    streams. This leaves a capture stream in the situation where a new
    start can't be sent as that requires the state to be PREPARED and
    a new set_params can't be sent as that requires the state to be
    OPEN. The only option being to close the stream, and then reopen.
    
    Correct this issues by allowing snd_compr_drain_notify to set the
    state depending on the stream direction, as we already do in
    set_params.
    
    Fixes: 49bb6402f1aa ("ALSA: compress_core: Add support for capture streams")
    Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b22306f22217aa26be6c3e9924df1a26e2e8db7
Author: Govindarajulu Varadarajan <gvaradar@cisco.com>
Date:   Wed Jan 30 06:59:00 2019 -0800

    enic: fix checksum validation for IPv6
    
    [ Upstream commit 7596175e99b3d4bce28022193efd954c201a782a ]
    
    In case of IPv6 pkts, ipv4_csum_ok is 0. Because of this, driver does
    not set skb->ip_summed. So IPv6 rx checksum is not offloaded.
    
    Signed-off-by: Govindarajulu Varadarajan <gvaradar@cisco.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4153e237ffa6b7b992b63f8bed8c236face11b2
Author: Rundong Ge <rdong.ge@gmail.com>
Date:   Sat Feb 2 14:29:35 2019 +0000

    net: dsa: slave: Don't propagate flag changes on down slave interfaces
    
    [ Upstream commit 17ab4f61b8cd6f9c38e9d0b935d86d73b5d0d2b5 ]
    
    The unbalance of master's promiscuity or allmulti will happen after ifdown
    and ifup a slave interface which is in a bridge.
    
    When we ifdown a slave interface , both the 'dsa_slave_close' and
    'dsa_slave_change_rx_flags' will clear the master's flags. The flags
    of master will be decrease twice.
    In the other hand, if we ifup the slave interface again, since the
    slave's flags were cleared the 'dsa_slave_open' won't set the master's
    flag, only 'dsa_slave_change_rx_flags' that triggered by 'br_add_if'
    will set the master's flags. The flags of master is increase once.
    
    Only propagating flag changes when a slave interface is up makes
    sure this does not happen. The 'vlan_dev_change_rx_flags' had the
    same problem and was fixed, and changes here follows that fix.
    
    Fixes: 91da11f870f0 ("net: Distributed Switch Architecture protocol support")
    Signed-off-by: Rundong Ge <rdong.ge@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1e0b036373165e55f7d626d82d8755c5875a3850
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Fri Feb 1 13:23:38 2019 -0800

    net: systemport: Fix WoL with password after deep sleep
    
    [ Upstream commit 8dfb8d2cceb76b74ad5b58cc65c75994329b4d5e ]
    
    Broadcom STB chips support a deep sleep mode where all register
    contents are lost. Because we were stashing the MagicPacket password
    into some of these registers a suspend into that deep sleep then a
    resumption would not lead to being able to wake-up from MagicPacket with
    password again.
    
    Fix this by keeping a software copy of the password and program it
    during suspend.
    
    Fixes: 83e82f4c706b ("net: systemport: add Wake-on-LAN support")
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a4e92261fcc6b70123a1a558532a3f14024739e2
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Feb 1 11:28:16 2019 +0300

    skge: potential memory corruption in skge_get_regs()
    
    [ Upstream commit 294c149a209c6196c2de85f512b52ef50f519949 ]
    
    The "p" buffer is 0x4000 bytes long.  B3_RI_WTO_R1 is 0x190.  The value
    of "regs->len" is in the 1-0x4000 range.  The bug here is that
    "regs->len - B3_RI_WTO_R1" can be a negative value which would lead to
    memory corruption and an abrupt crash.
    
    Fixes: c3f8be961808 ("[PATCH] skge: expand ethtool debug register dump")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f57176ac23a21423a0a0269c99c3ee6a8805a24
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Jan 30 11:39:41 2019 -0800

    dccp: fool proof ccid_hc_[rt]x_parse_options()
    
    [ Upstream commit 9b1f19d810e92d6cdc68455fbc22d9f961a58ce1 ]
    
    Similarly to commit 276bdb82dedb ("dccp: check ccid before dereferencing")
    it is wise to test for a NULL ccid.
    
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] PREEMPT SMP KASAN
    CPU: 1 PID: 16 Comm: ksoftirqd/1 Not tainted 5.0.0-rc3+ #37
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    RIP: 0010:ccid_hc_tx_parse_options net/dccp/ccid.h:205 [inline]
    RIP: 0010:dccp_parse_options+0x8d9/0x12b0 net/dccp/options.c:233
    Code: c5 0f b6 75 b3 80 38 00 0f 85 d6 08 00 00 48 b9 00 00 00 00 00 fc ff df 48 8b 45 b8 4c 8b b8 f8 07 00 00 4c 89 f8 48 c1 e8 03 <80> 3c 08 00 0f 85 95 08 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b
    kobject: 'loop5' (0000000080f78fc1): kobject_uevent_env
    RSP: 0018:ffff8880a94df0b8 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff8880858ac723 RCX: dffffc0000000000
    RDX: 0000000000000100 RSI: 0000000000000007 RDI: 0000000000000001
    RBP: ffff8880a94df140 R08: 0000000000000001 R09: ffff888061b83a80
    R10: ffffed100c370752 R11: ffff888061b83a97 R12: 0000000000000026
    R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000000
    FS:  0000000000000000(0000) GS:ffff8880ae700000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f0defa33518 CR3: 000000008db5e000 CR4: 00000000001406e0
    kobject: 'loop5' (0000000080f78fc1): fill_kobj_path: path = '/devices/virtual/block/loop5'
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     dccp_rcv_state_process+0x2b6/0x1af6 net/dccp/input.c:654
     dccp_v4_do_rcv+0x100/0x190 net/dccp/ipv4.c:688
     sk_backlog_rcv include/net/sock.h:936 [inline]
     __sk_receive_skb+0x3a9/0xea0 net/core/sock.c:473
     dccp_v4_rcv+0x10cb/0x1f80 net/dccp/ipv4.c:880
     ip_protocol_deliver_rcu+0xb6/0xa20 net/ipv4/ip_input.c:208
     ip_local_deliver_finish+0x23b/0x390 net/ipv4/ip_input.c:234
     NF_HOOK include/linux/netfilter.h:289 [inline]
     NF_HOOK include/linux/netfilter.h:283 [inline]
     ip_local_deliver+0x1f0/0x740 net/ipv4/ip_input.c:255
     dst_input include/net/dst.h:450 [inline]
     ip_rcv_finish+0x1f4/0x2f0 net/ipv4/ip_input.c:414
     NF_HOOK include/linux/netfilter.h:289 [inline]
     NF_HOOK include/linux/netfilter.h:283 [inline]
     ip_rcv+0xed/0x620 net/ipv4/ip_input.c:524
     __netif_receive_skb_one_core+0x160/0x210 net/core/dev.c:4973
     __netif_receive_skb+0x2c/0x1c0 net/core/dev.c:5083
     process_backlog+0x206/0x750 net/core/dev.c:5923
     napi_poll net/core/dev.c:6346 [inline]
     net_rx_action+0x76d/0x1930 net/core/dev.c:6412
     __do_softirq+0x30b/0xb11 kernel/softirq.c:292
     run_ksoftirqd kernel/softirq.c:654 [inline]
     run_ksoftirqd+0x8e/0x110 kernel/softirq.c:646
     smpboot_thread_fn+0x6ab/0xa10 kernel/smpboot.c:164
     kthread+0x357/0x430 kernel/kthread.c:246
     ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352
    Modules linked in:
    ---[ end trace 58a0ba03bea2c376 ]---
    RIP: 0010:ccid_hc_tx_parse_options net/dccp/ccid.h:205 [inline]
    RIP: 0010:dccp_parse_options+0x8d9/0x12b0 net/dccp/options.c:233
    Code: c5 0f b6 75 b3 80 38 00 0f 85 d6 08 00 00 48 b9 00 00 00 00 00 fc ff df 48 8b 45 b8 4c 8b b8 f8 07 00 00 4c 89 f8 48 c1 e8 03 <80> 3c 08 00 0f 85 95 08 00 00 48 b8 00 00 00 00 00 fc ff df 4d 8b
    RSP: 0018:ffff8880a94df0b8 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff8880858ac723 RCX: dffffc0000000000
    RDX: 0000000000000100 RSI: 0000000000000007 RDI: 0000000000000001
    RBP: ffff8880a94df140 R08: 0000000000000001 R09: ffff888061b83a80
    R10: ffffed100c370752 R11: ffff888061b83a97 R12: 0000000000000026
    R13: 0000000000000001 R14: 0000000000000000 R15: 0000000000000000
    FS:  0000000000000000(0000) GS:ffff8880ae700000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f0defa33518 CR3: 0000000009871000 CR4: 00000000001406e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Cc: Gerrit Renker <gerrit@erg.abdn.ac.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 523c0bea45f04a19f5600d9baa0a1b1c9689e7a3
Author: Eduardo Valentin <edubezval@gmail.com>
Date:   Wed Jan 2 00:34:03 2019 +0000

    thermal: hwmon: inline helpers when CONFIG_THERMAL_HWMON is not set
    
    commit 03334ba8b425b2ad275c8f390cf83c7b081c3095 upstream.
    
    Avoid warnings like this:
    thermal_hwmon.h:29:1: warning: ‘thermal_remove_hwmon_sysfs’ defined but not used [-Wunused-function]
     thermal_remove_hwmon_sysfs(struct thermal_zone_device *tz)
    
    Fixes: 0dd88793aacd ("thermal: hwmon: move hwmon support to single file")
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 818b4b090104a1adee43e394315dee551ced139c
Author: Oleg Nesterov <oleg@redhat.com>
Date:   Thu Jan 3 15:28:07 2019 -0800

    exec: load_script: don't blindly truncate shebang string
    
    [ Upstream commit 8099b047ecc431518b9bb6bdbba3549bbecdc343 ]
    
    load_script() simply truncates bprm->buf and this is very wrong if the
    length of shebang string exceeds BINPRM_BUF_SIZE-2.  This can silently
    truncate i_arg or (worse) we can execute the wrong binary if buf[2:126]
    happens to be the valid executable path.
    
    Change load_script() to return ENOEXEC if it can't find '\n' or zero in
    bprm->buf.  Note that '\0' can come from either
    prepare_binprm()->memset() or from kernel_read(), we do not care.
    
    Link: http://lkml.kernel.org/r/20181112160931.GA28463@redhat.com
    Signed-off-by: Oleg Nesterov <oleg@redhat.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Ben Woodard <woodard@redhat.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 684a316627601320352fdac252adf45c9667fb96
Author: Davidlohr Bueso <dave@stgolabs.net>
Date:   Thu Jan 3 15:27:09 2019 -0800

    fs/epoll: drop ovflist branch prediction
    
    [ Upstream commit 76699a67f3041ff4c7af6d6ee9be2bfbf1ffb671 ]
    
    The ep->ovflist is a secondary ready-list to temporarily store events
    that might occur when doing sproc without holding the ep->wq.lock.  This
    accounts for every time we check for ready events and also send events
    back to userspace; both callbacks, particularly the latter because of
    copy_to_user, can account for a non-trivial time.
    
    As such, the unlikely() check to see if the pointer is being used, seems
    both misleading and sub-optimal.  In fact, we go to an awful lot of
    trouble to sync both lists, and populating the ovflist is far from an
    uncommon scenario.
    
    For example, profiling a concurrent epoll_wait(2) benchmark, with
    CONFIG_PROFILE_ANNOTATED_BRANCHES shows that for a two threads a 33%
    incorrect rate was seen; and when incrementally increasing the number of
    epoll instances (which is used, for example for multiple queuing load
    balancing models), up to a 90% incorrect rate was seen.
    
    Similarly, by deleting the prediction, 3% throughput boost was seen
    across incremental threads.
    
    Link: http://lkml.kernel.org/r/20181108051006.18751-4-dave@stgolabs.net
    Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Jason Baron <jbaron@akamai.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 521ca866e391ed94e67f1e21a3afc508ffb39bb4
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Thu Jan 3 15:26:31 2019 -0800

    kernel/hung_task.c: break RCU locks based on jiffies
    
    [ Upstream commit 304ae42739b108305f8d7b3eb3c1aec7c2b643a9 ]
    
    check_hung_uninterruptible_tasks() is currently calling rcu_lock_break()
    for every 1024 threads.  But check_hung_task() is very slow if printk()
    was called, and is very fast otherwise.
    
    If many threads within some 1024 threads called printk(), the RCU grace
    period might be extended enough to trigger RCU stall warnings.
    Therefore, calling rcu_lock_break() for every some fixed jiffies will be
    safer.
    
    Link: http://lkml.kernel.org/r/1544800658-11423-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Acked-by: Paul E. McKenney <paulmck@linux.ibm.com>
    Cc: Petr Mladek <pmladek@suse.com>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
    Cc: Vitaly Kuznetsov <vkuznets@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 47a63b2b2e37dfb44f7d4595388cc209ce265d0f
Author: Finn Thain <fthain@telegraphics.com.au>
Date:   Mon Dec 31 16:44:09 2018 +1100

    block/swim3: Fix -EBUSY error when re-opening device after unmount
    
    [ Upstream commit 296dcc40f2f2e402facf7cd26cf3f2c8f4b17d47 ]
    
    When the block device is opened with FMODE_EXCL, ref_count is set to -1.
    This value doesn't get reset when the device is closed which means the
    device cannot be opened again. Fix this by checking for refcount <= 0
    in the release method.
    
    Reported-and-tested-by: Stan Johnson <userm57@yahoo.com>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: linuxppc-dev@lists.ozlabs.org
    Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aff0981b2ab5ca522f98dc0e664fb84bec473158
Author: Wenwen Wang <wang6495@umn.edu>
Date:   Wed Dec 26 20:15:13 2018 -0600

    gdrom: fix a memory leak bug
    
    [ Upstream commit 093c48213ee37c3c3ff1cf5ac1aa2a9d8bc66017 ]
    
    In probe_gdrom(), the buffer pointed by 'gd.cd_info' is allocated through
    kzalloc() and is used to hold the information of the gdrom device. To
    register and unregister the device, the pointer 'gd.cd_info' is passed to
    the functions register_cdrom() and unregister_cdrom(), respectively.
    However, this buffer is not freed after it is used, which can cause a
    memory leak bug.
    
    This patch simply frees the buffer 'gd.cd_info' in exit_gdrom() to fix the
    above issue.
    
    Signed-off-by: Wenwen Wang <wang6495@umn.edu>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e5d77ee7a33fe01fd35c041f46d5af0b7948ecf4
Author: Jia-Ju Bai <baijiaju1990@gmail.com>
Date:   Wed Dec 26 22:09:34 2018 +0800

    isdn: hisax: hfc_pci: Fix a possible concurrency use-after-free bug in HFCPCI_l1hw()
    
    [ Upstream commit 7418e6520f22a2e35815122fa5a53d5bbfa2c10f ]
    
    In drivers/isdn/hisax/hfc_pci.c, the functions hfcpci_interrupt() and
    HFCPCI_l1hw() may be concurrently executed.
    
    HFCPCI_l1hw()
      line 1173: if (!cs->tx_skb)
    
    hfcpci_interrupt()
      line 942: spin_lock_irqsave();
      line 1066: dev_kfree_skb_irq(cs->tx_skb);
    
    Thus, a possible concurrency use-after-free bug may occur
    in HFCPCI_l1hw().
    
    To fix these bugs, the calls to spin_lock_irqsave() and
    spin_unlock_irqrestore() are added in HFCPCI_l1hw(), to protect the
    access to cs->tx_skb.
    
    Signed-off-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51e3522fcd109fead5e5696996f83d061c7023bf
Author: Junxiao Bi <junxiao.bi@oracle.com>
Date:   Fri Dec 28 00:32:57 2018 -0800

    ocfs2: don't clear bh uptodate for block read
    
    [ Upstream commit 70306d9dce75abde855cefaf32b3f71eed8602a3 ]
    
    For sync io read in ocfs2_read_blocks_sync(), first clear bh uptodate flag
    and submit the io, second wait io done, last check whether bh uptodate, if
    not return io error.
    
    If two sync io for the same bh were issued, it could be the first io done
    and set uptodate flag, but just before check that flag, the second io came
    in and cleared uptodate, then ocfs2_read_blocks_sync() for the first io
    will return IO error.
    
    Indeed it's not necessary to clear uptodate flag, as the io end handler
    end_buffer_read_sync() will set or clear it based on io succeed or failed.
    
    The following message was found from a nfs server but the underlying
    storage returned no error.
    
    [4106438.567376] (nfsd,7146,3):ocfs2_get_suballoc_slot_bit:2780 ERROR: read block 1238823695 failed -5
    [4106438.567569] (nfsd,7146,3):ocfs2_get_suballoc_slot_bit:2812 ERROR: status = -5
    [4106438.567611] (nfsd,7146,3):ocfs2_test_inode_bit:2894 ERROR: get alloc slot and bit failed -5
    [4106438.567643] (nfsd,7146,3):ocfs2_test_inode_bit:2932 ERROR: status = -5
    [4106438.567675] (nfsd,7146,3):ocfs2_get_dentry:94 ERROR: test inode bit failed -5
    
    Same issue in non sync read ocfs2_read_blocks(), fixed it as well.
    
    Link: http://lkml.kernel.org/r/20181121020023.3034-4-junxiao.bi@oracle.com
    Signed-off-by: Junxiao Bi <junxiao.bi@oracle.com>
    Reviewed-by: Changwei Ge <ge.changwei@h3c.com>
    Reviewed-by: Yiwen Jiang <jiangyiwen@huawei.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Joseph Qi <jiangqi903@gmail.com>
    Cc: Jun Piao <piaojun@huawei.com>
    Cc: Mark Fasheh <mfasheh@versity.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c9b6ec4adc4979ef3681fd2242a378d634aeb093
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Fri Dec 28 00:31:25 2018 -0800

    scripts/decode_stacktrace: only strip base path when a prefix of the path
    
    [ Upstream commit 67a28de47faa83585dd644bd4c31e5a1d9346c50 ]
    
    Running something like:
    
            decodecode vmlinux .
    
    leads to interested results where not only the leading "." gets stripped
    from the displayed paths, but also anywhere in the string, displaying
    something like:
    
            kvm_vcpu_check_block (arch/arm64/kvm/virt/kvm/kvm_mainc:2141)
    
    which doesn't help further processing.
    
    Fix it by only stripping the base path if it is a prefix of the path.
    
    Link: http://lkml.kernel.org/r/20181210174659.31054-3-marc.zyngier@arm.com
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3896d308f19cba0d4c8028f33467a1b7a6652eff
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Tue Dec 25 01:56:14 2018 -0600

    niu: fix missing checks of niu_pci_eeprom_read
    
    [ Upstream commit 26fd962bde0b15e54234fe762d86bc0349df1de4 ]
    
    niu_pci_eeprom_read() may fail, so we should check its return value
    before using the read data.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Acked-by: Shannon Nelson <shannon.lee.nelson@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e4a2ebdb56d9b03274731151fe2f4a378b1bbc51
Author: Anton Ivanov <anton.ivanov@cambridgegreys.com>
Date:   Wed Dec 5 12:37:41 2018 +0000

    um: Avoid marking pages with "changed protection"
    
    [ Upstream commit 8892d8545f2d0342b9c550defbfb165db237044b ]
    
    Changing protection is a very high cost operation in UML
    because in addition to an extra syscall it also interrupts
    mmap merge sequences generated by the tlb.
    
    While the condition is not particularly common it is worth
    avoiding.
    
    Signed-off-by: Anton Ivanov <anton.ivanov@cambridgegreys.com>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c20306485299080337731091c644da997278688c
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Thu Dec 13 08:06:16 2018 +1000

    cifs: check ntwrk_buf_start for NULL before dereferencing it
    
    [ Upstream commit 59a63e479ce36a3f24444c3a36efe82b78e4a8e0 ]
    
    RHBZ: 1021460
    
    There is an issue where when multiple threads open/close the same directory
    ntwrk_buf_start might end up being NULL, causing the call to smbCalcSize
    later to oops with a NULL deref.
    
    The real bug is why this happens and why this can become NULL for an
    open cfile, which should not be allowed.
    This patch tries to avoid a oops until the time when we fix the underlying
    issue.
    
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d360258d2b0040ad90a8fb7372e213d46c975768
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Mon Dec 10 16:49:54 2018 -0700

    crypto: ux500 - Use proper enum in hash_set_dma_transfer
    
    [ Upstream commit 5ac93f808338f4dd465402e91869702eb87db241 ]
    
    Clang warns when one enumerated type is implicitly converted to another:
    
    drivers/crypto/ux500/hash/hash_core.c:169:4: warning: implicit
    conversion from enumeration type 'enum dma_data_direction' to different
    enumeration type 'enum dma_transfer_direction' [-Wenum-conversion]
                            direction, DMA_CTRL_ACK | DMA_PREP_INTERRUPT);
                            ^~~~~~~~~
    1 warning generated.
    
    dmaengine_prep_slave_sg expects an enum from dma_transfer_direction.
    We know that the only direction supported by this function is
    DMA_TO_DEVICE because of the check at the top of this function so we can
    just use the equivalent value from dma_transfer_direction.
    
    DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
    
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f6e6bef189de751bd314ec2c05d497d334f15191
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Mon Dec 10 16:49:29 2018 -0700

    crypto: ux500 - Use proper enum in cryp_set_dma_transfer
    
    [ Upstream commit 9d880c5945c748d8edcac30965f3349a602158c4 ]
    
    Clang warns when one enumerated type is implicitly converted to another:
    
    drivers/crypto/ux500/cryp/cryp_core.c:559:5: warning: implicit
    conversion from enumeration type 'enum dma_data_direction' to different
    enumeration type 'enum dma_transfer_direction' [-Wenum-conversion]
                                    direction, DMA_CTRL_ACK);
                                    ^~~~~~~~~
    drivers/crypto/ux500/cryp/cryp_core.c:583:5: warning: implicit
    conversion from enumeration type 'enum dma_data_direction' to different
    enumeration type 'enum dma_transfer_direction' [-Wenum-conversion]
                                    direction,
                                    ^~~~~~~~~
    2 warnings generated.
    
    dmaengine_prep_slave_sg expects an enum from dma_transfer_direction.
    Because we know the value of the dma_data_direction enum from the
    switch statement, we can just use the proper value from
    dma_transfer_direction so there is no more conversion.
    
    DMA_TO_DEVICE = DMA_MEM_TO_DEV = 1
    DMA_FROM_DEVICE = DMA_DEV_TO_MEM = 2
    
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b2ef4e8f5207d5d44d41d4c7ceefb260a5f95690
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Fri Dec 21 13:10:39 2018 -0600

    hwmon: (lm80) fix a missing check of bus read in lm80 probe
    
    [ Upstream commit 9aa3aa15f4c2f74f47afd6c5db4b420fadf3f315 ]
    
    In lm80_probe(), if lm80_read_value() fails, it returns a negative
    error number which is stored to data->fan[f_min] and will be further
    used. We should avoid using the data if the read fails.
    
    The fix checks if lm80_read_value() fails, and if so, returns with the
    error number.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8aaf06edb200285393d2a9902c12af85f5386eec
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Fri Dec 21 13:01:33 2018 -0600

    hwmon: (lm80) fix a missing check of the status of SMBus read
    
    [ Upstream commit c9c63915519b1def7043b184680f33c24cd49d7b ]
    
    If lm80_read_value() fails, it returns a negative number instead of the
    correct read data. Therefore, we should avoid using the data if it
    fails.
    
    The fix checks if lm80_read_value() fails, and if so, returns with the
    error number.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    [groeck: One variable for return values is enough]
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 077b6cadfe61bbb0a6393b8ccd3b999428e66999
Author: Chris Perl <cperl@janestreet.com>
Date:   Mon Dec 17 10:56:38 2018 -0500

    NFS: nfs_compare_mount_options always compare auth flavors.
    
    [ Upstream commit 594d1644cd59447f4fceb592448d5cd09eb09b5e ]
    
    This patch removes the check from nfs_compare_mount_options to see if a
    `sec' option was passed for the current mount before comparing auth
    flavors and instead just always compares auth flavors.
    
    Consider the following scenario:
    
    You have a server with the address 192.168.1.1 and two exports /export/a
    and /export/b.  The first export supports `sys' and `krb5' security, the
    second just `sys'.
    
    Assume you start with no mounts from the server.
    
    The following results in EIOs being returned as the kernel nfs client
    incorrectly thinks it can share the underlying `struct nfs_server's:
    
    $ mkdir /tmp/{a,b}
    $ sudo mount -t nfs -o vers=3,sec=krb5 192.168.1.1:/export/a /tmp/a
    $ sudo mount -t nfs -o vers=3          192.168.1.1:/export/b /tmp/b
    $ df >/dev/null
    df: ‘/tmp/b’: Input/output error
    
    Signed-off-by: Chris Perl <cperl@janestreet.com>
    Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 40bb3dad12e2df98298a4de09c0e6cdf8c38c42d
Author: Noralf Trønnes <noralf@tronnes.org>
Date:   Thu Dec 20 19:13:09 2018 +0100

    fbdev: fbcon: Fix unregister crash when more than one framebuffer
    
    [ Upstream commit 2122b40580dd9d0620398739c773d07a7b7939d0 ]
    
    When unregistering fbdev using unregister_framebuffer(), any bound
    console will unbind automatically. This is working fine if this is the
    only framebuffer, resulting in a switch to the dummy console. However if
    there is a fb0 and I unregister fb1 having a bound console, I eventually
    get a crash. The fastest way for me to trigger the crash is to do a
    reboot, resulting in this splat:
    
    [   76.478825] WARNING: CPU: 0 PID: 527 at linux/kernel/workqueue.c:1442 __queue_work+0x2d4/0x41c
    [   76.478849] Modules linked in: raspberrypi_hwmon gpio_backlight backlight bcm2835_rng rng_core [last unloaded: tinydrm]
    [   76.478916] CPU: 0 PID: 527 Comm: systemd-udevd Not tainted 4.20.0-rc4+ #4
    [   76.478933] Hardware name: BCM2835
    [   76.478949] Backtrace:
    [   76.478995] [<c010d388>] (dump_backtrace) from [<c010d670>] (show_stack+0x20/0x24)
    [   76.479022]  r6:00000000 r5:c0bc73be r4:00000000 r3:6fb5bf81
    [   76.479060] [<c010d650>] (show_stack) from [<c08e82f4>] (dump_stack+0x20/0x28)
    [   76.479102] [<c08e82d4>] (dump_stack) from [<c0120070>] (__warn+0xec/0x12c)
    [   76.479134] [<c011ff84>] (__warn) from [<c01201e4>] (warn_slowpath_null+0x4c/0x58)
    [   76.479165]  r9:c0eb6944 r8:00000001 r7:c0e927f8 r6:c0bc73be r5:000005a2 r4:c0139e84
    [   76.479197] [<c0120198>] (warn_slowpath_null) from [<c0139e84>] (__queue_work+0x2d4/0x41c)
    [   76.479222]  r6:d7666a00 r5:c0e918ee r4:dbc4e700
    [   76.479251] [<c0139bb0>] (__queue_work) from [<c013a02c>] (queue_work_on+0x60/0x88)
    [   76.479281]  r10:c0496bf8 r9:00000100 r8:c0e92ae0 r7:00000001 r6:d9403700 r5:d7666a00
    [   76.479298]  r4:20000113
    [   76.479348] [<c0139fcc>] (queue_work_on) from [<c0496c28>] (cursor_timer_handler+0x30/0x54)
    [   76.479374]  r7:d8a8fabc r6:c0e08088 r5:d8afdc5c r4:d8a8fabc
    [   76.479413] [<c0496bf8>] (cursor_timer_handler) from [<c0178744>] (call_timer_fn+0x100/0x230)
    [   76.479435]  r4:c0e9192f r3:d758a340
    [   76.479465] [<c0178644>] (call_timer_fn) from [<c0178980>] (expire_timers+0x10c/0x12c)
    [   76.479495]  r10:40000000 r9:c0e9192f r8:c0e92ae0 r7:d8afdccc r6:c0e19280 r5:c0496bf8
    [   76.479513]  r4:d8a8fabc
    [   76.479541] [<c0178874>] (expire_timers) from [<c0179630>] (run_timer_softirq+0xa8/0x184)
    [   76.479570]  r9:00000001 r8:c0e19280 r7:00000000 r6:c0e08088 r5:c0e1a3e0 r4:c0e19280
    [   76.479603] [<c0179588>] (run_timer_softirq) from [<c0102404>] (__do_softirq+0x1ac/0x3fc)
    [   76.479632]  r10:c0e91680 r9:d8afc020 r8:0000000a r7:00000100 r6:00000001 r5:00000002
    [   76.479650]  r4:c0eb65ec
    [   76.479686] [<c0102258>] (__do_softirq) from [<c0124d10>] (irq_exit+0xe8/0x168)
    [   76.479716]  r10:d8d1a9b0 r9:d8afc000 r8:00000001 r7:d949c000 r6:00000000 r5:c0e8b3f0
    [   76.479734]  r4:00000000
    [   76.479764] [<c0124c28>] (irq_exit) from [<c016b72c>] (__handle_domain_irq+0x94/0xb0)
    [   76.479793] [<c016b698>] (__handle_domain_irq) from [<c01021dc>] (bcm2835_handle_irq+0x3c/0x48)
    [   76.479823]  r8:d8afdebc r7:d8afddfc r6:ffffffff r5:c0e089f8 r4:d8afddc8 r3:d8afddc8
    [   76.479851] [<c01021a0>] (bcm2835_handle_irq) from [<c01019f0>] (__irq_svc+0x70/0x98)
    
    The problem is in the console rebinding in fbcon_fb_unbind(). It uses the
    virtual console index as the new framebuffer index to bind the console(s)
    to. The correct way is to use the con2fb_map lookup table to find the
    framebuffer index.
    
    Fixes: cfafca8067c6 ("fbdev: fbcon: console unregistration from unregister_framebuffer")
    Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
    Reviewed-by: Mikulas Patocka <mpatocka@redhat.com>
    Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9c98ab97036550ffc745c99695927b332b2dba97
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Mon Dec 3 13:54:38 2018 +0800

    igb: Fix an issue that PME is not enabled during runtime suspend
    
    [ Upstream commit 1fb3a7a75e2efcc83ef21f2434069cddd6fae6f5 ]
    
    I210 ethernet card doesn't wakeup when a cable gets plugged. It's
    because its PME is not set.
    
    Since commit 42eca2302146 ("PCI: Don't touch card regs after runtime
    suspend D3"), if the PCI state is saved, pci_pm_runtime_suspend() stops
    calling pci_finish_runtime_suspend(), which enables the PCI PME.
    
    To fix the issue, let's not to save PCI states when it's runtime
    suspend, to let the PCI subsystem enables PME.
    
    Fixes: 42eca2302146 ("PCI: Don't touch card regs after runtime suspend D3")
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Tested-by: Aaron Brown <aaron.f.brown@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19b0a7021641cb5283f3f78caffca587fa3cf3a0
Author: Peter Rosin <peda@axentia.se>
Date:   Thu Dec 20 19:13:07 2018 +0100

    fbdev: fbmem: behave better with small rotated displays and many CPUs
    
    [ Upstream commit f75df8d4b4fabfad7e3cba2debfad12741c6fde7 ]
    
    Blitting an image with "negative" offsets is not working since there
    is no clipping. It hopefully just crashes. For the bootup logo, there
    is protection so that blitting does not happen as the image is drawn
    further and further to the right (ROTATE_UR) or further and further
    down (ROTATE_CW). There is however no protection when drawing in the
    opposite directions (ROTATE_UD and ROTATE_CCW).
    
    Add back this protection.
    
    The regression is 20-odd years old but the mindless warning-killing
    mentality displayed in commit 34bdb666f4b2 ("fbdev: fbmem: remove
    positive test on unsigned values") is also to blame, methinks.
    
    Fixes: 448d479747b8 ("fbdev: fb_do_show_logo() updates")
    Signed-off-by: Peter Rosin <peda@axentia.se>
    Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
    Cc: Fabian Frederick <ffrederick@users.sourceforge.net>
    Cc: Geert Uytterhoeven <geert+renesas@glider.be>
    cc: Geoff Levand <geoff@infradead.org>
    Cc: James Simmons <jsimmons@users.sf.net>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0a6b1213f82320ead8894995960abd24337d1339
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Thu Dec 20 19:13:07 2018 +0100

    video: clps711x-fb: release disp device node in probe()
    
    [ Upstream commit fdac751355cd76e049f628afe6acb8ff4b1399f7 ]
    
    clps711x_fb_probe() increments refcnt of disp device node by
    of_parse_phandle() and leaves it undecremented on both
    successful and error paths.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Cc: Alexander Shiyan <shc_work@mail.ru>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f98b0b6695b63a65e3c533b5aeb2f8e31972df74
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Thu Dec 20 17:23:43 2018 +0100

    drbd: Avoid Clang warning about pointless switch statment
    
    [ Upstream commit a52c5a16cf19d8a85831bb1b915a221dd4ffae3c ]
    
    There are several warnings from Clang about no case statement matching
    the constant 0:
    
    In file included from drivers/block/drbd/drbd_receiver.c:48:
    In file included from drivers/block/drbd/drbd_int.h:48:
    In file included from ./include/linux/drbd_genl_api.h:54:
    In file included from ./include/linux/genl_magic_struct.h:236:
    ./include/linux/drbd_genl.h:321:1: warning: no case matching constant
    switch condition '0'
    GENL_struct(DRBD_NLA_HELPER, 24, drbd_helper_info,
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./include/linux/genl_magic_struct.h:220:10: note: expanded from macro
    'GENL_struct'
            switch (0) {
                    ^
    
    Silence this warning by adding a 'case 0:' statement. Additionally,
    adjust the alignment of the statements in the ct_assert_unique macro to
    avoid a checkpatch warning.
    
    This solution was originally sent by Arnd Bergmann with a default case
    statement: https://lore.kernel.org/patchwork/patch/756723/
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/43
    Suggested-by: Lars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 787ef136f287ddf429b45db3a8250bf45968911d
Author: Lars Ellenberg <lars.ellenberg@linbit.com>
Date:   Thu Dec 20 17:23:41 2018 +0100

    drbd: skip spurious timeout (ping-timeo) when failing promote
    
    [ Upstream commit 9848b6ddd8c92305252f94592c5e278574e7a6ac ]
    
    If you try to promote a Secondary while connected to a Primary
    and allow-two-primaries is NOT set, we will wait for "ping-timeout"
    to give this node a chance to detect a dead primary,
    in case the cluster manager noticed faster than we did.
    
    But if we then are *still* connected to a Primary,
    we fail (after an additional timeout of ping-timout).
    
    This change skips the spurious second timeout.
    
    Most people won't notice really,
    since "ping-timeout" by default is half a second.
    
    But in some installations, ping-timeout may be 10 or 20 seconds or more,
    and spuriously delaying the error return becomes annoying.
    
    Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3d91d7d9ff47dd206c134e26357883d338cd9b1
Author: Lars Ellenberg <lars.ellenberg@linbit.com>
Date:   Thu Dec 20 17:23:32 2018 +0100

    drbd: disconnect, if the wrong UUIDs are attached on a connected peer
    
    [ Upstream commit b17b59602b6dcf8f97a7dc7bc489a48388d7063a ]
    
    With "on-no-data-accessible suspend-io", DRBD requires the next attach
    or connect to be to the very same data generation uuid tag it lost last.
    
    If we first lost connection to the peer,
    then later lost connection to our own disk,
    we would usually refuse to re-connect to the peer,
    because it presents the wrong data set.
    
    However, if the peer first connects without a disk,
    and then attached its disk, we accepted that same wrong data set,
    which would be "unexpected" by any user of that DRBD
    and cause "undefined results" (read: very likely data corruption).
    
    The fix is to forcefully disconnect as soon as we notice that the peer
    attached to the "wrong" dataset.
    
    Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a53e09acae97e3370d92dfa22b922ce9e0e0422b
Author: Roland Kammerer <roland.kammerer@linbit.com>
Date:   Thu Dec 20 17:23:28 2018 +0100

    drbd: narrow rcu_read_lock in drbd_sync_handshake
    
    [ Upstream commit d29e89e34952a9ad02c77109c71a80043544296e ]
    
    So far there was the possibility that we called
    genlmsg_new(GFP_NOIO)/mutex_lock() while holding an rcu_read_lock().
    
    This included cases like:
    
    drbd_sync_handshake (acquire the RCU lock)
      drbd_asb_recover_1p
        drbd_khelper
          drbd_bcast_event
            genlmsg_new(GFP_NOIO) --> may sleep
    
    drbd_sync_handshake (acquire the RCU lock)
      drbd_asb_recover_1p
        drbd_khelper
          notify_helper
            genlmsg_new(GFP_NOIO) --> may sleep
    
    drbd_sync_handshake (acquire the RCU lock)
      drbd_asb_recover_1p
        drbd_khelper
          notify_helper
            mutex_lock --> may sleep
    
    While using GFP_ATOMIC whould have been possible in the first two cases,
    the real fix is to narrow the rcu_read_lock.
    
    Reported-by: Jia-Ju Bai <baijiaju1990@163.com>
    Reviewed-by: Lars Ellenberg <lars.ellenberg@linbit.com>
    Signed-off-by: Roland Kammerer <roland.kammerer@linbit.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 13174e174f2d649c38fa50be31ae8ae9a82d805e
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Wed Dec 19 14:45:09 2018 +0800

    xfrm6_tunnel: Fix spi check in __xfrm6_tunnel_alloc_spi
    
    [ Upstream commit fa89a4593b927b3f59c3b69379f31d3b22272e4e ]
    
    gcc warn this:
    
    net/ipv6/xfrm6_tunnel.c:143 __xfrm6_tunnel_alloc_spi() warn:
     always true condition '(spi <= 4294967295) => (0-u32max <= u32max)'
    
    'spi' is u32, which always not greater than XFRM6_TUNNEL_SPI_MAX
    because of wrap around. So the second forloop will never reach.
    
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a653aac3ed8ef630eb17d0d7f732538c3e7271e
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Mon Dec 10 06:50:09 2018 +0000

    powerpc/uaccess: fix warning/error with access_ok()
    
    [ Upstream commit 05a4ab823983d9136a460b7b5e0d49ee709a6f86 ]
    
    With the following piece of code, the following compilation warning
    is encountered:
    
            if (_IOC_DIR(ioc) != _IOC_NONE) {
                    int verify = _IOC_DIR(ioc) & _IOC_READ ? VERIFY_WRITE : VERIFY_READ;
    
                    if (!access_ok(verify, ioarg, _IOC_SIZE(ioc))) {
    
    drivers/platform/test/dev.c: In function 'my_ioctl':
    drivers/platform/test/dev.c:219:7: warning: unused variable 'verify' [-Wunused-variable]
       int verify = _IOC_DIR(ioc) & _IOC_READ ? VERIFY_WRITE : VERIFY_READ;
    
    This patch fixes it by referencing 'type' in the macro allthough
    doing nothing with it.
    
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 39e6fd28a1bf177eb2f7031388ad82c6d6077bfb
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Fri Nov 9 15:07:10 2018 +0000

    arm64: KVM: Skip MMIO insn after emulation
    
    [ Upstream commit 0d640732dbebed0f10f18526de21652931f0b2f2 ]
    
    When we emulate an MMIO instruction, we advance the CPU state within
    decode_hsr(), before emulating the instruction effects.
    
    Having this logic in decode_hsr() is opaque, and advancing the state
    before emulation is problematic. It gets in the way of applying
    consistent single-step logic, and it prevents us from being able to fail
    an MMIO instruction with a synchronous exception.
    
    Clean this up by only advancing the CPU state *after* the effects of the
    instruction are emulated.
    
    Cc: Peter Maydell <peter.maydell@linaro.org>
    Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
    Reviewed-by: Christoffer Dall <christoffer.dall@arm.com>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6e15ccc870a628c0a494f5aeed3e3048748905d
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Mon Nov 5 16:45:04 2018 +0800

    memstick: Prevent memstick host from getting runtime suspended during card detection
    
    [ Upstream commit e03e303edf1c63e6dd455ccd568c74e93ef3ba8c ]
    
    We can use MEMSTICK_POWER_{ON,OFF} along with pm_runtime_{get,put}
    helpers to let memstick host support runtime pm.
    
    The rpm count may go down to zero before the memstick host powers on, so
    the host can be runtime suspended.
    
    So before doing card detection, increment the rpm count to avoid the
    host gets runtime suspended. Balance the rpm count after card detection
    is done.
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2303374453375547cc9e2d1d8dc8acd6820076de
Author: Fabio Estevam <festevam@gmail.com>
Date:   Thu Dec 13 00:08:38 2018 -0200

    ASoC: fsl: Fix SND_SOC_EUKREA_TLV320 build error on i.MX8M
    
    [ Upstream commit add6883619a9e3bf9658eaff1a547354131bbcd9 ]
    
    eukrea-tlv320.c machine driver runs on non-DT platforms
    and include <asm/mach-types.h> header file in order to be able
    to use some machine_is_eukrea_xxx() macros.
    
    Building it for ARM64 causes the following build error:
    
    sound/soc/fsl/eukrea-tlv320.c:28:10: fatal error: asm/mach-types.h: No such file or directory
    
    Avoid this error by not allowing to build the SND_SOC_EUKREA_TLV320
    driver when ARM64 is selected.
    
    This is needed in preparation for the i.MX8M support.
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Fabio Estevam <festevam@gmail.com>
    Acked-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7b17070e7bf1ddf46cce8d146c1824e1f7420655
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Dec 10 22:58:39 2018 +0100

    ARM: pxa: avoid section mismatch warning
    
    [ Upstream commit 88af3209aa0881aa5ffd99664b6080a4be5f24e5 ]
    
    WARNING: vmlinux.o(.text+0x19f90): Section mismatch in reference from the function littleton_init_lcd() to the function .init.text:pxa_set_fb_info()
    The function littleton_init_lcd() references
    the function __init pxa_set_fb_info().
    This is often because littleton_init_lcd lacks a __init
    annotation or the annotation of pxa_set_fb_info is wrong.
    
    WARNING: vmlinux.o(.text+0xf824): Section mismatch in reference from the function zeus_register_ohci() to the function .init.text:pxa_set_ohci_info()
    The function zeus_register_ohci() references
    the function __init pxa_set_ohci_info().
    This is often because zeus_register_ohci lacks a __init
    annotation or the annotation of pxa_set_ohci_info is wrong.
    
    WARNING: vmlinux.o(.text+0xf95c): Section mismatch in reference from the function cm_x300_init_u2d() to the function .init.text:pxa3xx_set_u2d_info()
    The function cm_x300_init_u2d() references
    the function __init pxa3xx_set_u2d_info().
    This is often because cm_x300_init_u2d lacks a __init
    annotation or the annotation of pxa3xx_set_u2d_info is wrong.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 673123dacfeebbc5772d1d0b2cf214e59e70f241
Author: Jan Kara <jack@suse.cz>
Date:   Wed Dec 12 14:29:20 2018 +0100

    udf: Fix BUG on corrupted inode
    
    [ Upstream commit d288d95842f1503414b7eebce3773bac3390457e ]
    
    When inode is corrupted so that extent type is invalid, some functions
    (such as udf_truncate_extents()) will just BUG. Check that extent type
    is valid when loading the inode to memory.
    
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2fb9814cfd43ad502ae5e64717026ba915a05d0f
Author: Yangtao Li <tiny.windzz@gmail.com>
Date:   Mon Dec 10 11:26:41 2018 -0500

    cpuidle: big.LITTLE: fix refcount leak
    
    [ Upstream commit 9456823c842f346c74265fcd98d008d87a7eb6f5 ]
    
    of_find_node_by_path() acquires a reference to the node
    returned by it and that reference needs to be dropped by its caller.
    bl_idle_init() doesn't do that, so fix it.
    
    Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
    Acked-by: Daniel Lezcano <daniel.lezcano@linaro.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f7d3d882e85522e56d67d4e988e74c51dfe8683
Author: Anson Huang <anson.huang@nxp.com>
Date:   Fri Nov 30 07:23:47 2018 +0000

    clk: imx6sl: ensure MMDC CH0 handshake is bypassed
    
    [ Upstream commit 0efcc2c0fd2001a83240a8c3d71f67770484917e ]
    
    Same as other i.MX6 SoCs, ensure unused MMDC channel's
    handshake is bypassed, this is to make sure no request
    signal will be generated when periphe_clk_sel is changed
    or SRC warm reset is triggered.
    
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8fd78e817478122126b93313776b0134f7e7caa7
Author: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date:   Sat Nov 24 21:14:16 2018 +0300

    sata_rcar: fix deferred probing
    
    [ Upstream commit 9f83cfdb1ace3ef268ecc6fda50058d2ec37d603 ]
    
    The driver overrides the error codes returned by platform_get_irq() to
    -EINVAL, so if it returns -EPROBE_DEFER, the driver would fail the probe
    permanently instead of the deferred probing. Switch to propagating the
    error code upstream, still checking/overriding IRQ0 as libata regards it
    as "no IRQ" (thus polling) anyway...
    
    Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
    Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 919b36dba2598532d6ab36980b376fe644bfb70f
Author: Jiong Wang <jiong.wang@netronome.com>
Date:   Mon Dec 3 17:27:54 2018 -0500

    mips: bpf: fix encoding bug for mm_srlv32_op
    
    [ Upstream commit 17f6c83fb5ebf7db4fcc94a5be4c22d5a7bfe428 ]
    
    For micro-mips, srlv inside POOL32A encoding space should use 0x50
    sub-opcode, NOT 0x90.
    
    Some early version ISA doc describes the encoding as 0x90 for both srlv and
    srav, this looks to me was a typo. I checked Binutils libopcode
    implementation which is using 0x50 for srlv and 0x90 for srav.
    
    v1->v2:
      - Keep mm_srlv32_op sorted by value.
    
    Fixes: f31318fdf324 ("MIPS: uasm: Add srlv uasm instruction")
    Cc: Markos Chandras <markos.chandras@imgtec.com>
    Cc: Paul Burton <paul.burton@mips.com>
    Cc: linux-mips@vger.kernel.org
    Acked-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Acked-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Jiong Wang <jiong.wang@netronome.com>
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1293c56f7eb3fd70f56354571909f7bea0a6cea1
Author: Russell King - ARM Linux <linux@armlinux.org.uk>
Date:   Fri Dec 7 09:17:07 2018 -0800

    ARM: dts: Fix OMAP4430 SDP Ethernet startup
    
    [ Upstream commit 84fb6c7feb1494ebb7d1ec8b95cfb7ada0264465 ]
    
    It was noticed that unbinding and rebinding the KSZ8851 ethernet
    resulted in the driver reporting "failed to read device ID" at probe.
    Probing the reset line with a 'scope while repeatedly attempting to
    bind the driver in a shell loop revealed that the KSZ8851 RSTN pin is
    constantly held at zero, meaning the device is held in reset, and
    does not respond on the SPI bus.
    
    Experimentation with the startup delay on the regulator set to 50ms
    shows that the reset is positively released after 20ms.
    
    Schematics for this board are not available, and the traces are buried
    in the inner layers of the board which makes tracing where the RSTN pin
    extremely difficult.  We can only guess that the RSTN pin is wired to a
    reset generator chip driven off the ethernet supply, which fits the
    observed behaviour.
    
    Include this delay in the regulator startup delay - effectively
    treating the reset as a "supply stable" indicator.
    
    This can not be modelled as a delay in the KSZ8851 driver since the
    reset generation is board specific - if the RSTN pin had been wired to
    a GPIO, reset could be released earlier via the already provided support
    in the KSZ8851 driver.
    
    This also got confirmed by Peter Ujfalusi <peter.ujfalusi@ti.com> based
    on Blaze schematics that should be very close to SDP4430:
    
    TPS22902YFPR is used as the regulator switch (gpio48 controlled):
    Convert arm boot_lock to raw The VOUT is routed to TPS3808G01DBV.
    (SCH Note: Threshold set at 90%. Vsense: 0.405V).
    
    According to the TPS3808 data sheet the RESET delay time when Ct is
    open (this is the case in the schema): MIN/TYP/MAX: 12/20/28 ms.
    
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    [tony@atomide.com: updated with notes from schematics from Peter]
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f28d7f2b3488af27904b8b44003dc3f5402921e
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Nov 28 15:43:09 2018 -0800

    timekeeping: Use proper seqcount initializer
    
    [ Upstream commit ce10a5b3954f2514af726beb78ed8d7350c5e41c ]
    
    tk_core.seq is initialized open coded, but that misses to initialize the
    lockdep map when lockdep is enabled. Lockdep splats involving tk_core seq
    consequently lack a name and are hard to read.
    
    Use the proper initializer which takes care of the lockdep map
    initialization.
    
    [ tglx: Massaged changelog ]
    
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: peterz@infradead.org
    Cc: tj@kernel.org
    Cc: johannes.berg@intel.com
    Link: https://lkml.kernel.org/r/20181128234325.110011-12-bvanassche@acm.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e40c219934a5b8caea25a94a2774d9515c9404d7
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Wed Nov 28 15:55:21 2018 +0200

    usb: hub: delay hub autosuspend if USB3 port is still link training
    
    [ Upstream commit e86108940e541febf35813402ff29fa6f4a9ac0b ]
    
    When initializing a hub we want to give a USB3 port in link training
    the same debounce delay time before autosuspening the hub as already
    trained, connected enabled ports.
    
    USB3 ports won't reach the enabled state with "current connect status" and
    "connect status change" bits set until the USB3 link training finishes.
    
    Catching the port in link training (polling) and adding the debounce delay
    prevents unnecessary failed attempts to autosuspend the hub.
    
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e51ff4fd1f0c0c6b91758eb8f01bfa9a610ccd7d
Author: Zoran Markovic <zmarkovic@sierrawireless.com>
Date:   Wed Oct 17 16:25:44 2018 -0700

    smack: fix access permissions for keyring
    
    [ Upstream commit 5b841bfab695e3b8ae793172a9ff7990f99cc3e2 ]
    
    Function smack_key_permission() only issues smack requests for the
    following operations:
     - KEY_NEED_READ (issues MAY_READ)
     - KEY_NEED_WRITE (issues MAY_WRITE)
     - KEY_NEED_LINK (issues MAY_WRITE)
     - KEY_NEED_SETATTR (issues MAY_WRITE)
    A blank smack request is issued in all other cases, resulting in
    smack access being granted if there is any rule defined between
    subject and object, or denied with -EACCES otherwise.
    
    Request MAY_READ access for KEY_NEED_SEARCH and KEY_NEED_VIEW.
    Fix the logic in the unlikely case when both MAY_READ and
    MAY_WRITE are needed. Validate access permission field for valid
    contents.
    
    Signed-off-by: Zoran Markovic <zmarkovic@sierrawireless.com>
    Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
    Cc: Casey Schaufler <casey@schaufler-ca.com>
    Cc: James Morris <jmorris@namei.org>
    Cc: "Serge E. Hallyn" <serge@hallyn.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 901adf68e568b464a7d4bb3c91a814c796efc58c
Author: Alexey Khoroshilov <khoroshilov@ispras.ru>
Date:   Fri Nov 23 16:56:26 2018 -0500

    media: DaVinci-VPBE: fix error handling in vpbe_initialize()
    
    [ Upstream commit aa35dc3c71950e3fec3e230c06c27c0fbd0067f8 ]
    
    If vpbe_set_default_output() or vpbe_set_default_mode() fails,
    vpbe_initialize() returns error code without releasing resources.
    
    The patch adds error handling for that case.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a19ea93f42e61b3bd8b0ef978c8a563ba25d49cd
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Thu Nov 15 22:42:01 2018 +0000

    arm64: ftrace: don't adjust the LR value
    
    [ Upstream commit 6e803e2e6e367db9a0d6ecae1bd24bb5752011bd ]
    
    The core ftrace code requires that when it is handed the PC of an
    instrumented function, this PC is the address of the instrumented
    instruction. This is necessary so that the core ftrace code can identify
    the specific instrumentation site. Since the instrumented function will
    be a BL, the address of the instrumented function is LR - 4 at entry to
    the ftrace code.
    
    This fixup is applied in the mcount_get_pc and mcount_get_pc0 helpers,
    which acquire the PC of the instrumented function.
    
    The mcount_get_lr helper is used to acquire the LR of the instrumented
    function, whose value does not require this adjustment, and cannot be
    adjusted to anything meaningful. No adjustment of this value is made on
    other architectures, including arm. However, arm64 adjusts this value by
    4.
    
    This patch brings arm64 in line with other architectures and removes the
    adjustment of the LR value.
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Cc: AKASHI Takahiro <takahiro.akashi@linaro.org>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Torsten Duwe <duwe@suse.de>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9fb787cb5f2d362c60adff66f883fc0b68a1e804
Author: J. Bruce Fields <bfields@redhat.com>
Date:   Tue Nov 27 15:54:17 2018 -0500

    nfsd4: fix crash on writing v4_end_grace before nfsd startup
    
    [ Upstream commit 62a063b8e7d1db684db3f207261a466fa3194e72 ]
    
    Anatoly Trosinenko reports that this:
    
    1) Checkout fresh master Linux branch (tested with commit e195ca6cb)
    2) Copy x84_64-config-4.14 to .config, then enable NFS server v4 and build
    3) From `kvm-xfstests shell`:
    
    results in NULL dereference in locks_end_grace.
    
    Check that nfsd has been started before trying to end the grace period.
    
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 88331aa2d322acfff1148974de67de057e793d8c
Author: Yunlei He <heyunlei@huawei.com>
Date:   Tue Nov 6 10:25:29 2018 +0800

    f2fs: move dir data flush to write checkpoint process
    
    [ Upstream commit b61ac5b720146c619c7cdf17eff2551b934399e5 ]
    
    This patch move dir data flush to write checkpoint process, by
    doing this, it may reduce some time for dir fsync.
    
    pre:
            -f2fs_do_sync_file enter
                    -file_write_and_wait_range  <- flush & wait
                    -write_checkpoint
                            -do_checkpoint      <- wait all
            -f2fs_do_sync_file exit
    
    now:
            -f2fs_do_sync_file enter
                    -write_checkpoint
                            -block_operations   <- flush dir & no wait
                            -do_checkpoint      <- wait all
            -f2fs_do_sync_file exit
    
    Signed-off-by: Yunlei He <heyunlei@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d31660b9452e40c10fc5f22b67ef7b47126f8c9a
Author: Yangtao Li <tiny.windzz@gmail.com>
Date:   Wed Nov 21 07:49:12 2018 -0500

    soc/tegra: Don't leak device tree node reference
    
    [ Upstream commit 9eb40fa2cd2d1f6829e7b49bb22692f754b9cfe0 ]
    
    of_find_node_by_path() acquires a reference to the node returned by it
    and that reference needs to be dropped by its caller. soc_is_tegra()
    doesn't do that, so fix it.
    
    Signed-off-by: Yangtao Li <tiny.windzz@gmail.com>
    Acked-by: Jon Hunter <jonathanh@nvidia.com>
    [treding: slightly rewrite to avoid inline comparison]
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a49c4cee298105eeacdeba020757601dff6f6aab
Author: Pu Wen <puwen@hygon.cn>
Date:   Mon Nov 12 15:40:51 2018 +0800

    perf tools: Add Hygon Dhyana support
    
    [ Upstream commit 4787eff3fa88f62fede6ed7afa06477ae6bf984d ]
    
    The tool perf is useful for the performance analysis on the Hygon Dhyana
    platform. But right now there is no Hygon support for it to analyze the
    KVM guest os data. So add Hygon Dhyana support to it by checking vendor
    string to share the code path of AMD.
    
    Signed-off-by: Pu Wen <puwen@hygon.cn>
    Acked-by: Borislav Petkov <bp@suse.de>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1542008451-31735-1-git-send-email-puwen@hygon.cn
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c17921884cfb4fbd30161ffd3c6618f4804342e3
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Tue Oct 23 15:15:35 2018 -0700

    modpost: validate symbol names also in find_elf_symbol
    
    [ Upstream commit 5818c683a619c534c113e1f66d24f636defc29bc ]
    
    If an ARM mapping symbol shares an address with a valid symbol,
    find_elf_symbol can currently return the mapping symbol instead, as the
    symbol is not validated. This can result in confusing warnings:
    
      WARNING: vmlinux.o(.text+0x18f4028): Section mismatch in reference
      from the function set_reset_devices() to the variable .init.text:$x.0
    
    This change adds a call to is_valid_name to find_elf_symbol, similarly
    to how it's already used in find_elf_symbol2.
    
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ad62a83632b923669bf5126392e1b6bc6d4be127
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Wed Oct 17 17:52:07 2018 -0700

    ARM: OMAP2+: hwmod: Fix some section annotations
    
    [ Upstream commit c10b26abeb53cabc1e6271a167d3f3d396ce0218 ]
    
    When building the kernel with Clang, the following section mismatch
    warnings appears:
    
    WARNING: vmlinux.o(.text+0x2d398): Section mismatch in reference from
    the function _setup() to the function .init.text:_setup_iclk_autoidle()
    The function _setup() references
    the function __init _setup_iclk_autoidle().
    This is often because _setup lacks a __init
    annotation or the annotation of _setup_iclk_autoidle is wrong.
    
    WARNING: vmlinux.o(.text+0x2d3a0): Section mismatch in reference from
    the function _setup() to the function .init.text:_setup_reset()
    The function _setup() references
    the function __init _setup_reset().
    This is often because _setup lacks a __init
    annotation or the annotation of _setup_reset is wrong.
    
    WARNING: vmlinux.o(.text+0x2d408): Section mismatch in reference from
    the function _setup() to the function .init.text:_setup_postsetup()
    The function _setup() references
    the function __init _setup_postsetup().
    This is often because _setup lacks a __init
    annotation or the annotation of _setup_postsetup is wrong.
    
    _setup is used in omap_hwmod_allocate_module, which isn't marked __init
    and looks like it shouldn't be, meaning to fix these warnings, those
    functions must be moved out of the init section, which this patch does.
    
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1718fda55ba0e26d82446fa48056fe925a705d26
Author: Renato Lui Geh <renatogeh@gmail.com>
Date:   Mon Nov 5 17:14:58 2018 -0200

    staging: iio: ad7780: update voltage on read
    
    [ Upstream commit 336650c785b62c3bea7c8cf6061c933a90241f67 ]
    
    The ad7780 driver previously did not read the correct device output, as
    it read an outdated value set at initialization. It now updates its
    voltage on read.
    
    Signed-off-by: Renato Lui Geh <renatogeh@gmail.com>
    Acked-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bc6b5abc2a18429c360633341e1125ef9f4c8771
Author: Matheus Tavares <matheus.bernardino@usp.br>
Date:   Sat Nov 3 19:49:44 2018 -0300

    staging:iio:ad2s90: Make probe handle spi_setup failure
    
    [ Upstream commit b3a3eafeef769c6982e15f83631dcbf8d1794efb ]
    
    Previously, ad2s90_probe ignored the return code from spi_setup, not
    handling its possible failure. This patch makes ad2s90_probe check if
    the code is an error code and, if so, do the following:
    
    - Call dev_err with an appropriate error message.
    - Return the spi_setup's error code.
    
    Note: The 'return ret' statement could be out of the 'if' block, but
    this whole block will be moved up in the function in the patch:
    'staging:iio:ad2s90: Move device registration to the end of probe'.
    
    Signed-off-by: Matheus Tavares <matheus.bernardino@usp.br>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 62d61e6320c3fad039d8c20a9c1a3299c3cbb688
Author: Andy Duan <fugang.duan@nxp.com>
Date:   Tue Oct 16 07:32:22 2018 +0000

    serial: fsl_lpuart: clear parity enable bit when disable parity
    
    [ Upstream commit 397bd9211fe014b347ca8f95a8f4e1017bac1aeb ]
    
    Current driver only enable parity enable bit and never clear it
    when user set the termios. The fix clear the parity enable bit when
    PARENB flag is not set in termios->c_cflag.
    
    Cc: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: Andy Duan <fugang.duan@nxp.com>
    Reviewed-by: Fabio Estevam <festevam@gmail.com>
    Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c4d9c7a7b7869a13d1fb6de2a759493ae84737fd
Author: Frank Rowand <frank.rowand@sony.com>
Date:   Thu Oct 4 20:27:16 2018 -0700

    powerpc/pseries: add of_node_put() in dlpar_detach_node()
    
    [ Upstream commit 5b3f5c408d8cc59b87e47f1ab9803dbd006e4a91 ]
    
    The previous commit, "of: overlay: add missing of_node_get() in
    __of_attach_node_sysfs" added a missing of_node_get() to
    __of_attach_node_sysfs().  This results in a refcount imbalance
    for nodes attached with dlpar_attach_node().  The calling sequence
    from dlpar_attach_node() to __of_attach_node_sysfs() is:
    
       dlpar_attach_node()
          of_attach_node()
             __of_attach_node_sysfs()
    
    For more detailed description of the node refcount, see
    commit 68baf692c435 ("powerpc/pseries: Fix of_node_put() underflow
    during DLPAR remove").
    
    Tested-by: Alan Tull <atull@kernel.org>
    Acked-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Frank Rowand <frank.rowand@sony.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ed169a8fc31da67287429c6dbde44bd6d0b4dc28
Author: Colin Ian King <colin.king@canonical.com>
Date:   Thu Oct 25 14:52:31 2018 +0100

    x86/PCI: Fix Broadcom CNB20LE unintended sign extension (redux)
    
    [ Upstream commit 53bb565fc5439f2c8c57a786feea5946804aa3e9 ]
    
    In the expression "word1 << 16", word1 starts as u16, but is promoted to a
    signed int, then sign-extended to resource_size_t, which is probably not
    what was intended.  Cast to resource_size_t to avoid the sign extension.
    
    This fixes an identical issue as fixed by commit 0b2d70764bb3 ("x86/PCI:
    Fix Broadcom CNB20LE unintended sign extension") back in 2014.
    
    Detected by CoverityScan, CID#138749, 138750 ("Unintended sign extension")
    
    Fixes: 3f6ea84a3035 ("PCI: read memory ranges out of Broadcom CNB20LE host bridge")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Bjorn Helgaas <helgaas@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c2808e35c913949e329fc13058bedc5b0b044e06
Author: Bob Peterson <rpeterso@redhat.com>
Date:   Thu Nov 8 14:04:50 2018 -0500

    dlm: Don't swamp the CPU with callbacks queued during recovery
    
    [ Upstream commit 216f0efd19b9cc32207934fd1b87a45f2c4c593e ]
    
    Before this patch, recovery would cause all callbacks to be delayed,
    put on a queue, and afterward they were all queued to the callback
    work queue. This patch does the same thing, but occasionally takes
    a break after 25 of them so it won't swamp the CPU at the expense
    of other RT processes like corosync.
    
    Signed-off-by: Bob Peterson <rpeterso@redhat.com>
    Signed-off-by: David Teigland <teigland@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a160cf4ee87a8f5a14c6814dacf408ee4499a514
Author: Yufen Wang <wangyufen@huawei.com>
Date:   Fri Nov 2 11:51:31 2018 +0100

    ARM: 8808/1: kexec:offline panic_smp_self_stop CPU
    
    [ Upstream commit 82c08c3e7f171aa7f579b231d0abbc1d62e91974 ]
    
    In case panic() and panic() called at the same time on different CPUS.
    For example:
    CPU 0:
      panic()
         __crash_kexec
           machine_crash_shutdown
             crash_smp_send_stop
           machine_kexec
             BUG_ON(num_online_cpus() > 1);
    
    CPU 1:
      panic()
        local_irq_disable
        panic_smp_self_stop
    
    If CPU 1 calls panic_smp_self_stop() before crash_smp_send_stop(), kdump
    fails. CPU1 can't receive the ipi irq, CPU1 will be always online.
    To fix this problem, this patch split out the panic_smp_self_stop()
    and add set_cpu_online(smp_processor_id(), false).
    
    Signed-off-by: Yufen Wang <wangyufen@huawei.com>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a3d19b2bb4300515ef6c884482635e0f835339ba
Author: Slawomir Stepien <sst@poczta.fm>
Date:   Sat Oct 20 23:04:11 2018 +0200

    staging: iio: adc: ad7280a: handle error from __ad7280_read32()
    
    [ Upstream commit 0559ef7fde67bc6c83c6eb6329dbd6649528263e ]
    
    Inside __ad7280_read32(), the spi_sync_transfer() can fail with negative
    error code. This change will ensure that this error is being passed up
    in the call stack, so it can be handled.
    
    Signed-off-by: Slawomir Stepien <sst@poczta.fm>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>