Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.9-1.0.x-imx stable 4.9.67 merge #21

Merged
merged 3,676 commits into from
Dec 13, 2017
This pull request is big! We’re only showing the most recent 250 commits.

Commits on Nov 21, 2017

  1. rtc: rx8010: change lock mechanism

    [ Upstream commit 666b5d1 ]
    
    Remove spinlock and use the "rtc->ops_lock" from RTC subsystem instead.
    spin_lock_irqsave() is not needed here because we do not have hard IRQs.
    
    This patch fixes the following issue:
    
    root@GE004097290448 b850v3:~# hwclock --systohc
    root@GE004097290448 b850v3:~# hwclock --systohc
    root@GE004097290448 b850v3:~# hwclock --systohc
    root@GE004097290448 b850v3:~# hwclock --systohc
    root@GE004097290448 b850v3:~# hwclock --systohc
    [   82.108175] BUG: spinlock wrong CPU on CPU#0, hwclock/855
    [   82.113660]  lock: 0xedb4899c, .magic: dead4ead, .owner: hwclock/855, .owner_cpu: 1
    [   82.121329] CPU: 0 PID: 855 Comm: hwclock Not tainted 4.8.0-00042-g09d5410-dirty Freescale#20
    [   82.129078] Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
    [   82.135609] Backtrace:
    [   82.138090] [<8010d378>] (dump_backtrace) from [<8010d5c0>] (show_stack+0x20/0x24)
    [   82.145664]  r7:ec936000 r6:600a0013 r5:00000000 r4:81031680
    [   82.151402] [<8010d5a0>] (show_stack) from [<80401518>] (dump_stack+0xb4/0xe8)
    [   82.158636] [<80401464>] (dump_stack) from [<8017b8b0>] (spin_dump+0x84/0xcc)
    [   82.165775]  r10:00000000 r9:ec936000 r8:81056090 r7:600a0013 r6:edb4899c r5:edb4899c
    [   82.173691]  r4:e5033e00 r3:00000000
    [   82.177308] [<8017b82c>] (spin_dump) from [<8017bcb0>] (do_raw_spin_unlock+0x108/0x130)
    [   82.185314]  r5:edb4899c r4:edb4899c
    [   82.188938] [<8017bba8>] (do_raw_spin_unlock) from [<8094b93c>] (_raw_spin_unlock_irqrestore+0x34/0x54)
    [   82.198333]  r5:edb4899c r4:600a0013
    [   82.201953] [<8094b908>] (_raw_spin_unlock_irqrestore) from [<8065b090>] (rx8010_set_time+0x14c/0x188)
    [   82.211261]  r5:00000020 r4:edb48990
    [   82.214882] [<8065af44>] (rx8010_set_time) from [<80653fe4>] (rtc_set_time+0x70/0x104)
    [   82.222801]  r7:00000051 r6:edb39da0 r5:edb39c00 r4:ec937e8c
    [   82.228535] [<80653f74>] (rtc_set_time) from [<80655774>] (rtc_dev_ioctl+0x3c4/0x674)
    [   82.236368]  r7:00000051 r6:7ecf1b74 r5:00000000 r4:edb39c00
    [   82.242106] [<806553b0>] (rtc_dev_ioctl) from [<80284034>] (do_vfs_ioctl+0xa4/0xa6c)
    [   82.249851]  r8:00000003 r7:80284a40 r6:ed1e9c80 r5:edb44e60 r4:7ecf1b74
    [   82.256642] [<80283f90>] (do_vfs_ioctl) from [<80284a40>] (SyS_ioctl+0x44/0x6c)
    [   82.263953]  r10:00000000 r9:ec936000 r8:7ecf1b74 r7:4024700a r6:ed1e9c80 r5:00000003
    [   82.271869]  r4:ed1e9c80
    [   82.274432] [<802849fc>] (SyS_ioctl) from [<80108520>] (ret_fast_syscall+0x0/0x1c)
    [   82.282005]  r9:ec936000 r8:801086c4 r7:00000036 r6:00000000 r5:00000003 r4:0008e1bc
    root@GE004097290448 b850v3:~#
    Message from syslogd@GE004097290448 at Dec  3 11:17:08 ...
     kernel:[   82.108175] BUG: spinlock wrong CPU on CPU#0, hwclock/855
    
    Message from syslogd@GE004097290448 at Dec  3 11:17:08 ...
     kernel:[   82.113660]  lock: 0xedb4899c, .magic: dead4ead, .owner: hwclock/855, .owner_cpu: 1
    hwclock --systohc
    root@GE004097290448 b850v3:~#
    
    Signed-off-by: Fabien Lahoudere <[email protected]>
    Signed-off-by: Alexandre Belloni <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Fabien Lahoudere authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    d9a5790 View commit details
    Browse the repository at this point in the history
  2. power: supply: axp288_fuel_gauge: Read 15 bit values 2 registers at a…

    … time
    
    [ Upstream commit 4949fc5 ]
    
    In order for the MSB -> LSB latching to work correctly we must read the
    2 8 bit registers of a 15 bit value in one consecutive read.
    
    This fixes charge_full reporting 3498768 on some reads and 3354624 one
    other reads on my tablet (for the 3354624 value the raw LSB is 0x00).
    
    Signed-off-by: Hans de Goede <[email protected]>
    Signed-off-by: Sebastian Reichel <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jwrdegoede authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    0010542 View commit details
    Browse the repository at this point in the history
  3. power: supply: axp288_fuel_gauge: Read 12 bit values 2 registers at a…

    … time
    
    [ Upstream commit 248efcf ]
    
    In order for the MSB -> LSB latching to work correctly we must read the
    2 8 bit registers of a 12 bit value in one consecutive read.
    
    This fixes voltage_ocv reporting inconsistent values on my tablet.
    
    Signed-off-by: Hans de Goede <[email protected]>
    Signed-off-by: Sebastian Reichel <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jwrdegoede authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    9dc7637 View commit details
    Browse the repository at this point in the history
  4. ALSA: vx: Don't try to update capture stream before running

    [ Upstream commit ed3c177 ]
    
    The update of stream costs significantly, and we should avoid it
    unless the stream really has started.  Check pipe->running flag
    instead of pipe->prepared.
    
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tiwai authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    0f4ea85 View commit details
    Browse the repository at this point in the history
  5. ALSA: vx: Fix possible transfer overflow

    [ Upstream commit 874e1f6 ]
    
    The pseudo DMA transfer codes in VX222 and VX-pocket driver have a
    slight bug where they check the buffer boundary wrongly, and may
    overflow.  Also, the zero sample count might be handled badly for the
    playback (although it shouldn't happen in theory).  This patch
    addresses these issues.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=141541
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tiwai authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    5d1d893 View commit details
    Browse the repository at this point in the history
  6. drm/omap: panel-sony-acx565akm.c: Add MODULE_ALIAS

    [ Upstream commit 42f7f3c ]
    
    Add module alias for Sony ACX565AKM LCD panel. This makes it probe on Nokia
    N900 when panel driver is built as a module.
    
    Signed-off-by: Jarkko Nikula <[email protected]>
    Signed-off-by: Tomi Valkeinen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhnikula authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    acc365c View commit details
    Browse the repository at this point in the history
  7. backlight: lcd: Fix race condition during register

    [ Upstream commit cc21942 ]
    
    Once device_register is called for a device its attributes might be
    accessed. As the callbacks of a lcd device's attributes make use of the
    lcd_ops, the respective member must be setup before calling
    device_register.
    
    Signed-off-by: Uwe Kleine-König <[email protected]>
    Signed-off-by: Lee Jones <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Uwe Kleine-König authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    6aaf9ba View commit details
    Browse the repository at this point in the history
  8. backlight: adp5520: Fix error handling in adp5520_bl_probe()

    [ Upstream commit 0eb3fba ]
    
    If adp5520_bl_setup() fails, sysfs group left unremoved.
    
    By the way, fix overcomplicated assignement of error code.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <[email protected]>
    Acked-by: Michael Hennerich <[email protected]>
    Signed-off-by: Lee Jones <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    khoroshilov authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    473286b View commit details
    Browse the repository at this point in the history
  9. gpu: drm: mgag200: mgag200_main:- Handle error from pci_iomap

    [ Upstream commit 4b0ea93 ]
    
    Here, pci_iomap can fail, handle this case and return -ENOMEM.
    
    Signed-off-by: Arvind Yadav <[email protected]>
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ArvindYadavCs authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    0e2245a View commit details
    Browse the repository at this point in the history
  10. ALSA: hda/realtek - Add new codec ID ALC299

    [ Upstream commit 28f1f9b ]
    
    ALC299 was similar as ALC225.
    Add headset support for ALC299.
    ALC3271 was for Dell rename.
    
    Signed-off-by: Kailang Yang <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kailangyang authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    f6e94c2 View commit details
    Browse the repository at this point in the history
  11. arm64: dts: NS2: reserve memory for Nitro firmware

    [ Upstream commit 0cc878d ]
    
    Nitro firmware is loaded into memory by the bootloader at a specific
    location.  Set this memory range aside to prevent the kernel from using
    it.
    
    Signed-off-by: Jon Mason <[email protected]>
    Signed-off-by: Florian Fainelli <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jon Mason authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    5d820f8 View commit details
    Browse the repository at this point in the history
  12. ixgbe: Configure advertised speeds correctly for KR/KX backplane

    [ Upstream commit 54f6d4c ]
    
    This patch ensures that the advertised link speeds are configured
    for X553 KR/KX backplane.  Without this patch the link remains at
    1G when resuming from low power after being downshifted by LPLU.
    
    Signed-off-by: Don Skidmore <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dcskidmo authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    6c79999 View commit details
    Browse the repository at this point in the history
  13. ixgbe: fix AER error handling

    [ Upstream commit 126db13 ]
    
    Make sure that we free the IRQs in ixgbe_io_error_detected() when
    responding to an PCIe AER error and also restore them when the
    interface recovers from it.
    
    Previously it was possible to trigger BUG_ON() check in free_msix_irqs()
    in the case where we call ixgbe_remove() after a failed recovery from
    AER error because the interrupts were not freed.
    
    Signed-off-by: Emil Tantilov <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    etantilov authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    6a4ef8b View commit details
    Browse the repository at this point in the history
  14. ixgbe: handle close/suspend race with netif_device_detach/present

    [ Upstream commit f7f37e7 ]
    
    When an interface is part of a namespace it is possible that
    ixgbe_close() may be called while __ixgbe_shutdown() is running
    which ends up in a double free WARN and/or a BUG in free_msi_irqs().
    
    To handle this situation we extend the rtnl_lock() to protect the
    call to netif_device_detach() and ixgbe_clear_interrupt_scheme()
    in __ixgbe_shutdown() and check for netif_device_present()
    to avoid clearing the interrupts second time in ixgbe_close();
    
    Also extend the rtnl lock in ixgbe_resume() to netif_device_attach().
    
    Signed-off-by: Emil Tantilov <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    etantilov authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    3bed7d6 View commit details
    Browse the repository at this point in the history
  15. ixgbe: Fix reporting of 100Mb capability

    [ Upstream commit f215266 ]
    
    BaseT adapters that are capable of supporting 100Mb are not reporting this
    capability.  This patch corrects the reporting so that 100Mb is shown as
    supported on those adapters.
    
    Signed-off-by: Tony Nguyen <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    anguy11 authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    e15dad3 View commit details
    Browse the repository at this point in the history
  16. ixgbe: Reduce I2C retry count on X550 devices

    [ Upstream commit 3f0d646 ]
    
    A retry count of 10 is likely to run into problems on X550 devices that
    have to detect and reset unresponsive CS4227 devices. So, reduce the I2C
    retry count to 3 for X550 and above. This should avoid any possible
    regressions in existing devices.
    
    Signed-off-by: Tony Nguyen <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    anguy11 authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    7316fb3 View commit details
    Browse the repository at this point in the history
  17. ixgbe: add mask for 64 RSS queues

    [ Upstream commit 2bf1a87 ]
    
    The indirection table was reported incorrectly for X550 and newer
    where we can support up to 64 RSS queues.
    
    Reported-by Krishneil Singh <[email protected]>
    Signed-off-by: Emil Tantilov <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    etantilov authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    bc656fd View commit details
    Browse the repository at this point in the history
  18. ixgbe: do not disable FEC from the driver

    [ Upstream commit 1fe954b ]
    
    FEC is configured by the NVM and the driver should not be
    overriding it.
    
    Signed-off-by: Emil Tantilov <[email protected]>
    Tested-by: Krishneil Singh <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    etantilov authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    ef417b5 View commit details
    Browse the repository at this point in the history
  19. staging: rtl8712: fixed little endian problem

    [ Upstream commit 502c807 ]
    
    Fixed a sparse warning.
    Using function le16_to_cpus() to avoid double assignment.
    
    Signed-off-by: Jannik Becher <[email protected]>
    Tested-by: Larry Finger <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jannikbecher authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    ca24e70 View commit details
    Browse the repository at this point in the history
  20. staging: wilc1000: Fix endian sparse warning

    [ Upstream commit 94500d5 ]
    
    drivers/staging/wilc1000/linux_wlan.c:995:18: warning: restricted __be16 degrades to integer
    
    Signed-off-by: Mike Kofron <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kofdog authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    1f5a7ca View commit details
    Browse the repository at this point in the history
  21. staging: greybus: add host device function pointer checks

    [ Upstream commit f05a88a ]
    
    Add sanity checks for cport_quiesce and cport_clear before invoking the
    callbacks as these function pointers are not required during the host
    device registration. This follows the logic implemented elsewhere for
    various other function pointers.
    
    Signed-off-by: Jason Hrycay <[email protected]>
    Reviewed-by: Bryan O'Donoghue <[email protected]>
    Acked-by: Johan Hovold <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhrycay authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    b53bab7 View commit details
    Browse the repository at this point in the history
  22. MIPS: End asm function prologue macros with .insn

    [ Upstream commit 0888958 ]
    
    When building a kernel targeting a microMIPS ISA, recent GNU linkers
    will fail the link if they cannot determine that the target of a branch
    or jump is microMIPS code, with errors such as the following:
    
        mips-img-linux-gnu-ld: arch/mips/built-in.o: .text+0x542c:
        Unsupported jump between ISA modes; consider recompiling with
        interlinking enabled.
        mips-img-linux-gnu-ld: final link failed: Bad value
    
    or:
    
        ./arch/mips/include/asm/uaccess.h:1017: warning: JALX to a
        non-word-aligned address
    
    Placing anything other than an instruction at the start of a function
    written in assembly appears to trigger such errors. In order to prepare
    for allowing us to follow function prologue macros with an EXPORT_SYMBOL
    invocation, end the prologue macros (LEAD, NESTED & FEXPORT) with a
    .insn directive. This ensures that the start of the function is marked
    as code, which always makes sense for functions & safely prevents us
    from hitting the link errors described above.
    
    Signed-off-by: Paul Burton <[email protected]>
    Reviewed-by: Maciej W. Rozycki <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/14508/
    Signed-off-by: Ralf Baechle <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    paulburton authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    3b0f619 View commit details
    Browse the repository at this point in the history
  23. MIPS: init: Ensure bootmem does not corrupt reserved memory

    [ Upstream commit d9b5b65 ]
    
    Current init code initialises bootmem allocator with all of the low
    memory that it assumes is available, but does not check for reserved
    memory block, which can lead to corruption of data that may be stored
    there.
    Move bootmem's allocation map to a location that does not cross any
    reserved regions
    
    Signed-off-by: Marcin Nowakowski <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/14609/
    Signed-off-by: Ralf Baechle <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    MJNowakowski authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    6539d1c View commit details
    Browse the repository at this point in the history
  24. MIPS: init: Ensure reserved memory regions are not added to bootmem

    [ Upstream commit e89ef66 ]
    
    Memories managed through boot_mem_map are generally expected to define
    non-crossing areas. However, if part of a larger memory block is marked
    as reserved, it would still be added to bootmem allocator as an
    available block and could end up being overwritten by the allocator.
    
    Prevent this by explicitly marking the memory as reserved it if exists
    in the range used by bootmem allocator.
    
    Signed-off-by: Marcin Nowakowski <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/14608/
    Signed-off-by: Ralf Baechle <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    MJNowakowski authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    73b6038 View commit details
    Browse the repository at this point in the history
  25. MIPS: traps: Ensure L1 & L2 ECC checking match for CM3 systems

    [ Upstream commit 35e6de3 ]
    
    On systems with CM3, we must ensure that the L1 & L2 ECC enables are set
    to the same value. This is presumed by the hardware & cache corruption
    can occur when it is not the case. Support enabling & disabling the L2
    ECC checking on CM3 systems where this is controlled via a GCR, and
    ensure that it matches the state of L1 ECC checking. Remove I6400 from
    the switch statement it will no longer hit, and which was incorrect
    since the L2 ECC enable bit isn't in the CP0 ErrCtl register.
    
    Signed-off-by: Paul Burton <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/14413/
    Signed-off-by: Ralf Baechle <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    paulburton authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    ade4b22 View commit details
    Browse the repository at this point in the history
  26. MIPS: Netlogic: Exclude netlogic,xlp-pic code from XLR builds

    [ Upstream commit 9799270 ]
    
    Code in arch/mips/netlogic/common/irq.c which handles the XLP PIC fails
    to build in XLR configurations due to cpu_is_xlp9xx not being defined,
    leading to the following build failure:
    
        arch/mips/netlogic/common/irq.c: In function ‘xlp_of_pic_init’:
        arch/mips/netlogic/common/irq.c:298:2: error: implicit declaration
        of function ‘cpu_is_xlp9xx’ [-Werror=implicit-function-declaration]
          if (cpu_is_xlp9xx()) {
          ^
    
    Although the code was conditional upon CONFIG_OF which is indirectly
    selected by CONFIG_NLM_XLP_BOARD but not CONFIG_NLM_XLR_BOARD, the
    failing XLR with CONFIG_OF configuration can be configured manually or
    by randconfig.
    
    Fix the build failure by making the affected XLP PIC code conditional
    upon CONFIG_CPU_XLP which is used to guard the inclusion of
    asm/netlogic/xlp-hal/xlp.h that provides the required cpu_is_xlp9xx
    function.
    
    [[email protected]: Fixed up as per Jayachandran's suggestion.]
    
    Signed-off-by: Paul Burton <[email protected]>
    Cc: Jayachandran C <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/14524/
    Signed-off-by: Ralf Baechle <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    paulburton authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    d7df7af View commit details
    Browse the repository at this point in the history
  27. Revert "crypto: xts - Add ECB dependency"

    This reverts commit 6145171.
    
    The commit fixes a bug that was only introduced in 4.10, thus is
    irrelevant for <=4.9.
    
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sasha Levin authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    d8ce2b0 View commit details
    Browse the repository at this point in the history
  28. Revert "uapi: fix linux/rds.h userspace compilation errors"

    This reverts commit ad50561.
    
    There was a mixup with the commit message for two upstream commit
    that have the same subject line.
    
    This revert will be followed by the two commits with proper commit
    messages.
    
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sasha Levin authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    3f0cc54 View commit details
    Browse the repository at this point in the history
  29. uapi: fix linux/rds.h userspace compilation error

    [ Upstream commit 1786dbf ]
    
    On the kernel side, sockaddr_storage is #define'd to
    __kernel_sockaddr_storage.  Replacing struct sockaddr_storage with
    struct __kernel_sockaddr_storage defined by <linux/socket.h> fixes
    the following linux/rds.h userspace compilation error:
    
    /usr/include/linux/rds.h:226:26: error: field 'dest_addr' has incomplete type
      struct sockaddr_storage dest_addr;
    
    Signed-off-by: Dmitry V. Levin <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ldv-alt authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    3323d07 View commit details
    Browse the repository at this point in the history
  30. uapi: fix linux/rds.h userspace compilation errors

    [ Upstream commit feb0869 ]
    
    Consistently use types from linux/types.h to fix the following
    linux/rds.h userspace compilation errors:
    
    /usr/include/linux/rds.h:106:2: error: unknown type name 'uint8_t'
      uint8_t name[32];
    /usr/include/linux/rds.h:107:2: error: unknown type name 'uint64_t'
      uint64_t value;
    /usr/include/linux/rds.h:117:2: error: unknown type name 'uint64_t'
      uint64_t next_tx_seq;
    /usr/include/linux/rds.h:118:2: error: unknown type name 'uint64_t'
      uint64_t next_rx_seq;
    /usr/include/linux/rds.h:121:2: error: unknown type name 'uint8_t'
      uint8_t transport[TRANSNAMSIZ];  /* null term ascii */
    /usr/include/linux/rds.h:122:2: error: unknown type name 'uint8_t'
      uint8_t flags;
    /usr/include/linux/rds.h:129:2: error: unknown type name 'uint64_t'
      uint64_t seq;
    /usr/include/linux/rds.h:130:2: error: unknown type name 'uint32_t'
      uint32_t len;
    /usr/include/linux/rds.h:135:2: error: unknown type name 'uint8_t'
      uint8_t flags;
    /usr/include/linux/rds.h:139:2: error: unknown type name 'uint32_t'
      uint32_t sndbuf;
    /usr/include/linux/rds.h:144:2: error: unknown type name 'uint32_t'
      uint32_t rcvbuf;
    /usr/include/linux/rds.h:145:2: error: unknown type name 'uint64_t'
      uint64_t inum;
    /usr/include/linux/rds.h:153:2: error: unknown type name 'uint64_t'
      uint64_t       hdr_rem;
    /usr/include/linux/rds.h:154:2: error: unknown type name 'uint64_t'
      uint64_t       data_rem;
    /usr/include/linux/rds.h:155:2: error: unknown type name 'uint32_t'
      uint32_t       last_sent_nxt;
    /usr/include/linux/rds.h:156:2: error: unknown type name 'uint32_t'
      uint32_t       last_expected_una;
    /usr/include/linux/rds.h:157:2: error: unknown type name 'uint32_t'
      uint32_t       last_seen_una;
    /usr/include/linux/rds.h:164:2: error: unknown type name 'uint8_t'
      uint8_t  src_gid[RDS_IB_GID_LEN];
    /usr/include/linux/rds.h:165:2: error: unknown type name 'uint8_t'
      uint8_t  dst_gid[RDS_IB_GID_LEN];
    /usr/include/linux/rds.h:167:2: error: unknown type name 'uint32_t'
      uint32_t max_send_wr;
    /usr/include/linux/rds.h:168:2: error: unknown type name 'uint32_t'
      uint32_t max_recv_wr;
    /usr/include/linux/rds.h:169:2: error: unknown type name 'uint32_t'
      uint32_t max_send_sge;
    /usr/include/linux/rds.h:170:2: error: unknown type name 'uint32_t'
      uint32_t rdma_mr_max;
    /usr/include/linux/rds.h:171:2: error: unknown type name 'uint32_t'
      uint32_t rdma_mr_size;
    /usr/include/linux/rds.h:212:9: error: unknown type name 'uint64_t'
     typedef uint64_t rds_rdma_cookie_t;
    /usr/include/linux/rds.h:215:2: error: unknown type name 'uint64_t'
      uint64_t addr;
    /usr/include/linux/rds.h:216:2: error: unknown type name 'uint64_t'
      uint64_t bytes;
    /usr/include/linux/rds.h:221:2: error: unknown type name 'uint64_t'
      uint64_t cookie_addr;
    /usr/include/linux/rds.h:222:2: error: unknown type name 'uint64_t'
      uint64_t flags;
    /usr/include/linux/rds.h:228:2: error: unknown type name 'uint64_t'
      uint64_t  cookie_addr;
    /usr/include/linux/rds.h:229:2: error: unknown type name 'uint64_t'
      uint64_t  flags;
    /usr/include/linux/rds.h:234:2: error: unknown type name 'uint64_t'
      uint64_t flags;
    /usr/include/linux/rds.h:240:2: error: unknown type name 'uint64_t'
      uint64_t local_vec_addr;
    /usr/include/linux/rds.h:241:2: error: unknown type name 'uint64_t'
      uint64_t nr_local;
    /usr/include/linux/rds.h:242:2: error: unknown type name 'uint64_t'
      uint64_t flags;
    /usr/include/linux/rds.h:243:2: error: unknown type name 'uint64_t'
      uint64_t user_token;
    /usr/include/linux/rds.h:248:2: error: unknown type name 'uint64_t'
      uint64_t  local_addr;
    /usr/include/linux/rds.h:249:2: error: unknown type name 'uint64_t'
      uint64_t  remote_addr;
    /usr/include/linux/rds.h:252:4: error: unknown type name 'uint64_t'
        uint64_t compare;
    /usr/include/linux/rds.h:253:4: error: unknown type name 'uint64_t'
        uint64_t swap;
    /usr/include/linux/rds.h:256:4: error: unknown type name 'uint64_t'
        uint64_t add;
    /usr/include/linux/rds.h:259:4: error: unknown type name 'uint64_t'
        uint64_t compare;
    /usr/include/linux/rds.h:260:4: error: unknown type name 'uint64_t'
        uint64_t swap;
    /usr/include/linux/rds.h:261:4: error: unknown type name 'uint64_t'
        uint64_t compare_mask;
    /usr/include/linux/rds.h:262:4: error: unknown type name 'uint64_t'
        uint64_t swap_mask;
    /usr/include/linux/rds.h:265:4: error: unknown type name 'uint64_t'
        uint64_t add;
    /usr/include/linux/rds.h:266:4: error: unknown type name 'uint64_t'
        uint64_t nocarry_mask;
    /usr/include/linux/rds.h:269:2: error: unknown type name 'uint64_t'
      uint64_t flags;
    /usr/include/linux/rds.h:270:2: error: unknown type name 'uint64_t'
      uint64_t user_token;
    /usr/include/linux/rds.h:274:2: error: unknown type name 'uint64_t'
      uint64_t user_token;
    /usr/include/linux/rds.h:275:2: error: unknown type name 'int32_t'
      int32_t  status;
    
    Signed-off-by: Dmitry V. Levin <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ldv-alt authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    f95d605 View commit details
    Browse the repository at this point in the history
  31. Revert "dt-bindings: Add vendor prefix for LEGO"

    This reverts commit 04e13a5.
    
    As Ben pointed out, these drivers don't exist in <=4.9.
    
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sasha Levin authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    a9a3cb2 View commit details
    Browse the repository at this point in the history
  32. Revert "dt-bindings: Add LEGO MINDSTORMS EV3 compatible specification"

    This reverts commit 852bf68.
    
    As Ben pointed out, these drivers don't exist in <=4.9.
    
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Sasha Levin authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    e38fe63 View commit details
    Browse the repository at this point in the history
  33. crypto: dh - Don't permit 'p' to be 0

    commit 199512b upstream.
    
    If 'p' is 0 for the software Diffie-Hellman implementation, then
    dh_max_size() returns 0.  In the case of KEYCTL_DH_COMPUTE, this causes
    ZERO_SIZE_PTR to be passed to sg_init_one(), which with
    CONFIG_DEBUG_SG=y triggers the 'BUG_ON(!virt_addr_valid(buf));' in
    sg_set_buf().
    
    Fix this by making crypto_dh_decode_key() reject 0 for 'p'.  p=0 makes
    no sense for any DH implementation because 'p' is supposed to be a prime
    number.  Moreover, 'mod 0' is not mathematically defined.
    
    Bug report:
    
        kernel BUG at ./include/linux/scatterlist.h:140!
        invalid opcode: 0000 [Freescale#1] SMP KASAN
        CPU: 0 PID: 27112 Comm: syz-executor2 Not tainted 4.14.0-rc7-00010-gf5dbb5d0ce32-dirty Freescale#7
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.3-20171021_125229-anatol 04/01/2014
        task: ffff88006caac0c0 task.stack: ffff88006c7c8000
        RIP: 0010:sg_set_buf include/linux/scatterlist.h:140 [inline]
        RIP: 0010:sg_init_one+0x1b3/0x240 lib/scatterlist.c:156
        RSP: 0018:ffff88006c7cfb08 EFLAGS: 00010216
        RAX: 0000000000010000 RBX: ffff88006c7cfe30 RCX: 00000000000064ee
        RDX: ffffffff81cf64c3 RSI: ffffc90000d72000 RDI: ffffffff92e937e0
        RBP: ffff88006c7cfb30 R08: ffffed000d8f9fab R09: ffff88006c7cfd30
        R10: 0000000000000005 R11: ffffed000d8f9faa R12: ffff88006c7cfd30
        R13: 0000000000000000 R14: 0000000000000010 R15: ffff88006c7cfc50
        FS:  00007fce190fa700(0000) GS:ffff88003ea00000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 00007fffc6b33db8 CR3: 000000003cf64000 CR4: 00000000000006f0
        Call Trace:
         __keyctl_dh_compute+0xa95/0x19b0 security/keys/dh.c:360
         keyctl_dh_compute+0xac/0x100 security/keys/dh.c:434
         SYSC_keyctl security/keys/keyctl.c:1745 [inline]
         SyS_keyctl+0x72/0x2c0 security/keys/keyctl.c:1641
         entry_SYSCALL_64_fastpath+0x1f/0xbe
        RIP: 0033:0x4585c9
        RSP: 002b:00007fce190f9bd8 EFLAGS: 00000216 ORIG_RAX: 00000000000000fa
        RAX: ffffffffffffffda RBX: 0000000000738020 RCX: 00000000004585c9
        RDX: 000000002000d000 RSI: 0000000020000ff4 RDI: 0000000000000017
        RBP: 0000000000000046 R08: 0000000020008000 R09: 0000000000000000
        R10: 0000000000000000 R11: 0000000000000216 R12: 00007fff6e610cde
        R13: 00007fff6e610cdf R14: 00007fce190fa700 R15: 0000000000000000
        Code: 03 0f b6 14 02 48 89 f8 83 e0 07 83 c0 03 38 d0 7c 04 84 d2 75 33 5b 45 89 6c 24 14 41 5c 41 5d 41 5e 41 5f 5d c3 e8 fd 8f 68 ff <0f> 0b e8 f6 8f 68 ff 0f 0b e8 ef 8f 68 ff 0f 0b e8 e8 8f 68 ff 20
        RIP: sg_set_buf include/linux/scatterlist.h:140 [inline] RSP: ffff88006c7cfb08
        RIP: sg_init_one+0x1b3/0x240 lib/scatterlist.c:156 RSP: ffff88006c7cfb08
    
    Fixes: 802c7f1 ("crypto: dh - Add DH software implementation")
    Reviewed-by: Tudor Ambarus <[email protected]>
    Signed-off-by: Eric Biggers <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    2d3a0d9 View commit details
    Browse the repository at this point in the history
  34. crypto: dh - Don't permit 'key' or 'g' size longer than 'p'

    commit ccd9888 upstream.
    
    The "qat-dh" DH implementation assumes that 'key' and 'g' can be copied
    into a buffer with size 'p_size'.  However it was never checked that
    that was actually the case, which most likely allowed users to cause a
    buffer underflow via KEYCTL_DH_COMPUTE.
    
    Fix this by updating crypto_dh_decode_key() to verify this precondition
    for all DH implementations.
    
    Fixes: c983914 ("crypto: qat - Add DH support")
    Signed-off-by: Eric Biggers <[email protected]>
    Reviewed-by: Tudor Ambarus <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    11fdb41 View commit details
    Browse the repository at this point in the history
  35. USB: usbfs: compute urb->actual_length for isochronous

    commit 2ef4700 upstream.
    
    The USB kerneldoc says that the actual_length field "is read in
    non-iso completion functions", but the usbfs driver uses it for all
    URB types in processcompl().  Since not all of the host controller
    drivers set actual_length for isochronous URBs, programs using usbfs
    with some host controllers don't work properly.  For example, Minas
    reports that a USB camera controlled by libusb doesn't work properly
    with a dwc2 controller.
    
    It doesn't seem worthwhile to change the HCDs and the documentation,
    since the in-kernel USB class drivers evidently don't rely on
    actual_length for isochronous transfers.  The easiest solution is for
    usbfs to calculate the actual_length value for itself, by adding up
    the lengths of the individual packets in an isochronous transfer.
    
    Signed-off-by: Alan Stern <[email protected]>
    CC: Minas Harutyunyan <[email protected]>
    Reported-and-tested-by: wlf <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    AlanStern authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    87ff414 View commit details
    Browse the repository at this point in the history
  36. USB: Add delay-init quirk for Corsair K70 LUX keyboards

    commit a0fea60 upstream.
    
    Without this patch, K70 LUX keyboards don't work, saying
    usb 3-3: unable to read config index 0 descriptor/all
    usb 3-3: can't read configurations, error -110
    usb usb3-port3: unable to enumerate USB device
    
    Signed-off-by: Bernhard Rosenkraenzer <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Bernhard Rosenkraenzer authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    5999737 View commit details
    Browse the repository at this point in the history
  37. usb: gadget: f_fs: Fix use-after-free in ffs_free_inst

    commit cdafb6d upstream.
    
    KASAN enabled configuration reports an error
    
    BUG: KASAN: use-after-free in ffs_free_inst+... [usb_f_fs] at addr ...
    Write of size 8 by task ...
    
    This is observed after "ffs-test" is run and interrupted. If after that
    functionfs is unmounted and g_ffs module is unloaded, that use-after-free
    occurs during g_ffs module removal.
    
    Although the report indicates ffs_free_inst() function, the actual
    use-after-free condition occurs in _ffs_free_dev() function, which
    is probably inlined into ffs_free_inst().
    
    This happens due to keeping the ffs_data reference in device structure
    during functionfs unmounting, while ffs_data itself is freed as no longer
    needed. The fix is to clear that reference in ffs_closed() function,
    which is a counterpart of ffs_ready(), where the reference is stored.
    
    Fixes: 3262ad8 ("usb: gadget: f_fs: Stop ffs_closed NULL pointer dereference")
    Signed-off-by: Andrew Gabbasov <[email protected]>
    Acked-by: Felipe Balbi <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    agabbasov authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    fd6a742 View commit details
    Browse the repository at this point in the history
  38. USB: serial: qcserial: add pid/vid for Sierra Wireless EM7355 fw update

    commit 771394a upstream.
    
    Add USB PID/VID for Sierra Wireless EM7355 LTE modem QDL firmware update
    mode.
    
    Signed-off-by: Douglas Fischer <[email protected]>
    Signed-off-by: Johan Hovold <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Douglas Fischer authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    1f9688d View commit details
    Browse the repository at this point in the history
  39. USB: serial: garmin_gps: fix I/O after failed probe and remove

    commit 19a565d upstream.
    
    Make sure to stop any submitted interrupt and bulk-out URBs before
    returning after failed probe and when the port is being unbound to avoid
    later NULL-pointer dereferences in the completion callbacks.
    
    Also fix up the related and broken I/O cancellation on failed open and
    on close. (Note that port->write_urb was never submitted.)
    
    Fixes: 1da177e ("Linux-2.6.12-rc2")
    Reviewed-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Johan Hovold <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhovold authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    579cf72 View commit details
    Browse the repository at this point in the history
  40. USB: serial: garmin_gps: fix memory leak on probe errors

    commit 74d471b upstream.
    
    Make sure to free the port private data before returning after a failed
    probe attempt.
    
    Fixes: 1da177e ("Linux-2.6.12-rc2")
    Reviewed-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Johan Hovold <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhovold authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    f6643fc View commit details
    Browse the repository at this point in the history
  41. x86/MCE/AMD: Always give panic severity for UC errors in kernel context

    commit d65dfc8 upstream.
    
    The AMD severity grading function was introduced in kernel 4.1. The
    current logic can possibly give MCE_AR_SEVERITY for uncorrectable
    errors in kernel context. The system may then get stuck in a loop as
    memory_failure() will try to handle the bad kernel memory and find it
    busy.
    
    Return MCE_PANIC_SEVERITY for all UC errors IN_KERNEL context on AMD
    systems.
    
    After:
    
      b2f9d67 ("x86/mce: Check for faults tagged in EXTABLE_CLASS_FAULT exception table entries")
    
    was accepted in v4.6, this issue was masked because of the tail-end attempt
    at kernel mode recovery in the #MC handler.
    
    However, uncorrectable errors IN_KERNEL context should always be considered
    unrecoverable and cause a panic.
    
    Signed-off-by: Yazen Ghannam <[email protected]>
    Signed-off-by: Borislav Petkov <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Cc: Tony Luck <[email protected]>
    Cc: linux-edac <[email protected]>
    Fixes: bf80bbd (x86/mce: Add an AMD severities-grading function)
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    yghannam authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    54a5155 View commit details
    Browse the repository at this point in the history
  42. brcmfmac: don't preset all channels as disabled

    commit 9ea0c30 upstream.
    
    During init we take care of regulatory stuff by disabling all
    unavailable channels (see brcmf_construct_chaninfo) so this predisabling
    them is not really required (and this patch won't change any behavior).
    It will on the other hand allow more detailed runtime control over
    channels which is the main reason for this change.
    
    Signed-off-by: Rafał Miłecki <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Cc: Lambdadroid <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Rafał Miłecki authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    d8b5d88 View commit details
    Browse the repository at this point in the history
  43. staging: greybus: spilib: fix use-after-free after deregistration

    commit 770b03c upstream.
    
    Remove erroneous spi_master_put() after controller deregistration which
    would access the already freed spi controller.
    
    Note that spi_unregister_master() drops our only controller reference.
    
    Fixes: ba3e670 ("greybus: SPI: convert to a gpbridge driver")
    Signed-off-by: Johan Hovold <[email protected]>
    Reviewed-by: Rui Miguel Silva <[email protected]>
    Acked-by: Viresh Kumar <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhovold authored and gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    6fbd42d View commit details
    Browse the repository at this point in the history
  44. Linux 4.9.64

    gregkh committed Nov 21, 2017
    Configuration menu
    Copy the full SHA
    563c24f View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2017

  1. tcp_nv: fix division by zero in tcpnv_acked()

    [ Upstream commit 4eebff2 ]
    
    Average RTT could become zero. This happened in real life at least twice.
    This patch treats zero as 1us.
    
    Signed-off-by: Konstantin Khlebnikov <[email protected]>
    Acked-by: Lawrence Brakmo <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    koct9i authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    b0e50c4 View commit details
    Browse the repository at this point in the history
  2. net: vrf: correct FRA_L3MDEV encode type

    [ Upstream commit 18129a2 ]
    
    FRA_L3MDEV is defined as U8, but is being added as a U32 attribute. On
    big endian architecture, this results in the l3mdev entry not being
    added to the FIB rules.
    
    Fixes: 1aa6c4f ("net: vrf: Add l3mdev rules on first device create")
    Signed-off-by: Jeff Barnhill <[email protected]>
    Acked-by: David Ahern <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Jeff Barnhill authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    58b21b0 View commit details
    Browse the repository at this point in the history
  3. tcp: do not mangle skb->cb[] in tcp_make_synack()

    [ Upstream commit 3b11775 ]
    
    Christoph Paasch sent a patch to address the following issue :
    
    tcp_make_synack() is leaving some TCP private info in skb->cb[],
    then send the packet by other means than tcp_transmit_skb()
    
    tcp_transmit_skb() makes sure to clear skb->cb[] to not confuse
    IPv4/IPV6 stacks, but we have no such cleanup for SYNACK.
    
    tcp_make_synack() should not use tcp_init_nondata_skb() :
    
    tcp_init_nondata_skb() really should be limited to skbs put in write/rtx
    queues (the ones that are only sent via tcp_transmit_skb())
    
    This patch fixes the issue and should even save few cpu cycles ;)
    
    Fixes: 971f10e ("tcp: better TCP_SKB_CB layout to reduce cache line misses")
    Signed-off-by: Eric Dumazet <[email protected]>
    Reported-by: Christoph Paasch <[email protected]>
    Reviewed-by: Christoph Paasch <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Eric Dumazet authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    3920a5b View commit details
    Browse the repository at this point in the history
  4. netfilter/ipvs: clear ipvs_property flag when SKB net namespace changed

    [ Upstream commit 2b5ec1a ]
    
    When run ipvs in two different network namespace at the same host, and one
    ipvs transport network traffic to the other network namespace ipvs.
    'ipvs_property' flag will make the second ipvs take no effect. So we should
    clear 'ipvs_property' when SKB network namespace changed.
    
    Fixes: 621e84d ("dev: introduce skb_scrub_packet()")
    Signed-off-by: Ye Yin <[email protected]>
    Signed-off-by: Wei Zhou <[email protected]>
    Signed-off-by: Julian Anastasov <[email protected]>
    Signed-off-by: Simon Horman <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    yeyin authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    afd9fa6 View commit details
    Browse the repository at this point in the history
  5. bonding: discard lowest hash bit for 802.3ad layer3+4

    [ Upstream commit b5f8621 ]
    
    After commit 07f4c90 ("tcp/dccp: try to not exhaust ip_local_port_range
    in connect()"), we will try to use even ports for connect(). Then if an
    application (seen clearly with iperf) opens multiple streams to the same
    destination IP and port, each stream will be given an even source port.
    
    So the bonding driver's simple xmit_hash_policy based on layer3+4 addressing
    will always hash all these streams to the same interface. And the total
    throughput will limited to a single slave.
    
    Change the tcp code will impact the whole tcp behavior, only for bonding
    usage. Paolo Abeni suggested fix this by changing the bonding code only,
    which should be more reasonable, and less impact.
    
    Fix this by discarding the lowest hash bit because it contains little entropy.
    After the fix we can re-balance between slaves.
    
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Hangbin Liu <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    liuhangbin authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    6f239c0 View commit details
    Browse the repository at this point in the history
  6. net: cdc_ether: fix divide by 0 on bad descriptors

    [ Upstream commit 2cb8018 ]
    
    Setting dev->hard_mtu to 0 will cause a divide error in
    usbnet_probe. Protect against devices with bogus CDC Ethernet
    functional descriptors by ignoring a zero wMaxSegmentSize.
    
    Signed-off-by: Bjørn Mork <[email protected]>
    Acked-by: Oliver Neukum <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bmork authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    f376621 View commit details
    Browse the repository at this point in the history
  7. net: qmi_wwan: fix divide by 0 on bad descriptors

    [ Upstream commit 7fd0783 ]
    
    A CDC Ethernet functional descriptor with wMaxSegmentSize = 0 will
    cause a divide error in usbnet_probe:
    
    divide error: 0000 [Freescale#1] PREEMPT SMP KASAN
    Modules linked in:
    CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 4.14.0-rc8-44453-g1fdc1a82c34f Freescale#56
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    Workqueue: usb_hub_wq hub_event
    task: ffff88006bef5c00 task.stack: ffff88006bf60000
    RIP: 0010:usbnet_update_max_qlen+0x24d/0x390 drivers/net/usb/usbnet.c:355
    RSP: 0018:ffff88006bf67508 EFLAGS: 00010246
    RAX: 00000000000163c8 RBX: ffff8800621fce40 RCX: ffff8800621fcf34
    RDX: 0000000000000000 RSI: ffffffff837ecb7a RDI: ffff8800621fcf34
    RBP: ffff88006bf67520 R08: ffff88006bef5c00 R09: ffffed000c43f881
    R10: ffffed000c43f880 R11: ffff8800621fc406 R12: 0000000000000003
    R13: ffffffff85c71de0 R14: 0000000000000000 R15: 0000000000000000
    FS:  0000000000000000(0000) GS:ffff88006ca00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007ffe9c0d6dac CR3: 00000000614f4000 CR4: 00000000000006f0
    Call Trace:
     usbnet_probe+0x18b5/0x2790 drivers/net/usb/usbnet.c:1783
     qmi_wwan_probe+0x133/0x220 drivers/net/usb/qmi_wwan.c:1338
     usb_probe_interface+0x324/0x940 drivers/usb/core/driver.c:361
     really_probe drivers/base/dd.c:413
     driver_probe_device+0x522/0x740 drivers/base/dd.c:557
    
    Fix by simply ignoring the bogus descriptor, as it is optional
    for QMI devices anyway.
    
    Fixes: 423ce8c ("net: usb: qmi_wwan: New driver for Huawei QMI based WWAN devices")
    Reported-by: Andrey Konovalov <[email protected]>
    Signed-off-by: Bjørn Mork <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bmork authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    02a0c06 View commit details
    Browse the repository at this point in the history
  8. qmi_wwan: Add missing skb_reset_mac_header-call

    [ Upstream commit 0de0add ]
    
    When we receive a packet on a QMI device in raw IP mode, we should call
    skb_reset_mac_header() to ensure that skb->mac_header contains a valid
    offset in the packet. While it shouldn't really matter, the packets have
    no MAC header and the interface is configured as-such, it seems certain
    parts of the network stack expects a "good" value in skb->mac_header.
    
    Without the skb_reset_mac_header() call added in this patch, for example
    shaping traffic (using tc) triggers the following oops on the first
    received packet:
    
    [  303.642957] skbuff: skb_under_panic: text:8f137918 len:177 put:67 head:8e4b0f00 data:8e4b0eff tail:0x8e4b0fb0 end:0x8e4b1520 dev:wwan0
    [  303.655045] Kernel bug detected[Freescale#1]:
    [  303.658622] CPU: 1 PID: 1002 Comm: logd Not tainted 4.9.58 #0
    [  303.664339] task: 8fdf05e0 task.stack: 8f15c000
    [  303.668844] $ 0   : 00000000 00000001 0000007a 00000000
    [  303.674062] $ 4   : 8149a2fc 8149a2fc 8149ce20 00000000
    [  303.679284] $ 8   : 00000030 3878303a 31623465 20303235
    [  303.684510] $12   : ded731e3 2626a277 00000000 03bd0000
    [  303.689747] $16   : 8ef62b40 00000043 8f137918 804db5fc
    [  303.694978] $20   : 00000001 00000004 8fc13800 00000003
    [  303.700215] $24   : 00000001 8024ab10
    [  303.705442] $28   : 8f15c000 8fc19cf0 00000043 802cc920
    [  303.710664] Hi    : 00000000
    [  303.713533] Lo    : 74e58000
    [  303.716436] epc   : 802cc920 skb_panic+0x58/0x5c
    [  303.721046] ra    : 802cc920 skb_panic+0x58/0x5c
    [  303.725639] Status: 11007c03 KERNEL EXL IE
    [  303.729823] Cause : 50800024 (ExcCode 09)
    [  303.733817] PrId  : 0001992f (MIPS 1004Kc)
    [  303.737892] Modules linked in: rt2800pci rt2800mmio rt2800lib qcserial ppp_async option usb_wwan rt2x00pci rt2x00mmio rt2x00lib rndis_host qmi_wwan ppp_generic nf_nat_pptp nf_conntrack_pptp nf_conntrack_ipv6 mt76x2i
    Process logd (pid: 1002, threadinfo=8f15c000, task=8fdf05e0, tls=77b3eee4)
    [  303.962509] Stack : 00000000 80408990 8f137918 000000b1 00000043 8e4b0f00 8e4b0eff 8e4b0fb0
    [  303.970871]         8e4b1520 8fec1800 00000043 802cd2a4 6e000045 00000043 00000000 8ef62000
    [  303.979219]         8eef5d00 8ef62b40 8fea7300 8f137918 00000000 00000000 0002bb01 793e5664
    [  303.987568]         8ef08884 00000001 8fea7300 00000002 8fc19e80 8eef5d00 00000006 00000003
    [  303.995934]         00000000 8030ba90 00000003 77ab3fd0 8149dc80 8004d1bc 8f15c000 8f383700
    [  304.004324]         ...
    [  304.006767] Call Trace:
    [  304.009241] [<802cc920>] skb_panic+0x58/0x5c
    [  304.013504] [<802cd2a4>] skb_push+0x78/0x90
    [  304.017783] [<8f137918>] 0x8f137918
    [  304.021269] Code: 00602825  0c02a3b4  24842888 <000c000d> 8c870060  8c8200a0  0007382b  00070336  8c88005c
    [  304.031034]
    [  304.032805] ---[ end trace b778c482b3f0bda9 ]---
    [  304.041384] Kernel panic - not syncing: Fatal exception in interrupt
    [  304.051975] Rebooting in 3 seconds..
    
    While the oops is for a 4.9-kernel, I was able to trigger the same oops with
    net-next as of yesterday.
    
    Fixes: 32f7adf ("net: qmi_wwan: support "raw IP" mode")
    Signed-off-by: Kristian Evensen <[email protected]>
    Acked-by: Bjørn Mork <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kristrev authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    4ad8209 View commit details
    Browse the repository at this point in the history
  9. net: usb: asix: fill null-ptr-deref in asix_suspend

    [ Upstream commit 8f56246 ]
    
    When asix_suspend() is called dev->driver_priv might not have been
    assigned a value, so we need to check that it's not NULL.
    
    Similar issue is present in asix_resume(), this patch fixes it as well.
    
    Found by syzkaller.
    
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [Freescale#1] PREEMPT SMP KASAN
    Modules linked in:
    CPU: 0 PID: 24 Comm: kworker/0:1 Not tainted 4.14.0-rc4-43422-geccacdd69a8c Freescale#400
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    Workqueue: usb_hub_wq hub_event
    task: ffff88006bb36300 task.stack: ffff88006bba8000
    RIP: 0010:asix_suspend+0x76/0xc0 drivers/net/usb/asix_devices.c:629
    RSP: 0018:ffff88006bbae718 EFLAGS: 00010202
    RAX: dffffc0000000000 RBX: ffff880061ba3b80 RCX: 1ffff1000c34d644
    RDX: 0000000000000001 RSI: 0000000000000402 RDI: 0000000000000008
    RBP: ffff88006bbae738 R08: 1ffff1000d775cad R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800630a8b40
    R13: 0000000000000000 R14: 0000000000000402 R15: ffff880061ba3b80
    FS:  0000000000000000(0000) GS:ffff88006c600000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007ff33cf89000 CR3: 0000000061c0a000 CR4: 00000000000006f0
    Call Trace:
     usb_suspend_interface drivers/usb/core/driver.c:1209
     usb_suspend_both+0x27f/0x7e0 drivers/usb/core/driver.c:1314
     usb_runtime_suspend+0x41/0x120 drivers/usb/core/driver.c:1852
     __rpm_callback+0x339/0xb60 drivers/base/power/runtime.c:334
     rpm_callback+0x106/0x220 drivers/base/power/runtime.c:461
     rpm_suspend+0x465/0x1980 drivers/base/power/runtime.c:596
     __pm_runtime_suspend+0x11e/0x230 drivers/base/power/runtime.c:1009
     pm_runtime_put_sync_autosuspend ./include/linux/pm_runtime.h:251
     usb_new_device+0xa37/0x1020 drivers/usb/core/hub.c:2487
     hub_port_connect drivers/usb/core/hub.c:4903
     hub_port_connect_change drivers/usb/core/hub.c:5009
     port_event drivers/usb/core/hub.c:5115
     hub_event+0x194d/0x3740 drivers/usb/core/hub.c:5195
     process_one_work+0xc7f/0x1db0 kernel/workqueue.c:2119
     worker_thread+0x221/0x1850 kernel/workqueue.c:2253
     kthread+0x3a1/0x470 kernel/kthread.c:231
     ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431
    Code: 8d 7c 24 20 48 89 fa 48 c1 ea 03 80 3c 02 00 75 5b 48 b8 00 00
    00 00 00 fc ff df 4d 8b 6c 24 20 49 8d 7d 08 48 89 fa 48 c1 ea 03 <80>
    3c 02 00 75 34 4d 8b 6d 08 4d 85 ed 74 0b e8 26 2b 51 fd 4c
    RIP: asix_suspend+0x76/0xc0 RSP: ffff88006bbae718
    ---[ end trace dfc4f5649284342c ]---
    
    Signed-off-by: Andrey Konovalov <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    xairy authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    58baa36 View commit details
    Browse the repository at this point in the history
  10. vlan: fix a use-after-free in vlan_device_event()

    [ Upstream commit 052d41c ]
    
    After refcnt reaches zero, vlan_vid_del() could free
    dev->vlan_info via RCU:
    
    	RCU_INIT_POINTER(dev->vlan_info, NULL);
    	call_rcu(&vlan_info->rcu, vlan_info_rcu_free);
    
    However, the pointer 'grp' still points to that memory
    since it is set before vlan_vid_del():
    
            vlan_info = rtnl_dereference(dev->vlan_info);
            if (!vlan_info)
                    goto out;
            grp = &vlan_info->grp;
    
    Depends on when that RCU callback is scheduled, we could
    trigger a use-after-free in vlan_group_for_each_dev()
    right following this vlan_vid_del().
    
    Fix it by moving vlan_vid_del() before setting grp. This
    is also symmetric to the vlan_vid_add() we call in
    vlan_device_event().
    
    Reported-by: Fengguang Wu <[email protected]>
    Fixes: efc73f4 ("net: Fix memory leak - vlan_info struct")
    Cc: Alexander Duyck <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Girish Moodalbail <[email protected]>
    Signed-off-by: Cong Wang <[email protected]>
    Reviewed-by: Girish Moodalbail <[email protected]>
    Tested-by: Fengguang Wu <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    congwang authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    080ecd2 View commit details
    Browse the repository at this point in the history
  11. af_netlink: ensure that NLMSG_DONE never fails in dumps

    [ Upstream commit 0642840 ]
    
    The way people generally use netlink_dump is that they fill in the skb
    as much as possible, breaking when nla_put returns an error. Then, they
    get called again and start filling out the next skb, and again, and so
    forth. The mechanism at work here is the ability for the iterative
    dumping function to detect when the skb is filled up and not fill it
    past the brim, waiting for a fresh skb for the rest of the data.
    
    However, if the attributes are small and nicely packed, it is possible
    that a dump callback function successfully fills in attributes until the
    skb is of size 4080 (libmnl's default page-sized receive buffer size).
    The dump function completes, satisfied, and then, if it happens to be
    that this is actually the last skb, and no further ones are to be sent,
    then netlink_dump will add on the NLMSG_DONE part:
    
      nlh = nlmsg_put_answer(skb, cb, NLMSG_DONE, sizeof(len), NLM_F_MULTI);
    
    It is very important that netlink_dump does this, of course. However, in
    this example, that call to nlmsg_put_answer will fail, because the
    previous filling by the dump function did not leave it enough room. And
    how could it possibly have done so? All of the nla_put variety of
    functions simply check to see if the skb has enough tailroom,
    independent of the context it is in.
    
    In order to keep the important assumptions of all netlink dump users, it
    is therefore important to give them an skb that has this end part of the
    tail already reserved, so that the call to nlmsg_put_answer does not
    fail. Otherwise, library authors are forced to find some bizarre sized
    receive buffer that has a large modulo relative to the common sizes of
    messages received, which is ugly and buggy.
    
    This patch thus saves the NLMSG_DONE for an additional message, for the
    case that things are dangerously close to the brim. This requires
    keeping track of the errno from ->dump() across calls.
    
    Signed-off-by: Jason A. Donenfeld <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    zx2c4 authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    99aa74c View commit details
    Browse the repository at this point in the history
  12. sctp: do not peel off an assoc from one netns to another one

    [ Upstream commit df80cd9 ]
    
    Now when peeling off an association to the sock in another netns, all
    transports in this assoc are not to be rehashed and keep use the old
    key in hashtable.
    
    As a transport uses sk->net as the hash key to insert into hashtable,
    it would miss removing these transports from hashtable due to the new
    netns when closing the sock and all transports are being freeed, then
    later an use-after-free issue could be caused when looking up an asoc
    and dereferencing those transports.
    
    This is a very old issue since very beginning, ChunYu found it with
    syzkaller fuzz testing with this series:
    
      socket$inet6_sctp()
      bind$inet6()
      sendto$inet6()
      unshare(0x40000000)
      getsockopt$inet_sctp6_SCTP_GET_ASSOC_ID_LIST()
      getsockopt$inet_sctp6_SCTP_SOCKOPT_PEELOFF()
    
    This patch is to block this call when peeling one assoc off from one
    netns to another one, so that the netns of all transport would not
    go out-sync with the key in hashtable.
    
    Note that this patch didn't fix it by rehashing transports, as it's
    difficult to handle the situation when the tuple is already in use
    in the new netns. Besides, no one would like to peel off one assoc
    to another netns, considering ipaddrs, ifaces, etc. are usually
    different.
    
    Reported-by: ChunYu Wang <[email protected]>
    Signed-off-by: Xin Long <[email protected]>
    Acked-by: Marcelo Ricardo Leitner <[email protected]>
    Acked-by: Neil Horman <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lxin authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    362d2ce View commit details
    Browse the repository at this point in the history
  13. fealnx: Fix building error on MIPS

    [ Upstream commit cc54c1d ]
    
    This patch try to fix the building error on MIPS. The reason is MIPS
    has already defined the LONG macro, which conflicts with the LONG enum
    in drivers/net/ethernet/fealnx.c.
    
    Signed-off-by: Huacai Chen <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    chenhuacai authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    f0ae7a1 View commit details
    Browse the repository at this point in the history
  14. net/sctp: Always set scope_id in sctp_inet6_skb_msgname

    [ Upstream commit 7c8a61d ]
    
    Alexandar Potapenko while testing the kernel with KMSAN and syzkaller
    discovered that in some configurations sctp would leak 4 bytes of
    kernel stack.
    
    Working with his reproducer I discovered that those 4 bytes that
    are leaked is the scope id of an ipv6 address returned by recvmsg.
    
    With a little code inspection and a shrewd guess I discovered that
    sctp_inet6_skb_msgname only initializes the scope_id field for link
    local ipv6 addresses to the interface index the link local address
    pertains to instead of initializing the scope_id field for all ipv6
    addresses.
    
    That is almost reasonable as scope_id's are meaniningful only for link
    local addresses.  Set the scope_id in all other cases to 0 which is
    not a valid interface index to make it clear there is nothing useful
    in the scope_id field.
    
    There should be no danger of breaking userspace as the stack leak
    guaranteed that previously meaningless random data was being returned.
    
    Fixes: 372f525 ("SCTP:  Resync with LKSCTP tree.")
    History-tree: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git
    Reported-by: Alexander Potapenko <[email protected]>
    Tested-by: Alexander Potapenko <[email protected]>
    Signed-off-by: "Eric W. Biederman" <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiederm authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    67b718f View commit details
    Browse the repository at this point in the history
  15. crypto: dh - fix memleak in setkey

    commit ee34e26 upstream.
    
    setkey can be called multiple times during the existence
    of the transformation object. In case of multiple setkey calls,
    the old key was not freed and we leaked memory.
    Free the old MPI key if any.
    
    Signed-off-by: Tudor Ambarus <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ambarus authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    4a7e023 View commit details
    Browse the repository at this point in the history
  16. crypto: dh - Fix double free of ctx->p

    commit 12d41a0 upstream.
    
    When setting the secret with the software Diffie-Hellman implementation,
    if allocating 'g' failed (e.g. if it was longer than
    MAX_EXTERN_MPI_BITS), then 'p' was freed twice: once immediately, and
    once later when the crypto_kpp tfm was destroyed.
    
    Fix it by using dh_free_ctx() (renamed to dh_clear_ctx()) in the error
    paths, as that correctly sets the pointers to NULL.
    
    KASAN report:
    
        MPI: mpi too large (32760 bits)
        ==================================================================
        BUG: KASAN: use-after-free in mpi_free+0x131/0x170
        Read of size 4 at addr ffff88006c7cdf90 by task reproduce_doubl/367
    
        CPU: 1 PID: 367 Comm: reproduce_doubl Not tainted 4.14.0-rc7-00040-g05298abde6fe Freescale#7
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
        Call Trace:
         dump_stack+0xb3/0x10b
         ? mpi_free+0x131/0x170
         print_address_description+0x79/0x2a0
         ? mpi_free+0x131/0x170
         kasan_report+0x236/0x340
         ? akcipher_register_instance+0x90/0x90
         __asan_report_load4_noabort+0x14/0x20
         mpi_free+0x131/0x170
         ? akcipher_register_instance+0x90/0x90
         dh_exit_tfm+0x3d/0x140
         crypto_kpp_exit_tfm+0x52/0x70
         crypto_destroy_tfm+0xb3/0x250
         __keyctl_dh_compute+0x640/0xe90
         ? kasan_slab_free+0x12f/0x180
         ? dh_data_from_key+0x240/0x240
         ? key_create_or_update+0x1ee/0xb20
         ? key_instantiate_and_link+0x440/0x440
         ? lock_contended+0xee0/0xee0
         ? kfree+0xcf/0x210
         ? SyS_add_key+0x268/0x340
         keyctl_dh_compute+0xb3/0xf1
         ? __keyctl_dh_compute+0xe90/0xe90
         ? SyS_add_key+0x26d/0x340
         ? entry_SYSCALL_64_fastpath+0x5/0xbe
         ? trace_hardirqs_on_caller+0x3f4/0x560
         SyS_keyctl+0x72/0x2c0
         entry_SYSCALL_64_fastpath+0x1f/0xbe
        RIP: 0033:0x43ccf9
        RSP: 002b:00007ffeeec96158 EFLAGS: 00000246 ORIG_RAX: 00000000000000fa
        RAX: ffffffffffffffda RBX: 000000000248b9b9 RCX: 000000000043ccf9
        RDX: 00007ffeeec96170 RSI: 00007ffeeec96160 RDI: 0000000000000017
        RBP: 0000000000000046 R08: 0000000000000000 R09: 0248b9b9143dc936
        R10: 0000000000001000 R11: 0000000000000246 R12: 0000000000000000
        R13: 0000000000409670 R14: 0000000000409700 R15: 0000000000000000
    
        Allocated by task 367:
         save_stack_trace+0x16/0x20
         kasan_kmalloc+0xeb/0x180
         kmem_cache_alloc_trace+0x114/0x300
         mpi_alloc+0x4b/0x230
         mpi_read_raw_data+0xbe/0x360
         dh_set_secret+0x1dc/0x460
         __keyctl_dh_compute+0x623/0xe90
         keyctl_dh_compute+0xb3/0xf1
         SyS_keyctl+0x72/0x2c0
         entry_SYSCALL_64_fastpath+0x1f/0xbe
    
        Freed by task 367:
         save_stack_trace+0x16/0x20
         kasan_slab_free+0xab/0x180
         kfree+0xb5/0x210
         mpi_free+0xcb/0x170
         dh_set_secret+0x2d7/0x460
         __keyctl_dh_compute+0x623/0xe90
         keyctl_dh_compute+0xb3/0xf1
         SyS_keyctl+0x72/0x2c0
         entry_SYSCALL_64_fastpath+0x1f/0xbe
    
    Fixes: 802c7f1 ("crypto: dh - Add DH software implementation")
    Signed-off-by: Eric Biggers <[email protected]>
    Reviewed-by: Tudor Ambarus <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    aa15fe4 View commit details
    Browse the repository at this point in the history
  17. ima: do not update security.ima if appraisal status is not INTEGRITY_…

    …PASS
    
    commit 020aae3 upstream.
    
    Commit b65a9cf ("Untangling ima mess, part 2: deal with counters")
    moved the call of ima_file_check() from may_open() to do_filp_open() at a
    point where the file descriptor is already opened.
    
    This breaks the assumption made by IMA that file descriptors being closed
    belong to files whose access was granted by ima_file_check(). The
    consequence is that security.ima and security.evm are updated with good
    values, regardless of the current appraisal status.
    
    For example, if a file does not have security.ima, IMA will create it after
    opening the file for writing, even if access is denied. Access to the file
    will be allowed afterwards.
    
    Avoid this issue by checking the appraisal status before updating
    security.ima.
    
    Signed-off-by: Roberto Sassu <[email protected]>
    Signed-off-by: Mimi Zohar <[email protected]>
    Signed-off-by: James Morris <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    robertosassu authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    2cfbb32 View commit details
    Browse the repository at this point in the history
  18. serial: omap: Fix EFR write on RTS deassertion

    commit 2a71de2 upstream.
    
    Commit 348f9bb ("serial: omap: Fix RTS handling") sought to enable
    auto RTS upon manual RTS assertion and disable it on deassertion.
    However it seems the latter was done incorrectly, it clears all bits in
    the Extended Features Register *except* auto RTS.
    
    Fixes: 348f9bb ("serial: omap: Fix RTS handling")
    Cc: Peter Hurley <[email protected]>
    Signed-off-by: Lukas Wunner <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    l1k authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    70eb460 View commit details
    Browse the repository at this point in the history
  19. serial: 8250_fintek: Fix finding base_port with activated SuperIO

    commit fd97e66 upstream.
    
    The SuperIO will be configured at boot time by BIOS, but some BIOS
    will not deactivate the SuperIO when the end of configuration. It'll
    lead to mismatch for pdata->base_port in probe_setup_port(). So we'll
    deactivate all SuperIO before activate special base_port in
    fintek_8250_enter_key().
    
    Tested on iBASE MI802.
    
    Tested-by: Ji-Ze Hong (Peter Hong) <[email protected]>
    Signed-off-by: Ji-Ze Hong (Peter Hong) <[email protected]>
    Reviewd-by: Alan Cox <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    hpeter authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    e6d4a07 View commit details
    Browse the repository at this point in the history
  20. dmaengine: dmatest: warn user when dma test times out

    commit a9df21e upstream.
    
    Commit adfa543 ("dmatest: don't use set_freezable_with_signal()")
    introduced a bug (that is in fact documented by the patch commit text)
    that leaves behind a dangling pointer. Since the done_wait structure is
    allocated on the stack, future invocations to the DMATEST can produce
    undesirable results (e.g., corrupted spinlocks). Ideally, this would be
    cleaned up in the thread handler, but at the very least, the kernel
    is left in a very precarious scenario that can lead to some long debug
    sessions when the crash comes later.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=197605
    Signed-off-by: Adam Wallis <[email protected]>
    Signed-off-by: Vinod Koul <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Adam Wallis authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    2bd38ec View commit details
    Browse the repository at this point in the history
  21. ocfs2: fix cluster hang after a node dies

    commit 1c01967 upstream.
    
    When a node dies, other live nodes have to choose a new master for an
    existed lock resource mastered by the dead node.
    
    As for ocfs2/dlm implementation, this is done by function -
    dlm_move_lockres_to_recovery_list which marks those lock rsources as
    DLM_LOCK_RES_RECOVERING and manages them via a list from which DLM
    changes lock resource's master later.
    
    So without invoking dlm_move_lockres_to_recovery_list, no master will be
    choosed after dlm recovery accomplishment since no lock resource can be
    found through ::resource list.
    
    What's worse is that if DLM_LOCK_RES_RECOVERING is not marked for lock
    resources mastered a dead node, it will break up synchronization among
    nodes.
    
    So invoke dlm_move_lockres_to_recovery_list again.
    
    Fixs: 'commit ee8f7fc ("ocfs2/dlm: continue to purge recovery lockres when recovery master goes down")'
    Link: http://lkml.kernel.org/r/63ADC13FD55D6546B7DECE290D39E373CED6E0F9@H3CMLB14-EX.srv.huawei-3com.com
    Signed-off-by: Changwei Ge <[email protected]>
    Reported-by: Vitaly Mayatskih <[email protected]>
    Tested-by: Vitaly Mayatskikh <[email protected]>
    Cc: Mark Fasheh <[email protected]>
    Cc: Joel Becker <[email protected]>
    Cc: Junxiao Bi <[email protected]>
    Cc: Joseph Qi <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Changwei Ge authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    a835644 View commit details
    Browse the repository at this point in the history
  22. ocfs2: should wait dio before inode lock in ocfs2_setattr()

    commit 28f5a8a upstream.
    
    we should wait dio requests to finish before inode lock in
    ocfs2_setattr(), otherwise the following deadlock will happen:
    
    process 1                  process 2                    process 3
    truncate file 'A'          end_io of writing file 'A'   receiving the bast messages
    ocfs2_setattr
     ocfs2_inode_lock_tracker
      ocfs2_inode_lock_full
     inode_dio_wait
      __inode_dio_wait
      -->waiting for all dio
      requests finish
                                                            dlm_proxy_ast_handler
                                                             dlm_do_local_bast
                                                              ocfs2_blocking_ast
                                                               ocfs2_generic_handle_bast
                                                                set OCFS2_LOCK_BLOCKED flag
                            dio_end_io
                             dio_bio_end_aio
                              dio_complete
                               ocfs2_dio_end_io
                                ocfs2_dio_end_io_write
                                 ocfs2_inode_lock
                                  __ocfs2_cluster_lock
                                   ocfs2_wait_for_mask
                                   -->waiting for OCFS2_LOCK_BLOCKED
                                   flag to be cleared, that is waiting
                                   for 'process 1' unlocking the inode lock
                               inode_dio_end
                               -->here dec the i_dio_count, but will never
                               be called, so a deadlock happened.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Alex Chen <[email protected]>
    Reviewed-by: Jun Piao <[email protected]>
    Reviewed-by: Joseph Qi <[email protected]>
    Acked-by: Changwei Ge <[email protected]>
    Cc: Mark Fasheh <[email protected]>
    Cc: Joel Becker <[email protected]>
    Cc: Junxiao Bi <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    alex chen authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    8af7773 View commit details
    Browse the repository at this point in the history
  23. ipmi: fix unsigned long underflow

    commit 392a17b upstream.
    
    When I set the timeout to a specific value such as 500ms, the timeout
    event will not happen in time due to the overflow in function
    check_msg_timeout:
    ...
    	ent->timeout -= timeout_period;
    	if (ent->timeout > 0)
    		return;
    ...
    
    The type of timeout_period is long, but ent->timeout is unsigned long.
    This patch makes the type consistent.
    
    Reported-by: Weilong Chen <[email protected]>
    Signed-off-by: Corey Minyard <[email protected]>
    Tested-by: Weilong Chen <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    cminyard authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    55b06b0 View commit details
    Browse the repository at this point in the history
  24. mm/page_alloc.c: broken deferred calculation

    commit d135e57 upstream.
    
    In reset_deferred_meminit() we determine number of pages that must not
    be deferred.  We initialize pages for at least 2G of memory, but also
    pages for reserved memory in this node.
    
    The reserved memory is determined in this function:
    memblock_reserved_memory_within(), which operates over physical
    addresses, and returns size in bytes.  However, reset_deferred_meminit()
    assumes that that this function operates with pfns, and returns page
    count.
    
    The result is that in the best case machine boots slower than expected
    due to initializing more pages than needed in single thread, and in the
    worst case panics because fewer than needed pages are initialized early.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Fixes: 864b9a3 ("mm: consider memblock reservations for deferred memory initialization sizing")
    Signed-off-by: Pavel Tatashin <[email protected]>
    Acked-by: Michal Hocko <[email protected]>
    Cc: Mel Gorman <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Pavel Tatashin authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    9980b82 View commit details
    Browse the repository at this point in the history
  25. coda: fix 'kernel memory exposure attempt' in fsync

    commit d337b66 upstream.
    
    When an application called fsync on a file in Coda a small request with
    just the file identifier was allocated, but the declared length was set
    to the size of union of all possible upcall requests.
    
    This bug has been around for a very long time and is now caught by the
    extra checking in usercopy that was introduced in Linux-4.8.
    
    The exposure happens when the Coda cache manager process reads the fsync
    upcall request at which point it is killed. As a result there is nobody
    servicing any further upcalls, trapping any processes that try to access
    the mounted Coda filesystem.
    
    Signed-off-by: Jan Harkes <[email protected]>
    Signed-off-by: Al Viro <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jaharkes authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    fae5947 View commit details
    Browse the repository at this point in the history
  26. mm/pagewalk.c: report holes in hugetlb ranges

    commit 373c455 upstream.
    
    This matters at least for the mincore syscall, which will otherwise copy
    uninitialized memory from the page allocator to userspace.  It is
    probably also a correctness error for /proc/$pid/pagemap, but I haven't
    tested that.
    
    Removing the `walk->hugetlb_entry` condition in walk_hugetlb_range() has
    no effect because the caller already checks for that.
    
    This only reports holes in hugetlb ranges to callers who have specified
    a hugetlb_entry callback.
    
    This issue was found using an AFL-based fuzzer.
    
    v2:
     - don't crash on ->pte_hole==NULL (Andrew Morton)
     - add Cc stable (Andrew Morton)
    
    Changed for 4.4/4.9 stable backport:
     - fix up conflict in the huge_pte_offset() call
    
    Fixes: 1e25a27 ("mincore: apply page table walker on do_mincore()")
    Signed-off-by: Jann Horn <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    thejh authored and gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    ceaec6e View commit details
    Browse the repository at this point in the history
  27. Linux 4.9.65

    gregkh committed Nov 24, 2017
    Configuration menu
    Copy the full SHA
    133e6cc View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2017

  1. s390: fix transactional execution control register handling

    commit a1c5bef upstream.
    
    Dan Horák reported the following crash related to transactional execution:
    
    User process fault: interruption code 0013 ilc:3 in libpthread-2.26.so[3ff93c00000+1b000]
    CPU: 2 PID: 1 Comm: /init Not tainted 4.13.4-300.fc27.s390x Freescale#1
    Hardware name: IBM 2827 H43 400 (z/VM 6.4.0)
    task: 00000000fafc8000 task.stack: 00000000fafc4000
    User PSW : 0705200180000000 000003ff93c14e70
               R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:1 AS:0 CC:2 PM:0 RI:0 EA:3
    User GPRS: 0000000000000077 000003ff00000000 000003ff93144d48 000003ff93144d5e
               0000000000000000 0000000000000002 0000000000000000 000003ff00000000
               0000000000000000 0000000000000418 0000000000000000 000003ffcc9fe770
               000003ff93d28f50 000003ff9310acf0 000003ff92b0319a 000003ffcc9fe6d0
    User Code: 000003ff93c14e62: 60e0b030            std     %f14,48(%r11)
               000003ff93c14e66: 60f0b038            std     %f15,56(%r11)
              #000003ff93c14e6a: e5600000ff0e        tbegin  0,65294
              >000003ff93c14e70: a7740006            brc     7,3ff93c14e7c
               000003ff93c14e74: a7080000            lhi     %r0,0
               000003ff93c14e78: a7f40023            brc     15,3ff93c14ebe
               000003ff93c14e7c: b2220000            ipm     %r0
               000003ff93c14e80: 8800001c            srl     %r0,28
    
    There are several bugs with control register handling with respect to
    transactional execution:
    
    - on task switch update_per_regs() is only called if the next task has
      an mm (is not a kernel thread). This however is incorrect. This
      breaks e.g. for user mode helper handling, where the kernel creates
      a kernel thread and then execve's a user space program. Control
      register contents related to transactional execution won't be
      updated on execve. If the previous task ran with transactional
      execution disabled then the new task will also run with
      transactional execution disabled, which is incorrect. Therefore call
      update_per_regs() unconditionally within switch_to().
    
    - on startup the transactional execution facility is not enabled for
      the idle thread. This is not really a bug, but an inconsistency to
      other facilities. Therefore enable the facility if it is available.
    
    - on fork the new thread's per_flags field is not cleared. This means
      that a child process inherits the PER_FLAG_NO_TE flag. This flag can
      be set with a ptrace request to disable transactional execution for
      the current process. It should not be inherited by new child
      processes in order to be consistent with the handling of all other
      PER related debugging options. Therefore clear the per_flags field in
      copy_thread_tls().
    
    Reported-and-tested-by: Dan Horák <[email protected]>
    Fixes: d35339a ("s390: add support for transactional memory")
    Cc: Martin Schwidefsky <[email protected]>
    Reviewed-by: Christian Borntraeger <[email protected]>
    Reviewed-by: Hendrik Brueckner <[email protected]>
    Signed-off-by: Heiko Carstens <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    heicarst authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    c9d0db6 View commit details
    Browse the repository at this point in the history
  2. s390/runtime instrumention: fix possible memory corruption

    commit d6e646a upstream.
    
    For PREEMPT enabled kernels the runtime instrumentation (RI) code
    contains a possible use-after-free bug. If a task that makes use of RI
    exits, it will execute do_exit() while still enabled for preemption.
    
    That function will call exit_thread_runtime_instr() via
    exit_thread(). If exit_thread_runtime_instr() gets preempted after the
    RI control block of the task has been freed but before the pointer to
    it is set to NULL, then save_ri_cb(), called from switch_to(), will
    write to already freed memory.
    
    Avoid this and simply disable preemption while freeing the control
    block and setting the pointer to NULL.
    
    Fixes: e4b8b3f ("s390: add support for runtime instrumentation")
    Reviewed-by: Christian Borntraeger <[email protected]>
    Signed-off-by: Heiko Carstens <[email protected]>
    Signed-off-by: Martin Schwidefsky <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    heicarst authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    550435a View commit details
    Browse the repository at this point in the history
  3. s390/disassembler: add missing end marker for e7 table

    commit 5c50538 upstream.
    
    The e7 opcode table does not have an end marker. Hence when trying to
    find an unknown e7 instruction the code will access memory behind the
    table until it finds something that matches the opcode, or the kernel
    crashes, whatever comes first.
    
    This affects not only the in-kernel disassembler but also uprobes and
    kprobes which refuse to set a probe on unknown instructions, and
    therefore search the opcode tables to figure out if instructions are
    known or not.
    
    Fixes: 3585cb0 ("s390/disassembler: add vector instructions")
    Signed-off-by: Heiko Carstens <[email protected]>
    Signed-off-by: Martin Schwidefsky <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    heicarst authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    5380996 View commit details
    Browse the repository at this point in the history
  4. s390/disassembler: increase show_code buffer size

    commit b192571 upstream.
    
    Current buffer size of 64 is too small. objdump shows that there are
    instructions which would require up to 75 bytes buffer (with current
    formating). 128 bytes "ought to be enough for anybody".
    
    Also replaces 8 spaces with a single tab to reduce the memory footprint.
    
    Fixes the following KASAN finding:
    
    BUG: KASAN: stack-out-of-bounds in number+0x3fe/0x538
    Write of size 1 at addr 000000005a4a75a0 by task bash/1282
    
    CPU: 1 PID: 1282 Comm: bash Not tainted 4.14.0+ Freescale#215
    Hardware name: IBM 2964 N96 702 (z/VM 6.4.0)
    Call Trace:
    ([<000000000011eeb6>] show_stack+0x56/0x88)
     [<0000000000e1ce1a>] dump_stack+0x15a/0x1b0
     [<00000000004e2994>] print_address_description+0xf4/0x288
     [<00000000004e2cf2>] kasan_report+0x13a/0x230
     [<0000000000e38ae6>] number+0x3fe/0x538
     [<0000000000e3dfe4>] vsnprintf+0x194/0x948
     [<0000000000e3ea42>] sprintf+0xa2/0xb8
     [<00000000001198dc>] print_insn+0x374/0x500
     [<0000000000119346>] show_code+0x4ee/0x538
     [<000000000011f234>] show_registers+0x34c/0x388
     [<000000000011f2ae>] show_regs+0x3e/0xa8
     [<000000000011f502>] die+0x1ea/0x2e8
     [<0000000000138f0e>] do_no_context+0x106/0x168
     [<0000000000139a1a>] do_protection_exception+0x4da/0x7d0
     [<0000000000e55914>] pgm_check_handler+0x16c/0x1c0
     [<000000000090639e>] sysrq_handle_crash+0x46/0x58
    ([<0000000000000007>] 0x7)
     [<00000000009073fa>] __handle_sysrq+0x102/0x218
     [<0000000000907c06>] write_sysrq_trigger+0xd6/0x100
     [<000000000061d67a>] proc_reg_write+0xb2/0x128
     [<0000000000520be6>] __vfs_write+0xee/0x368
     [<0000000000521222>] vfs_write+0x21a/0x278
     [<000000000052156a>] SyS_write+0xda/0x178
     [<0000000000e555cc>] system_call+0xc4/0x270
    
    The buggy address belongs to the page:
    page:000003d1016929c0 count:0 mapcount:0 mapping:          (null) index:0x0
    flags: 0x0()
    raw: 0000000000000000 0000000000000000 0000000000000000 ffffffff00000000
    raw: 0000000000000100 0000000000000200 0000000000000000 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     000000005a4a7480: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
     000000005a4a7500: 00 00 00 00 00 00 00 00 f2 f2 f2 f2 00 00 00 00
    >000000005a4a7580: 00 00 00 00 f3 f3 f3 f3 00 00 00 00 00 00 00 00
                                   ^
     000000005a4a7600: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 f8 f8
     000000005a4a7680: f2 f2 f2 f2 f2 f2 f8 f8 f2 f2 f3 f3 f3 f3 00 00
    ==================================================================
    
    Signed-off-by: Vasily Gorbik <[email protected]>
    Signed-off-by: Martin Schwidefsky <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Vasily Gorbik authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    7160a44 View commit details
    Browse the repository at this point in the history
  5. ACPI / EC: Fix regression related to triggering source of EC event ha…

    …ndling
    
    commit 53c5eaa upstream.
    
    Originally the Samsung quirks removed by commit 4c23737 can be covered
    by commit e923e8e and ec_freeze_events=Y mode. But commit 9c40f95
    changed ec_freeze_events=Y back to N, making this problem re-surface.
    
    Actually, if commit e923e8e is robust enough, we can freely change
    ec_freeze_events mode, so this patch fixes the issue by improving
    commit e923e8e.
    
    Related commits listed in the merged order:
    
     Commit: e923e8e
     Subject: ACPI / EC: Fix an issue that SCI_EVT cannot be detected
              after event is enabled
    
     Commit: 4c23737
     Subject: ACPI / EC: Remove old CLEAR_ON_RESUME quirk
    
     Commit: 9c40f95
     Subject: Revert "ACPI / EC: Enable event freeze mode..." to fix
              a regression
    
    This patch not only fixes the reported post-resume EC event triggering
    source issue, but also fixes an unreported similar issue related to the
    driver bind by adding EC event triggering source in ec_install_handlers().
    
    Fixes: e923e8e (ACPI / EC: Fix an issue that SCI_EVT cannot be detected after event is enabled)
    Fixes: 4c23737 (ACPI / EC: Remove old CLEAR_ON_RESUME quirk)
    Fixes: 9c40f95 (Revert "ACPI / EC: Enable event freeze mode..." to fix a regression)
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=196833
    Signed-off-by: Lv Zheng <[email protected]>
    Reported-by: Alistair Hamilton <[email protected]>
    Tested-by: Alistair Hamilton <[email protected]>
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Lv Zheng authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    7003eb6 View commit details
    Browse the repository at this point in the history
  6. x86/mm: fix use-after-free of vma during userfaultfd fault

    commit cb0631f upstream.
    
    Syzkaller with KASAN has reported a use-after-free of vma->vm_flags in
    __do_page_fault() with the following reproducer:
    
      mmap(&(0x7f0000000000/0xfff000)=nil, 0xfff000, 0x3, 0x32, 0xffffffffffffffff, 0x0)
      mmap(&(0x7f0000011000/0x3000)=nil, 0x3000, 0x1, 0x32, 0xffffffffffffffff, 0x0)
      r0 = userfaultfd(0x0)
      ioctl$UFFDIO_API(r0, 0xc018aa3f, &(0x7f0000002000-0x18)={0xaa, 0x0, 0x0})
      ioctl$UFFDIO_REGISTER(r0, 0xc020aa00, &(0x7f0000019000)={{&(0x7f0000012000/0x2000)=nil, 0x2000}, 0x1, 0x0})
      r1 = gettid()
      syz_open_dev$evdev(&(0x7f0000013000-0x12)="2f6465762f696e7075742f6576656e742300", 0x0, 0x0)
      tkill(r1, 0x7)
    
    The vma should be pinned by mmap_sem, but handle_userfault() might (in a
    return to userspace scenario) release it and then acquire again, so when
    we return to __do_page_fault() (with other result than VM_FAULT_RETRY),
    the vma might be gone.
    
    Specifically, per Andrea the scenario is
     "A return to userland to repeat the page fault later with a
      VM_FAULT_NOPAGE retval (potentially after handling any pending signal
      during the return to userland). The return to userland is identified
      whenever FAULT_FLAG_USER|FAULT_FLAG_KILLABLE are both set in
      vmf->flags"
    
    However, since commit a3c4fb7 ("x86/mm: Fix fault error path using
    unsafe vma pointer") there is a vma_pkey() read of vma->vm_flags after
    that point, which can thus become use-after-free.  Fix this by moving
    the read before calling handle_mm_fault().
    
    Reported-by: syzbot <bot+6a5269ce759a7bb12754ed9622076dc93f65a1f6@syzkaller.appspotmail.com>
    Reported-by: Dmitry Vyukov <[email protected]>
    Suggested-by: Kirill A. Shutemov <[email protected]>
    Fixes: 3c4fb7c9c2e ("x86/mm: Fix fault error path using unsafe vma pointer")
    Reviewed-by: Andrea Arcangeli <[email protected]>
    Signed-off-by: Vlastimil Babka <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Cc: Eric Biggers <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tehcaster authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d0629c6 View commit details
    Browse the repository at this point in the history
  7. ipv6: only call ip6_route_dev_notify() once for NETDEV_UNREGISTER

    commit 76da070 upstream.
    
    In commit 242d3a4 ("ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf")
    I assumed NETDEV_REGISTER and NETDEV_UNREGISTER are paired,
    unfortunately, as reported by jeffy, netdev_wait_allrefs()
    could rebroadcast NETDEV_UNREGISTER event until all refs are
    gone.
    
    We have to add an additional check to avoid this corner case.
    For netdev_wait_allrefs() dev->reg_state is NETREG_UNREGISTERED,
    for dev_change_net_namespace(), dev->reg_state is
    NETREG_REGISTERED. So check for dev->reg_state != NETREG_UNREGISTERED.
    
    Fixes: 242d3a4 ("ipv6: reorder ip6_route_dev_notifier after ipv6_dev_notf")
    Reported-by: jeffy <[email protected]>
    Cc: David Ahern <[email protected]>
    Signed-off-by: Cong Wang <[email protected]>
    Acked-by: David Ahern <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Cc: Konstantin Khlebnikov <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    congwang authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    41e4fbd View commit details
    Browse the repository at this point in the history
  8. vsock: use new wait API for vsock_stream_sendmsg()

    commit 499fde6 upstream.
    
    As reported by Michal, vsock_stream_sendmsg() could still
    sleep at vsock_stream_has_space() after prepare_to_wait():
    
      vsock_stream_has_space
        vmci_transport_stream_has_space
          vmci_qpair_produce_free_space
            qp_lock
              qp_acquire_queue_mutex
                mutex_lock
    
    Just switch to the new wait API like we did for commit
    d9dc8b0 ("net: fix sleeping for sk_wait_event()").
    
    Reported-by: Michal Kubecek <[email protected]>
    Cc: Stefan Hajnoczi <[email protected]>
    Cc: Jorgen Hansen <[email protected]>
    Cc: "Michael S. Tsirkin" <[email protected]>
    Cc: Claudio Imbrenda <[email protected]>
    Signed-off-by: Cong Wang <[email protected]>
    Reviewed-by: Stefan Hajnoczi <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Cc: "Jorgen S. Hansen" <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    congwang authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    6be6e48 View commit details
    Browse the repository at this point in the history
  9. sched: Make resched_cpu() unconditional

    commit 7c2102e upstream.
    
    The current implementation of synchronize_sched_expedited() incorrectly
    assumes that resched_cpu() is unconditional, which it is not.  This means
    that synchronize_sched_expedited() can hang when resched_cpu()'s trylock
    fails as follows (analysis by Neeraj Upadhyay):
    
    o	CPU1 is waiting for expedited wait to complete:
    
    	sync_rcu_exp_select_cpus
    	     rdp->exp_dynticks_snap & 0x1   // returns 1 for CPU5
    	     IPI sent to CPU5
    
    	synchronize_sched_expedited_wait
    		 ret = swait_event_timeout(rsp->expedited_wq,
    					   sync_rcu_preempt_exp_done(rnp_root),
    					   jiffies_stall);
    
    	expmask = 0x20, CPU 5 in idle path (in cpuidle_enter())
    
    o	CPU5 handles IPI and fails to acquire rq lock.
    
    	Handles IPI
    	     sync_sched_exp_handler
    		 resched_cpu
    		     returns while failing to try lock acquire rq->lock
    		 need_resched is not set
    
    o	CPU5 calls  rcu_idle_enter() and as need_resched is not set, goes to
    	idle (schedule() is not called).
    
    o	CPU 1 reports RCU stall.
    
    Given that resched_cpu() is now used only by RCU, this commit fixes the
    assumption by making resched_cpu() unconditional.
    
    Reported-by: Neeraj Upadhyay <[email protected]>
    Suggested-by: Neeraj Upadhyay <[email protected]>
    Signed-off-by: Paul E. McKenney <[email protected]>
    Acked-by: Steven Rostedt (VMware) <[email protected]>
    Acked-by: Peter Zijlstra (Intel) <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    paulmck authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    fb8bd56 View commit details
    Browse the repository at this point in the history
  10. lib/mpi: call cond_resched() from mpi_powm() loop

    commit 1d9ddde upstream.
    
    On a non-preemptible kernel, if KEYCTL_DH_COMPUTE is called with the
    largest permitted inputs (16384 bits), the kernel spends 10+ seconds
    doing modular exponentiation in mpi_powm() without rescheduling.  If all
    threads do it, it locks up the system.  Moreover, it can cause
    rcu_sched-stall warnings.
    
    Notwithstanding the insanity of doing this calculation in kernel mode
    rather than in userspace, fix it by calling cond_resched() as each bit
    from the exponent is processed.  It's still noninterruptible, but at
    least it's preemptible now.
    
    Do the cond_resched() once per bit rather than once per MPI limb because
    each limb might still easily take 100+ milliseconds on slow CPUs.
    
    Signed-off-by: Eric Biggers <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    443d26a View commit details
    Browse the repository at this point in the history
  11. x86/decoder: Add new TEST instruction pattern

    commit 12a78d4 upstream.
    
    The kbuild test robot reported this build warning:
    
      Warning: arch/x86/tools/test_get_len found difference at <jump_table>:ffffffff8103dd2c
    
      Warning: ffffffff8103dd82: f6 09 d8 testb $0xd8,(%rcx)
      Warning: objdump says 3 bytes, but insn_get_length() says 2
      Warning: decoded and checked 1569014 instructions with 1 warnings
    
    This sequence seems to be a new instruction not in the opcode map in the Intel SDM.
    
    The instruction sequence is "F6 09 d8", means Group3(F6), MOD(00)REG(001)RM(001), and 0xd8.
    Intel SDM vol2 A.4 Table A-6 said the table index in the group is "Encoding of Bits 5,4,3 of
    the ModR/M Byte (bits 2,1,0 in parenthesis)"
    
    In that table, opcodes listed by the index REG bits as:
    
      000         001       010 011  100        101        110         111
     TEST Ib/Iz,(undefined),NOT,NEG,MUL AL/rAX,IMUL AL/rAX,DIV AL/rAX,IDIV AL/rAX
    
    So, it seems TEST Ib is assigned to 001.
    
    Add the new pattern.
    
    Reported-by: kbuild test robot <[email protected]>
    Signed-off-by: Masami Hiramatsu <[email protected]>
    Cc: Greg Kroah-Hartman <[email protected]>
    Cc: H. Peter Anvin <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Cc: [email protected]
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mhiramat authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    2816c04 View commit details
    Browse the repository at this point in the history
  12. x86/entry/64: Add missing irqflags tracing to native_load_gs_index()

    commit ca37e57 upstream.
    
    Running this code with IRQs enabled (where dummy_lock is a spinlock):
    
    static void check_load_gs_index(void)
    {
    	/* This will fail. */
    	load_gs_index(0xffff);
    
    	spin_lock(&dummy_lock);
    	spin_unlock(&dummy_lock);
    }
    
    Will generate a lockdep warning.  The issue is that the actual write
    to %gs would cause an exception with IRQs disabled, and the exception
    handler would, as an inadvertent side effect, update irqflag tracing
    to reflect the IRQs-off status.  native_load_gs_index() would then
    turn IRQs back on and return with irqflag tracing still thinking that
    IRQs were off.  The dummy lock-and-unlock causes lockdep to notice the
    error and warn.
    
    Fix it by adding the missing tracing.
    
    Apparently nothing did this in a context where it mattered.  I haven't
    tried to find a code path that would actually exhibit the warning if
    appropriately nasty user code were running.
    
    I suspect that the security impact of this bug is very, very low --
    production systems don't run with lockdep enabled, and the warning is
    mostly harmless anyway.
    
    Found during a quick audit of the entry code to try to track down an
    unrelated bug that Ingo found in some still-in-development code.
    
    Signed-off-by: Andy Lutomirski <[email protected]>
    Cc: Borislav Petkov <[email protected]>
    Cc: Brian Gerst <[email protected]>
    Cc: Dave Hansen <[email protected]>
    Cc: Josh Poimboeuf <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Link: http://lkml.kernel.org/r/e1aeb0e6ba8dd430ec36c8a35e63b429698b4132.1511411918.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    amluto authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    0d794d0 View commit details
    Browse the repository at this point in the history
  13. arm64: Implement arch-specific pte_access_permitted()

    commit 6218f96 upstream.
    
    The generic pte_access_permitted() implementation only checks for
    pte_present() (together with the write permission where applicable).
    However, for both kernel ptes and PROT_NONE mappings pte_present() also
    returns true on arm64 even though such mappings are not user accessible.
    Additionally, arm64 now supports execute-only user permission
    (PROT_EXEC) which is implemented by clearing the PTE_USER bit.
    
    With this patch the arm64 implementation of pte_access_permitted()
    checks for the PTE_VALID and PTE_USER bits together with writable access
    if applicable.
    
    Reported-by: Al Viro <[email protected]>
    Signed-off-by: Catalin Marinas <[email protected]>
    Signed-off-by: Will Deacon <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ctmarinas authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    e538000 View commit details
    Browse the repository at this point in the history
  14. ARM: 8722/1: mm: make STRICT_KERNEL_RWX effective for LPAE

    commit 400eeff upstream.
    
    Currently, for ARM kernels with CONFIG_ARM_LPAE and
    CONFIG_STRICT_KERNEL_RWX enabled, the 2MiB pages mapping the
    kernel code and rodata are writable. They are marked read-only in
    a software bit (L_PMD_SECT_RDONLY) but the hardware read-only bit
    is not set (PMD_SECT_AP2).
    
    For user mappings, the logic that propagates the software bit
    to the hardware bit is in set_pmd_at(); but for the kernel,
    section_update() writes the PMDs directly, skipping this logic.
    
    The fix is to set PMD_SECT_AP2 for read-only sections in
    section_update(), at the same time as L_PMD_SECT_RDONLY.
    
    Fixes: 1e34792 ("ARM: 8275/1: mm: fix PMD_SECT_RDONLY undeclared compile error")
    Signed-off-by: Philip Derrin <[email protected]>
    Reported-by: Neil Dick <[email protected]>
    Tested-by: Neil Dick <[email protected]>
    Tested-by: Laura Abbott <[email protected]>
    Reviewed-by: Kees Cook <[email protected]>
    Signed-off-by: Russell King <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    philipderrin authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    eb5ede8 View commit details
    Browse the repository at this point in the history
  15. ARM: 8721/1: mm: dump: check hardware RO bit for LPAE

    commit 3b0c0c9 upstream.
    
    When CONFIG_ARM_LPAE is set, the PMD dump relies on the software
    read-only bit to determine whether a page is writable. This
    concealed a bug which left the kernel text section writable
    (AP2=0) while marked read-only in the software bit.
    
    In a kernel with the AP2 bug, the dump looks like this:
    
        ---[ Kernel Mapping ]---
        0xc0000000-0xc0200000           2M RW NX SHD
        0xc0200000-0xc0600000           4M ro x  SHD
        0xc0600000-0xc0800000           2M ro NX SHD
        0xc0800000-0xc4800000          64M RW NX SHD
    
    The fix is to check that the software and hardware bits are both
    set before displaying "ro". The dump then shows the true perms:
    
        ---[ Kernel Mapping ]---
        0xc0000000-0xc0200000           2M RW NX SHD
        0xc0200000-0xc0600000           4M RW x  SHD
        0xc0600000-0xc0800000           2M RW NX SHD
        0xc0800000-0xc4800000          64M RW NX SHD
    
    Fixes: ded9477 ("ARM: 8109/1: mm: Modify pte_write and pmd_write logic for LPAE")
    Signed-off-by: Philip Derrin <[email protected]>
    Tested-by: Neil Dick <[email protected]>
    Reviewed-by: Kees Cook <[email protected]>
    Signed-off-by: Russell King <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    philipderrin authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d72cdea View commit details
    Browse the repository at this point in the history
  16. MIPS: ralink: Fix MT7628 pinmux

    commit 8ef4b43 upstream.
    
    According to the datasheet the REFCLK pin is shared with GPIO#37 and
    the PERST pin is shared with GPIO#36.
    
    Fixes: 53263a1 ("MIPS: ralink: add mt7628an support")
    Signed-off-by: Mathias Kresin <[email protected]>
    Acked-by: John Crispin <[email protected]>
    Cc: Ralf Baechle <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/16046/
    Signed-off-by: James Hogan <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mkresin authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    351ece3 View commit details
    Browse the repository at this point in the history
  17. MIPS: ralink: Fix typo in mt7628 pinmux function

    commit 05a67cc upstream.
    
    There is a typo inside the pinmux setup code. The function is called
    refclk and not reclk.
    
    Fixes: 53263a1 ("MIPS: ralink: add mt7628an support")
    Signed-off-by: Mathias Kresin <[email protected]>
    Acked-by: John Crispin <[email protected]>
    Cc: Ralf Baechle <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/16047/
    Signed-off-by: James Hogan <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mkresin authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    49ad11b View commit details
    Browse the repository at this point in the history
  18. PCI: Set Cavium ACS capability quirk flags to assert RR/CR/SV/UF

    commit 7f34267 upstream.
    
    The Cavium ThunderX (CN8XXX) family of PCIe Root Ports does not advertise
    an ACS capability.  However, the RTL internally implements similar
    protection as if ACS had Request Redirection, Completion Redirection,
    Source Validation, and Upstream Forwarding features enabled.
    
    Change Cavium ACS capabilities quirk flags accordingly.
    
    Fixes: b404bcf ("PCI: Add ACS quirk for all Cavium devices")
    Signed-off-by: Vadim Lomovtsev <[email protected]>
    [bhelgaas: tidy changelog, comment, stable tag]
    Signed-off-by: Bjorn Helgaas <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Vadim Lomovtsev authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    3194d87 View commit details
    Browse the repository at this point in the history
  19. ALSA: hda: Add Raven PCI ID

    commit 9ceace3 upstream.
    
    This commit adds PCI ID for Raven platform
    
    Signed-off-by: Vijendar Mukunda <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    vijendarmukunda authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    b0c6e0e View commit details
    Browse the repository at this point in the history
  20. dm bufio: fix integer overflow when limiting maximum cache size

    commit 74d4108 upstream.
    
    The default max_cache_size_bytes for dm-bufio is meant to be the lesser
    of 25% of the size of the vmalloc area and 2% of the size of lowmem.
    However, on 32-bit systems the intermediate result in the expression
    
        (VMALLOC_END - VMALLOC_START) * DM_BUFIO_VMALLOC_PERCENT / 100
    
    overflows, causing the wrong result to be computed.  For example, on a
    32-bit system where the vmalloc area is 520093696 bytes, the result is
    1174405 rather than the expected 130023424, which makes the maximum
    cache size much too small (far less than 2% of lowmem).  This causes
    severe performance problems for dm-verity users on affected systems.
    
    Fix this by using mult_frac() to correctly multiply by a percentage.  Do
    this for all places in dm-bufio that multiply by a percentage.  Also
    replace (VMALLOC_END - VMALLOC_START) with VMALLOC_TOTAL, which contrary
    to the comment is now defined in include/linux/vmalloc.h.
    
    Depends-on: 9993bc6 ("sched/x86: Fix overflow in cyc2ns_offset")
    Fixes: 95d402f ("dm: add bufio")
    Signed-off-by: Eric Biggers <[email protected]>
    Signed-off-by: Mike Snitzer <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    6609a3c View commit details
    Browse the repository at this point in the history
  21. dm: allocate struct mapped_device with kvzalloc

    commit 856eb09 upstream.
    
    The structure srcu_struct can be very big, its size is proportional to the
    value CONFIG_NR_CPUS. The Fedora kernel has CONFIG_NR_CPUS 8192, the field
    io_barrier in the struct mapped_device has 84kB in the debugging kernel
    and 50kB in the non-debugging kernel. The large size may result in failure
    of the function kzalloc_node.
    
    In order to avoid the allocation failure, we use the function
    kvzalloc_node, this function falls back to vmalloc if a large contiguous
    chunk of memory is not available. This patch also moves the field
    io_barrier to the last position of struct mapped_device - the reason is
    that on many processor architectures, short memory offsets result in
    smaller code than long memory offsets - on x86-64 it reduces code size by
    320 bytes.
    
    Note to stable kernel maintainers - the kernels 4.11 and older don't have
    the function kvzalloc_node, you can use the function vzalloc_node instead.
    
    Signed-off-by: Mikulas Patocka <[email protected]>
    Signed-off-by: Mike Snitzer <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Mikulas Patocka authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    67246fb View commit details
    Browse the repository at this point in the history
  22. MIPS: pci: Remove KERN_WARN instance inside the mt7620 driver

    commit 8593b18 upstream.
    
    Switch the printk() call to the prefered pr_warn() api.
    
    Fixes: 7e5873d ("MIPS: pci: Add MT7620a PCIE driver")
    Signed-off-by: John Crispin <[email protected]>
    Cc: Ralf Baechle <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/15321/
    Signed-off-by: James Hogan <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    blogic authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    822c308 View commit details
    Browse the repository at this point in the history
  23. dm: fix race between dm_get_from_kobject() and __dm_destroy()

    commit b9a41d2 upstream.
    
    The following BUG_ON was hit when testing repeat creation and removal of
    DM devices:
    
        kernel BUG at drivers/md/dm.c:2919!
        CPU: 7 PID: 750 Comm: systemd-udevd Not tainted 4.1.44
        Call Trace:
         [<ffffffff81649e8b>] dm_get_from_kobject+0x34/0x3a
         [<ffffffff81650ef1>] dm_attr_show+0x2b/0x5e
         [<ffffffff817b46d1>] ? mutex_lock+0x26/0x44
         [<ffffffff811df7f5>] sysfs_kf_seq_show+0x83/0xcf
         [<ffffffff811de257>] kernfs_seq_show+0x23/0x25
         [<ffffffff81199118>] seq_read+0x16f/0x325
         [<ffffffff811de994>] kernfs_fop_read+0x3a/0x13f
         [<ffffffff8117b625>] __vfs_read+0x26/0x9d
         [<ffffffff8130eb59>] ? security_file_permission+0x3c/0x44
         [<ffffffff8117bdb8>] ? rw_verify_area+0x83/0xd9
         [<ffffffff8117be9d>] vfs_read+0x8f/0xcf
         [<ffffffff81193e34>] ? __fdget_pos+0x12/0x41
         [<ffffffff8117c686>] SyS_read+0x4b/0x76
         [<ffffffff817b606e>] system_call_fastpath+0x12/0x71
    
    The bug can be easily triggered, if an extra delay (e.g. 10ms) is added
    between the test of DMF_FREEING & DMF_DELETING and dm_get() in
    dm_get_from_kobject().
    
    To fix it, we need to ensure the test of DMF_FREEING & DMF_DELETING and
    dm_get() are done in an atomic way, so _minor_lock is used.
    
    The other callers of dm_get() have also been checked to be OK: some
    callers invoke dm_get() under _minor_lock, some callers invoke it under
    _hash_lock, and dm_start_request() invoke it after increasing
    md->open_count.
    
    Signed-off-by: Hou Tao <[email protected]>
    Signed-off-by: Mike Snitzer <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Hou Tao authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    1cd9686 View commit details
    Browse the repository at this point in the history
  24. MIPS: Fix odd fp register warnings with MIPS64r2

    commit c7fd89a upstream.
    
    Building 32-bit MIPS64r2 kernels produces warnings like the following
    on certain toolchains (such as GNU assembler 2.24.90, but not GNU
    assembler 2.28.51) since commit 22b8ba7 ("MIPS: Fix MIPS64 FP
    save/restore on 32-bit kernels"), due to the exposure of fpu_save_16odd
    from fpu_save_double and fpu_restore_16odd from fpu_restore_double:
    
    arch/mips/kernel/r4k_fpu.S:47: Warning: float register should be even, was 1
    ...
    arch/mips/kernel/r4k_fpu.S:59: Warning: float register should be even, was 1
    ...
    
    This appears to be because .set mips64r2 does not change the FPU ABI to
    64-bit when -march=mips64r2 (or e.g. -march=xlp) is provided on the
    command line on that toolchain, from the default FPU ABI of 32-bit due
    to the -mabi=32. This makes access to the odd FPU registers invalid.
    
    Fix by explicitly changing the FPU ABI with .set fp=64 directives in
    fpu_save_16odd and fpu_restore_16odd, and moving the undefine of fp up
    in asmmacro.h so fp doesn't turn into $30.
    
    Fixes: 22b8ba7 ("MIPS: Fix MIPS64 FP save/restore on 32-bit kernels")
    Signed-off-by: James Hogan <[email protected]>
    Cc: Ralf Baechle <[email protected]>
    Cc: Paul Burton <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/17656/
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    amalon authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    e921148 View commit details
    Browse the repository at this point in the history
  25. MIPS: dts: remove bogus bcm96358nb4ser.dtb from dtb-y entry

    commit 3cad14d upstream.
    
    arch/mips/boot/dts/brcm/bcm96358nb4ser.dts does not exist, so
    we cannot build bcm96358nb4ser.dtb .
    
    Signed-off-by: Masahiro Yamada <[email protected]>
    Fixes: 6958355 ("MIPS: BMIPS: rename bcm96358nb4ser to bcm6358-neufbox4-sercom")
    Acked-by: James Hogan <[email protected]>
    Signed-off-by: Rob Herring <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    masahir0y authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    3a63c9b View commit details
    Browse the repository at this point in the history
  26. MIPS: Fix an n32 core file generation regset support regression

    commit 547da67 upstream.
    
    Fix a commit 7aeb753 ("MIPS: Implement task_user_regset_view.")
    regression, then activated by commit 6a9c001 ("MIPS: Switch ELF
    core dumper to use regsets.)", that caused n32 processes to dump o32
    core files by failing to set the EF_MIPS_ABI2 flag in the ELF core file
    header's `e_flags' member:
    
    $ file tls-core
    tls-core: ELF 32-bit MSB executable, MIPS, N32 MIPS64 rel2 version 1 (SYSV), [...]
    $ ./tls-core
    Aborted (core dumped)
    $ file core
    core: ELF 32-bit MSB core file MIPS, MIPS-I version 1 (SYSV), SVR4-style
    $
    
    Previously the flag was set as the result of a:
    
    statement placed in arch/mips/kernel/binfmt_elfn32.c, however in the
    regset case, i.e. when CORE_DUMP_USE_REGSET is set, ELF_CORE_EFLAGS is
    no longer used by `fill_note_info' in fs/binfmt_elf.c, and instead the
    `->e_flags' member of the regset view chosen is.  We have the views
    defined in arch/mips/kernel/ptrace.c, however only an o32 and an n64
    one, and the latter is used for n32 as well.  Consequently an o32 core
    file is incorrectly dumped from n32 processes (the ELF32 vs ELF64 class
    is chosen elsewhere, and the 32-bit one is correctly selected for n32).
    
    Correct the issue then by defining an n32 regset view and using it as
    appropriate.  Issue discovered in GDB testing.
    
    Fixes: 7aeb753 ("MIPS: Implement task_user_regset_view.")
    Signed-off-by: Maciej W. Rozycki <[email protected]>
    Cc: Ralf Baechle <[email protected]>
    Cc: Djordje Todorovic <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/17617/
    Signed-off-by: James Hogan <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Maciej W. Rozycki authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    219f386 View commit details
    Browse the repository at this point in the history
  27. MIPS: BCM47XX: Fix LED inversion for WRT54GSv1

    commit 56a46ac upstream.
    
    The WLAN LED on the Linksys WRT54GSv1 is active low, but the software
    treats it as active high. Fix the inverted logic.
    
    Fixes: 7bb26b1 ("MIPS: BCM47xx: Fix LEDs on WRT54GS V1.0")
    Signed-off-by: Mirko Parthey <[email protected]>
    Looks-ok-by: Rafał Miłecki <[email protected]>
    Cc: Hauke Mehrtens <[email protected]>
    Cc: [email protected]
    Patchwork: https://patchwork.linux-mips.org/patch/16071/
    Signed-off-by: James Hogan <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mparthey authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    3f6e291 View commit details
    Browse the repository at this point in the history
  28. rt2x00usb: mark device removed when get ENOENT usb error

    commit bfa62a5 upstream.
    
    ENOENT usb error mean "specified interface or endpoint does not exist or
    is not enabled". Mark device not present when we encounter this error
    similar like we do with ENODEV error.
    
    Otherwise we can have infinite loop in rt2x00usb_work_rxdone(), because
    we remove and put again RX entries to the queue infinitely.
    
    We can have similar situation when submit urb will fail all the time
    with other error, so we need consider to limit number of entries
    processed by rxdone work. But for now, since the patch fixes
    reproducible soft lockup issue on single processor systems
    and taken ENOENT error meaning, let apply this fix.
    
    Patch adds additional ENOENT check not only in rx kick routine, but
    also on other places where we check for ENODEV error.
    
    Reported-by: Richard Genoud <[email protected]>
    Debugged-by: Richard Genoud <[email protected]>
    Signed-off-by: Stanislaw Gruszka <[email protected]>
    Tested-by: Richard Genoud <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Stanislaw Gruszka authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    f2c9705 View commit details
    Browse the repository at this point in the history
  29. autofs: don't fail mount for transient error

    commit ecc0c46 upstream.
    
    Currently if the autofs kernel module gets an error when writing to the
    pipe which links to the daemon, then it marks the whole moutpoint as
    catatonic, and it will stop working.
    
    It is possible that the error is transient.  This can happen if the
    daemon is slow and more than 16 requests queue up.  If a subsequent
    process tries to queue a request, and is then signalled, the write to
    the pipe will return -ERESTARTSYS and autofs will take that as total
    failure.
    
    So change the code to assess -ERESTARTSYS and -ENOMEM as transient
    failures which only abort the current request, not the whole mountpoint.
    
    It isn't a crash or a data corruption, but having autofs mountpoints
    suddenly stop working is rather inconvenient.
    
    Ian said:
    
    : And given the problems with a half dozen (or so) user space applications
    : consuming large amounts of CPU under heavy mount and umount activity this
    : could happen more easily than we expect.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: NeilBrown <[email protected]>
    Acked-by: Ian Kent <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    NeilBrown authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    ab96d9c View commit details
    Browse the repository at this point in the history
  30. nilfs2: fix race condition that causes file system corruption

    commit 31ccb1f upstream.
    
    There is a race condition between nilfs_dirty_inode() and
    nilfs_set_file_dirty().
    
    When a file is opened, nilfs_dirty_inode() is called to update the
    access timestamp in the inode.  It calls __nilfs_mark_inode_dirty() in a
    separate transaction.  __nilfs_mark_inode_dirty() caches the ifile
    buffer_head in the i_bh field of the inode info structure and marks it
    as dirty.
    
    After some data was written to the file in another transaction, the
    function nilfs_set_file_dirty() is called, which adds the inode to the
    ns_dirty_files list.
    
    Then the segment construction calls nilfs_segctor_collect_dirty_files(),
    which goes through the ns_dirty_files list and checks the i_bh field.
    If there is a cached buffer_head in i_bh it is not marked as dirty
    again.
    
    Since nilfs_dirty_inode() and nilfs_set_file_dirty() use separate
    transactions, it is possible that a segment construction that writes out
    the ifile occurs in-between the two.  If this happens the inode is not
    on the ns_dirty_files list, but its ifile block is still marked as dirty
    and written out.
    
    In the next segment construction, the data for the file is written out
    and nilfs_bmap_propagate() updates the b-tree.  Eventually the bmap root
    is written into the i_bh block, which is not dirty, because it was
    written out in another segment construction.
    
    As a result the bmap update can be lost, which leads to file system
    corruption.  Either the virtual block address points to an unallocated
    DAT block, or the DAT entry will be reused for something different.
    
    The error can remain undetected for a long time.  A typical error
    message would be one of the "bad btree" errors or a warning that a DAT
    entry could not be found.
    
    This bug can be reproduced reliably by a simple benchmark that creates
    and overwrites millions of 4k files.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Andreas Rohner <[email protected]>
    Signed-off-by: Ryusuke Konishi <[email protected]>
    Tested-by: Andreas Rohner <[email protected]>
    Tested-by: Ryusuke Konishi <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    zeitgeist87 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    45a99f1 View commit details
    Browse the repository at this point in the history
  31. eCryptfs: use after free in ecryptfs_release_messaging()

    commit db86be3 upstream.
    
    We're freeing the list iterator so we should be using the _safe()
    version of hlist_for_each_entry().
    
    Fixes: 88b4a07 ("[PATCH] eCryptfs: Public key transport mechanism")
    Signed-off-by: Dan Carpenter <[email protected]>
    Signed-off-by: Tyler Hicks <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    7d00fdb View commit details
    Browse the repository at this point in the history
  32. libceph: don't WARN() if user tries to add invalid key

    commit b112708 upstream.
    
    The WARN_ON(!key->len) in set_secret() in net/ceph/crypto.c is hit if a
    user tries to add a key of type "ceph" with an invalid payload as
    follows (assuming CONFIG_CEPH_LIB=y):
    
        echo -e -n '\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' \
    	| keyctl padd ceph desc @s
    
    This can be hit by fuzzers.  As this is merely bad input and not a
    kernel bug, replace the WARN_ON() with return -EINVAL.
    
    Fixes: 7af3ea1 ("libceph: stop allocating a new cipher on every crypto request")
    Signed-off-by: Eric Biggers <[email protected]>
    Reviewed-by: Ilya Dryomov <[email protected]>
    Signed-off-by: Ilya Dryomov <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    a1e2542 View commit details
    Browse the repository at this point in the history
  33. bcache: check ca->alloc_thread initialized before wake up it

    commit 91af830 upstream.
    
    In bcache code, sysfs entries are created before all resources get
    allocated, e.g. allocation thread of a cache set.
    
    There is posibility for NULL pointer deference if a resource is accessed
    but which is not initialized yet. Indeed Jorg Bornschein catches one on
    cache set allocation thread and gets a kernel oops.
    
    The reason for this bug is, when bch_bucket_alloc() is called during
    cache set registration and attaching, ca->alloc_thread is not properly
    allocated and initialized yet, call wake_up_process() on ca->alloc_thread
    triggers NULL pointer deference failure. A simple and fast fix is, before
    waking up ca->alloc_thread, checking whether it is allocated, and only
    wake up ca->alloc_thread when it is not NULL.
    
    Signed-off-by: Coly Li <[email protected]>
    Reported-by: Jorg Bornschein <[email protected]>
    Cc: Kent Overstreet <[email protected]>
    Reviewed-by: Michael Lyle <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Coly Li authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    770e108 View commit details
    Browse the repository at this point in the history
  34. isofs: fix timestamps beyond 2027

    commit 34be4db upstream.
    
    isofs uses a 'char' variable to load the number of years since
    1900 for an inode timestamp. On architectures that use a signed
    char type by default, this results in an invalid date for
    anything beyond 2027.
    
    This changes the function argument to a 'u8' array, which
    is defined the same way on all architectures, and unambiguously
    lets us use years until 2155.
    
    This should be backported to all kernels that might still be
    in use by that date.
    
    Signed-off-by: Arnd Bergmann <[email protected]>
    Signed-off-by: Jan Kara <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    arndb authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    affd159 View commit details
    Browse the repository at this point in the history
  35. NFS: Fix typo in nomigration mount option

    commit f02fee2 upstream.
    
    The option was incorrectly masking off all other options.
    
    Signed-off-by: Joshua Watt <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    JPEWdev authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    a896292 View commit details
    Browse the repository at this point in the history
  36. nfs: Fix ugly referral attributes

    commit c05cefc upstream.
    
    Before traversing a referral and performing a mount, the mounted-on
    directory looks strange:
    
    dr-xr-xr-x. 2 4294967294 4294967294 0 Dec 31  1969 dir.0
    
    nfs4_get_referral is wiping out any cached attributes with what was
    returned via GETATTR(fs_locations), but the bit mask for that
    operation does not request any file attributes.
    
    Retrieve owner and timestamp information so that the memcpy in
    nfs4_get_referral fills in more attributes.
    
    Changes since v1:
    - Don't request attributes that the client unconditionally replaces
    - Request only MOUNTED_ON_FILEID or FILEID attribute, not both
    - encode_fs_locations() doesn't use the third bitmask word
    
    Fixes: 6b97fd3 ("NFSv4: Follow a referral")
    Suggested-by: Pradeep Thomas <[email protected]>
    Signed-off-by: Chuck Lever <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    chucklever authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8ead2ac View commit details
    Browse the repository at this point in the history
  37. NFS: Avoid RCU usage in tracepoints

    commit 3944369 upstream.
    
    There isn't an obvious way to acquire and release the RCU lock during a
    tracepoint, so we can't use the rpc_peeraddr2str() function here.
    Instead, rely on the client's cl_hostname, which should have similar
    enough information without needing an rcu_dereference().
    
    Reported-by: Dave Jones <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    amschuma-ntap authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8fb42f7 View commit details
    Browse the repository at this point in the history
  38. nfsd: deal with revoked delegations appropriately

    commit 95da1b3 upstream.
    
    If a delegation has been revoked by the server, operations using that
    delegation should error out with NFS4ERR_DELEG_REVOKED in the >4.1
    case, and NFS4ERR_BAD_STATEID otherwise.
    
    The server needs NFSv4.1 clients to explicitly free revoked delegations.
    If the server returns NFS4ERR_DELEG_REVOKED, the client will do that;
    otherwise it may just forget about the delegation and be unable to
    recover when it later sees SEQ4_STATUS_RECALLABLE_STATE_REVOKED set on a
    SEQUENCE reply.  That can cause the Linux 4.1 client to loop in its
    stage manager.
    
    Signed-off-by: Andrew Elble <[email protected]>
    Reviewed-by: Trond Myklebust <[email protected]>
    Signed-off-by: J. Bruce Fields <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    aweits authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    62f0b69 View commit details
    Browse the repository at this point in the history
  39. rtlwifi: rtl8192ee: Fix memory leak when loading firmware

    commit 519ce2f upstream.
    
    In routine rtl92ee_set_fw_rsvdpagepkt(), the driver allocates an skb, but
    never calls rtl_cmd_send_packet(), which will free the buffer. All other
    rtlwifi drivers perform this operation correctly.
    
    This problem has been in the driver since it was included in the kernel.
    Fortunately, each firmware load only leaks 4 buffers, which likely
    explains why it has not previously been detected.
    
    Signed-off-by: Larry Finger <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    lwfinger authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    a6cafd2 View commit details
    Browse the repository at this point in the history
  40. rtlwifi: fix uninitialized rtlhal->last_suspend_sec time

    commit 3f2a162 upstream.
    
    We set rtlhal->last_suspend_sec to an uninitialized stack variable,
    but unfortunately gcc never warned about this, I only found it
    while working on another patch. I opened a gcc bug for this.
    
    Presumably the value of rtlhal->last_suspend_sec is not all that
    important, but it does get used, so we probably want the
    patch backported to stable kernels.
    
    Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82839
    Signed-off-by: Arnd Bergmann <[email protected]>
    Acked-by: Larry Finger <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    arndb authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    f4c97e3 View commit details
    Browse the repository at this point in the history
  41. ata: fixes kernel crash while tracing ata_eh_link_autopsy event

    commit f160111 upstream.
    
    When tracing ata link error event, the kernel crashes when the disk is
    removed due to NULL pointer access by trace_ata_eh_link_autopsy API.
    This occurs as the dev is NULL when the disk disappeared. This patch
    fixes this crash by calling trace_ata_eh_link_autopsy only if "dev"
    is not NULL.
    
    v2 changes:
     Removed direct passing "link" pointer instead of "dev" in trace API.
    
    Signed-off-by: Rameshwar Prasad Sahu <[email protected]>
    Signed-off-by: Tejun Heo <[email protected]>
    Fixes: 255c03d ("libata: Add tracepoints")
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Rameshwar Prasad Sahu authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    2946ebe View commit details
    Browse the repository at this point in the history
  42. ext4: fix interaction between i_size, fallocate, and delalloc after a…

    … crash
    
    commit 51e3ae8 upstream.
    
    If there are pending writes subject to delayed allocation, then i_size
    will show size after the writes have completed, while i_disksize
    contains the value of i_size on the disk (since the writes have not
    been persisted to disk).
    
    If fallocate(2) is called with the FALLOC_FL_KEEP_SIZE flag, either
    with or without the FALLOC_FL_ZERO_RANGE flag set, and the new size
    after the fallocate(2) is between i_size and i_disksize, then after a
    crash, if a journal commit has resulted in the changes made by the
    fallocate() call to be persisted after a crash, but the delayed
    allocation write has not resolved itself, i_size would not be updated,
    and this would cause the following e2fsck complaint:
    
    Inode 12, end of extent exceeds allowed value
    	(logical block 33, physical block 33441, len 7)
    
    This can only take place on a sparse file, where the fallocate(2) call
    is allocating blocks in a range which is before a pending delayed
    allocation write which is extending i_size.  Since this situation is
    quite rare, and the window in which the crash must take place is
    typically < 30 seconds, in practice this condition will rarely happen.
    
    Nevertheless, it can be triggered in testing, and in particular by
    xfstests generic/456.
    
    Signed-off-by: Theodore Ts'o <[email protected]>
    Reported-by: Amir Goldstein <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tytso authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    9cdd4bf View commit details
    Browse the repository at this point in the history
  43. ALSA: pcm: update tstamp only if audio_tstamp changed

    commit 20e3f98 upstream.
    
    commit 3179f62 ("ALSA: core: add .get_time_info") had a side effect
    of changing the behaviour of the PCM runtime tstamp.  Prior to this
    change tstamp was not updated by snd_pcm_update_hw_ptr0() unless the
    hw_ptr had moved, after this change tstamp was always updated.
    
    For an application using alsa-lib, doing snd_pcm_readi() followed by
    snd_pcm_status() to estimate the age of the read samples by subtracting
    status->avail * [sample rate] from status->tstamp this change degraded
    the accuracy of the estimate on devices where the pcm hw does not
    provide a granular hw_ptr, e.g., devices using
    soc-generic-dmaengine-pcm.c and a dma-engine with residue_granularity
    DMA_RESIDUE_GRANULARITY_DESCRIPTOR.  The accuracy of the estimate
    depended on the latency between the PCM hw completing a period and the
    driver called snd_pcm_period_elapsed() to notify ALSA core, typically
    determined by interrupt handling latency.  After the change the accuracy
    of the estimate depended on the latency between the PCM hw completing a
    period and the application calling snd_pcm_status(), determined by the
    scheduling of the application process.  The maximum error of the
    estimate is one period length in both cases, but the error average and
    variance is smaller when it depends on interrupt latency.
    
    Instead of always updating tstamp, update it only if audio_tstamp
    changed.
    
    Fixes: 3179f62 ("ALSA: core: add .get_time_info")
    Suggested-by: Pierre-Louis Bossart <[email protected]>
    Signed-off-by: Henrik Eriksson <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Henrik Eriksson authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    14eb454 View commit details
    Browse the repository at this point in the history
  44. ALSA: usb-audio: Add sanity checks to FE parser

    commit d937cd6 upstream.
    
    When the usb-audio descriptor contains the malformed feature unit
    description with a too short length, the driver may access
    out-of-bounds.  Add a sanity check of the header size at the beginning
    of parse_audio_feature_unit().
    
    Fixes: 23caaf1 ("ALSA: usb-mixer: Add support for Audio Class v2.0")
    Reported-by: Andrey Konovalov <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tiwai authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    85cc020 View commit details
    Browse the repository at this point in the history
  45. ALSA: usb-audio: Fix potential out-of-bound access at parsing SU

    commit f658f17 upstream.
    
    The usb-audio driver may trigger an out-of-bound access at parsing a
    malformed selector unit, as it checks the header length only after
    evaluating bNrInPins field, which can be already above the given
    length.  Fix it by adding the length check beforehand.
    
    Fixes: 99fc864 ("ALSA: usb-mixer: parse descriptors with structs")
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tiwai authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    2335322 View commit details
    Browse the repository at this point in the history
  46. ALSA: usb-audio: Add sanity checks in v2 clock parsers

    commit 0a62d6c upstream.
    
    The helper functions to parse and look for the clock source, selector
    and multiplier unit may return the descriptor with a too short length
    than required, while there is no sanity check in the caller side.
    Add some sanity checks in the parsers, at least, to guarantee the
    given descriptor size, for avoiding the potential crashes.
    
    Fixes: 79f920f ("ALSA: usb-audio: parse clock topology of UAC2 devices")
    Reported-by: Andrey Konovalov <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tiwai authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    faa5f49 View commit details
    Browse the repository at this point in the history
  47. ALSA: timer: Remove kernel warning at compat ioctl error paths

    commit 3d4e830 upstream.
    
    Some timer compat ioctls have NULL checks of timer instance with
    snd_BUG_ON() that bring up WARN_ON() when the debug option is set.
    Actually the condition can be met in the normal situation and it's
    confusing and bad to spew kernel warnings with stack trace there.
    Let's remove snd_BUG_ON() invocation and replace with the simple
    checks.  Also, correct the error code to EBADFD to follow the native
    ioctl error handling.
    
    Reported-by: syzbot <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tiwai authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    162799d View commit details
    Browse the repository at this point in the history
  48. ALSA: hda: Fix too short HDMI/DP chmap reporting

    commit c243246 upstream.
    
    We got a regression report about the HD-audio HDMI chmap, where some
    surround channels are reported as UNKNOWN.  The git bisection pointed
    the culprit at the commit 9b3dc8a ("ALSA: hda - Register chmap
    obj as priv data instead of codec").  The story behind scene is like
    this:
    
    - While moving the code out of the legacy HDA to the HDA common place,
      the patch modifies the code to obtain the chmap array indirectly in
      a byte array, and it expands it to kctl value array.
    - At the latter operation, the size of the array is wrongly passed by
      sizeof() to the pointer.
    - It can be 4 on 32bit arch, thus too short for 6+ channels.
      (And that's the reason why it didn't hit other persons; it's 8 on
      64bit arch, thus it's usually enough.)
    
    The code was further changed meanwhile, but the problem persisted.
    Let's fix it by correctly evaluating the array size.
    
    Fixes: 9b3dc8a ("ALSA: hda - Register chmap obj as priv data instead of codec")
    Reported-by: VDR User <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tiwai authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    af9642d View commit details
    Browse the repository at this point in the history
  49. ALSA: hda/realtek - Fix ALC700 family no sound issue

    commit 2d7fe61 upstream.
    
    It maybe the typo for ALC700 support patch.
    To fix the bit value on this patch.
    
    Fixes: 6fbae35 ("ALSA: hda/realtek - Add support for new codecs ALC700/ALC701/ALC703")
    Signed-off-by: Kailang Yang <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kailangyang authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    193fd09 View commit details
    Browse the repository at this point in the history
  50. fix a page leak in vhost_scsi_iov_to_sgl() error recovery

    commit 11d49e9 upstream.
    
    we are advancing sg as we go, so the pages we need to drop in
    case of error are *before* the current sg.
    
    Signed-off-by: Al Viro <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Al Viro authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    2c9ef04 View commit details
    Browse the repository at this point in the history
  51. fs/9p: Compare qid.path in v9fs_test_inode

    commit 8ee0316 upstream.
    
    Commit fd2421f ("fs/9p: When doing inode lookup compare qid details
    and inode mode bits.") transformed v9fs_qid_iget() to use iget5_locked()
    instead of iget_locked(). However, the test() callback is not checking
    fid.path at all, which means that a lookup in the inode cache can now
    accidentally locate a completely wrong inode from the same inode hash
    bucket if the other fields (qid.type and qid.version) match.
    
    Fixes: fd2421f ("fs/9p: When doing inode lookup compare qid details and inode mode bits.")
    Reviewed-by: Latchesar Ionkov <[email protected]>
    Signed-off-by: Tuomas Tynkkynen <[email protected]>
    Signed-off-by: Al Viro <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dezgeg authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    bccfffd View commit details
    Browse the repository at this point in the history
  52. iscsi-target: Fix non-immediate TMR reference leak

    commit 3fc9fb1 upstream.
    
    This patch fixes a se_cmd->cmd_kref reference leak that can
    occur when a non immediate TMR is proceeded our of command
    sequence number order, and CMDSN_LOWER_THAN_EXP is returned
    by iscsit_sequence_cmd().
    
    To address this bug, call target_put_sess_cmd() during this
    special case following what iscsit_process_scsi_cmd() does
    upon CMDSN_LOWER_THAN_EXP.
    
    Cc: Mike Christie <[email protected]>
    Cc: Hannes Reinecke <[email protected]>
    Signed-off-by: Nicholas Bellinger <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    nablio3000 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    b850dae View commit details
    Browse the repository at this point in the history
  53. target: Fix QUEUE_FULL + SCSI task attribute handling

    commit 1c79df1 upstream.
    
    This patch fixes a bug during QUEUE_FULL where transport_complete_qf()
    calls transport_complete_task_attr() after it's already been invoked
    by target_complete_ok_work() or transport_generic_request_failure()
    during initial completion, preceeding QUEUE_FULL.
    
    This will result in se_device->simple_cmds, se_device->dev_cur_ordered_id
    and/or se_device->dev_ordered_sync being updated multiple times for
    a single se_cmd.
    
    To address this bug, clear SCF_TASK_ATTR_SET after the first call
    to transport_complete_task_attr(), and avoid updating SCSI task
    attribute related counters for any subsequent calls.
    
    Also, when a se_cmd is deferred due to ordered tags and executed
    via target_restart_delayed_cmds(), set CMD_T_SENT before execution
    matching what target_execute_cmd() does.
    
    Cc: Michael Cyr <[email protected]>
    Cc: Bryant G. Ly <[email protected]>
    Cc: Mike Christie <[email protected]>
    Cc: Hannes Reinecke <[email protected]>
    Signed-off-by: Nicholas Bellinger <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    nablio3000 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8bea1b4 View commit details
    Browse the repository at this point in the history
  54. mtd: nand: omap2: Fix subpage write

    commit 739c644 upstream.
    
    Since v4.12, NAND subpage writes were causing a NULL pointer
    dereference on OMAP platforms (omap2-nand) using OMAP_ECC_BCH4_CODE_HW,
    OMAP_ECC_BCH8_CODE_HW and OMAP_ECC_BCH16_CODE_HW.
    
    This is because for those ECC modes, omap_calculate_ecc_bch()
    generates ECC bytes for the entire (multi-sector) page and this can
    overflow the ECC buffer provided by nand_write_subpage_hwecc()
    as it expects ecc.calculate() to return ECC bytes for just one sector.
    
    However, the root cause of the problem is present since v3.9
    but was not seen then as NAND buffers were being allocated
    as one big chunk prior to commit 3deb997 ("mtd: nand: allocate
    aligned buffers if NAND_OWN_BUFFERS is unset").
    
    Fix the issue by providing a OMAP optimized write_subpage()
    implementation.
    
    Fixes: 62116e5 ("mtd: nand: omap2: Support for hardware BCH error correction.")
    Signed-off-by: Roger Quadros <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Roger Quadros authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    09fd3f8 View commit details
    Browse the repository at this point in the history
  55. mtd: nand: Fix writing mtdoops to nand flash.

    commit 30863e3 upstream.
    
    When mtdoops calls mtd_panic_write(), it eventually calls
    panic_nand_write() in nand_base.c. In order to properly wait for the
    nand chip to be ready in panic_nand_wait(), the chip must first be
    selected.
    
    When using the atmel nand flash controller, a panic would occur due to
    a NULL pointer exception.
    
    Fixes: 2af7c65 ("mtd: Add panic_write for NAND flashes")
    Signed-off-by: Brent Taylor <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    motobud31 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    17074fa View commit details
    Browse the repository at this point in the history
  56. mtd: nand: mtk: fix infinite ECC decode IRQ issue

    commit 1d2fcdc upstream.
    
    For MT2701 NAND Controller, there may generate infinite ECC decode IRQ
    during long time burn test on some platforms. Once this issue occurred,
    the ECC decode IRQ status cannot be cleared in the IRQ handler function,
    and threads cannot be scheduled.
    
    ECC HW generates decode IRQ each sector, so there will have more than one
    decode IRQ if read one page of large page NAND.
    
    Currently, ECC IRQ handle flow is that we will check whether it is decode
    IRQ at first by reading the register ECC_DECIRQ_STA. This is a read-clear
    type register. If this IRQ is decode IRQ, then the ECC IRQ signal will be
    cleared at the same time.
    Secondly, we will check whether all sectors are decoded by reading the
    register ECC_DECDONE. This is because the current IRQ may be not dealed
    in time, and the next sectors have been decoded before reading the
    register ECC_DECIRQ_STA. Then, the next sectors's decode IRQs will not
    be generated.
    Thirdly, if all sectors are decoded by comparing with ecc->sectors, then we
    will complete ecc->done, set ecc->sectors as 0, and disable ECC IRQ by
    programming the register ECC_IRQ_REG(op) as 0. Otherwise, wait for the
    next ECC IRQ.
    
    But, there is a timing issue between step one and two. When we read the
    reigster ECC_DECIRQ_STA, all sectors are decoded except the last sector,
    and the ECC IRQ signal is cleared. But the last sector is decoded before
    reading ECC_DECDONE, so the ECC IRQ signal is enabled again by ECC HW, and
    it means we will receive one extra ECC IRQ later. In step three, we will
    find that all sectors were decoded, then disable ECC IRQ and return.
    When deal with the extra ECC IRQ, the ECC IRQ status cannot be cleared
    anymore. That is because the register ECC_DECIRQ_STA can only be cleared
    when the register ECC_IRQ_REG(op) is enabled. But actually we have
    disabled ECC IRQ in the previous ECC IRQ handle. So, there will
    keep receiving ECC decode IRQ.
    
    Now, we read the register ECC_DECIRQ_STA once again before completing the
    ecc done event. This ensures that there will be no extra ECC decode IRQ.
    
    Also, remove writel(0, ecc->regs + ECC_IRQ_REG(op)) from irq handler,
    because ECC IRQ is disabled in mtk_ecc_disable(). And clear ECC_DECIRQ_STA
    in mtk_ecc_disable() in case there is a timeout to wait decode IRQ.
    
    Fixes: 1d6b1e4 ("mtd: mediatek: driver for MTK Smart Device")
    Signed-off-by: Xiaolei Li <[email protected]>
    Signed-off-by: Boris Brezillon <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    xiaoleili authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d8dacf4 View commit details
    Browse the repository at this point in the history
  57. p54: don't unregister leds when they are not initialized

    commit fc09785 upstream.
    
    ieee80211_register_hw() in p54_register_common() may fail and leds won't
    get initialized. Currently p54_unregister_common() doesn't check that and
    always calls p54_unregister_leds(). The fix is to check priv->registered
    flag before calling p54_unregister_leds().
    
    Found by syzkaller.
    
    INFO: trying to register non-static key.
    the code is fine but needs lockdep annotation.
    turning off the locking correctness validator.
    CPU: 1 PID: 1404 Comm: kworker/1:1 Not tainted
    4.14.0-rc1-42251-gebb2c2437d80-dirty Freescale#205
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
    Workqueue: usb_hub_wq hub_event
    Call Trace:
     __dump_stack lib/dump_stack.c:16
     dump_stack+0x292/0x395 lib/dump_stack.c:52
     register_lock_class+0x6c4/0x1a00 kernel/locking/lockdep.c:769
     __lock_acquire+0x27e/0x4550 kernel/locking/lockdep.c:3385
     lock_acquire+0x259/0x620 kernel/locking/lockdep.c:4002
     flush_work+0xf0/0x8c0 kernel/workqueue.c:2886
     __cancel_work_timer+0x51d/0x870 kernel/workqueue.c:2961
     cancel_delayed_work_sync+0x1f/0x30 kernel/workqueue.c:3081
     p54_unregister_leds+0x6c/0xc0 drivers/net/wireless/intersil/p54/led.c:160
     p54_unregister_common+0x3d/0xb0 drivers/net/wireless/intersil/p54/main.c:856
     p54u_disconnect+0x86/0x120 drivers/net/wireless/intersil/p54/p54usb.c:1073
     usb_unbind_interface+0x21c/0xa90 drivers/usb/core/driver.c:423
     __device_release_driver drivers/base/dd.c:861
     device_release_driver_internal+0x4f4/0x5c0 drivers/base/dd.c:893
     device_release_driver+0x1e/0x30 drivers/base/dd.c:918
     bus_remove_device+0x2f4/0x4b0 drivers/base/bus.c:565
     device_del+0x5c4/0xab0 drivers/base/core.c:1985
     usb_disable_device+0x1e9/0x680 drivers/usb/core/message.c:1170
     usb_disconnect+0x260/0x7a0 drivers/usb/core/hub.c:2124
     hub_port_connect drivers/usb/core/hub.c:4754
     hub_port_connect_change drivers/usb/core/hub.c:5009
     port_event drivers/usb/core/hub.c:5115
     hub_event+0x1318/0x3740 drivers/usb/core/hub.c:5195
     process_one_work+0xc7f/0x1db0 kernel/workqueue.c:2119
     process_scheduled_works kernel/workqueue.c:2179
     worker_thread+0xb2b/0x1850 kernel/workqueue.c:2255
     kthread+0x3a1/0x470 kernel/kthread.c:231
     ret_from_fork+0x2a/0x40 arch/x86/entry/entry_64.S:431
    
    Signed-off-by: Andrey Konovalov <[email protected]>
    Acked-by: Christian Lamparter <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    xairy authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    7d159bf View commit details
    Browse the repository at this point in the history
  58. block: Fix a race between blk_cleanup_queue() and timeout handling

    commit 4e9b6f2 upstream.
    
    Make sure that if the timeout timer fires after a queue has been
    marked "dying" that the affected requests are finished.
    
    Reported-by: chenxiang (M) <[email protected]>
    Fixes: commit 287922e ("block: defer timeouts to a workqueue")
    Signed-off-by: Bart Van Assche <[email protected]>
    Tested-by: chenxiang (M) <[email protected]>
    Cc: Christoph Hellwig <[email protected]>
    Cc: Keith Busch <[email protected]>
    Cc: Hannes Reinecke <[email protected]>
    Cc: Ming Lei <[email protected]>
    Cc: Johannes Thumshirn <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    KAGA-KOKO authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    e5386fc View commit details
    Browse the repository at this point in the history
  59. irqchip/gic-v3: Fix ppi-partitions lookup

    commit 00ee9a1 upstream.
    
    Fix child-node lookup during initialisation, which ended up searching
    the whole device tree depth-first starting at the parent rather than
    just matching on its children.
    
    To make things worse, the parent gic node was prematurely freed, while
    the ppi-partitions node was leaked.
    
    Fixes: e3825ba ("irqchip/gic-v3: Add support for partitioned PPIs")
    Signed-off-by: Johan Hovold <[email protected]>
    Signed-off-by: Marc Zyngier <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhovold authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    828064b View commit details
    Browse the repository at this point in the history
  60. lockd: double unregister of inetaddr notifiers

    commit dc3033e upstream.
    
    lockd_up() can call lockd_unregister_notifiers twice:
    inside lockd_start_svc() when it calls lockd_svc_exit_thread()
    and then in error path of lockd_up()
    
    Patch forces lockd_start_svc() to unregister notifiers in all error cases
    and removes extra unregister in error path of lockd_up().
    
    Fixes: cb7d224 "lockd: unregister notifier blocks if the service ..."
    Signed-off-by: Vasily Averin <[email protected]>
    Reviewed-by: Jeff Layton <[email protected]>
    Signed-off-by: J. Bruce Fields <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    vaverin authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    3df3127 View commit details
    Browse the repository at this point in the history
  61. KVM: nVMX: set IDTR and GDTR limits when loading L1 host state

    commit 21f2d55 upstream.
    
    Intel SDM 27.5.2 Loading Host Segment and Descriptor-Table Registers:
    
    "The GDTR and IDTR limits are each set to FFFFH."
    
    Signed-off-by: Ladi Prosek <[email protected]>
    Signed-off-by: Paolo Bonzini <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ladipro authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    1be0c0e View commit details
    Browse the repository at this point in the history
  62. KVM: SVM: obey guest PAT

    commit 15038e1 upstream.
    
    For many years some users of assigned devices have reported worse
    performance on AMD processors with NPT than on AMD without NPT,
    Intel or bare metal.
    
    The reason turned out to be that SVM is discarding the guest PAT
    setting and uses the default (PA0=PA4=WB, PA1=PA5=WT, PA2=PA6=UC-,
    PA3=UC).  The guest might be using a different setting, and
    especially might want write combining but isn't getting it
    (instead getting slow UC or UC- accesses).
    
    Thanks a lot to [email protected] for noticing the relation
    to the g_pat setting.  The patch has been tested also by a bunch
    of people on VFIO users forums.
    
    Fixes: 709ddeb
    Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=196409
    Signed-off-by: Paolo Bonzini <[email protected]>
    Reviewed-by: David Hildenbrand <[email protected]>
    Tested-by: Nick Sarnie <[email protected]>
    Signed-off-by: Radim Krčmář <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bonzini authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    11ac561 View commit details
    Browse the repository at this point in the history
  63. SUNRPC: Fix tracepoint storage issues with svc_recv and svc_rqst_status

    commit e9d4bf2 upstream.
    
    There is no guarantee that either the request or the svc_xprt exist
    by the time we get round to printing the trace message.
    
    Signed-off-by: Trond Myklebust <[email protected]>
    Signed-off-by: J. Bruce Fields <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    trondmypd authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d45c593 View commit details
    Browse the repository at this point in the history
  64. clk: ti: dra7-atl-clock: fix child-node lookups

    commit 33ec6db upstream.
    
    Fix child node-lookup during probe, which ended up searching the whole
    device tree depth-first starting at parent rather than just matching on
    its children.
    
    Note that the original premature free of the parent node has already
    been fixed separately, but that fix was apparently never backported to
    stable.
    
    Fixes: 9ac33b0 ("CLK: TI: Driver for DRA7 ATL (Audio Tracking Logic)")
    Fixes: 660e155 ("clk: ti: dra7-atl-clock: Fix of_node reference counting")
    Cc: Peter Ujfalusi <[email protected]>
    Signed-off-by: Johan Hovold <[email protected]>
    Acked-by: Peter Ujfalusi <[email protected]>
    Signed-off-by: Stephen Boyd <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhovold authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8a42130 View commit details
    Browse the repository at this point in the history
  65. libnvdimm, pfn: make 'resource' attribute only readable by root

    commit 26417ae upstream.
    
    For the same reason that /proc/iomem returns 0's for non-root readers
    and acpi tables are root-only, make the 'resource' attribute for pfn
    devices only readable by root. Otherwise we disclose physical address
    information.
    
    Fixes: f6ed58c ("libnvdimm, pfn: 'resource'-address and 'size'...")
    Reported-by: Dave Hansen <[email protected]>
    Signed-off-by: Dan Williams <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    djbw authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    2224973 View commit details
    Browse the repository at this point in the history
  66. libnvdimm, namespace: fix label initialization to use valid seq numbers

    commit b18d4b8 upstream.
    
    The set of valid sequence numbers is {1,2,3}. The specification
    indicates that an implementation should consider 0 a sign of a critical
    error:
    
        UEFI 2.7: 13.19 NVDIMM Label Protocol
    
        Software never writes the sequence number 00, so a correctly
        check-summed Index Block with this sequence number probably indicates a
        critical error. When software discovers this case it treats it as an
        invalid Index Block indication.
    
    While the expectation is that the invalid block is just thrown away, the
    Robustness Principle says we should fix this to make both sequence
    numbers valid.
    
    Fixes: f524bf2 ("libnvdimm: write pmem label set")
    Reported-by: Juston Li <[email protected]>
    Signed-off-by: Dan Williams <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    djbw authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    6e83c89 View commit details
    Browse the repository at this point in the history
  67. libnvdimm, namespace: make 'resource' attribute only readable by root

    commit c1fb354 upstream.
    
    For the same reason that /proc/iomem returns 0's for non-root readers
    and acpi tables are root-only, make the 'resource' attribute for
    namespace devices only readable by root. Otherwise we disclose physical
    address information.
    
    Fixes: bf9bccc ("libnvdimm: pmem label sets and namespace instantiation")
    Reported-by: Dave Hansen <[email protected]>
    Signed-off-by: Dan Williams <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    djbw authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    194eb4a View commit details
    Browse the repository at this point in the history
  68. IB/srpt: Do not accept invalid initiator port names

    commit c70ca38 upstream.
    
    Make srpt_parse_i_port_id() return a negative value if hex2bin()
    fails.
    
    Fixes: commit a42d985 ("ib_srpt: Initial SRP Target merge for v3.3-rc1")
    Signed-off-by: Bart Van Assche <[email protected]>
    Signed-off-by: Doug Ledford <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    KAGA-KOKO authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8105ea3 View commit details
    Browse the repository at this point in the history
  69. IB/srp: Avoid that a cable pull can trigger a kernel crash

    commit 8a0d18c upstream.
    
    This patch fixes the following kernel crash:
    
    general protection fault: 0000 [Freescale#1] PREEMPT SMP
    Workqueue: ib_mad2 timeout_sends [ib_core]
    Call Trace:
     ib_sa_path_rec_callback+0x1c4/0x1d0 [ib_core]
     send_handler+0xb2/0xd0 [ib_core]
     timeout_sends+0x14d/0x220 [ib_core]
     process_one_work+0x200/0x630
     worker_thread+0x4e/0x3b0
     kthread+0x113/0x150
    
    Fixes: commit aef9ec3 ("IB: Add SCSI RDMA Protocol (SRP) initiator")
    Signed-off-by: Bart Van Assche <[email protected]>
    Reviewed-by: Sagi Grimberg <[email protected]>
    Signed-off-by: Doug Ledford <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    KAGA-KOKO authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    a027c5e View commit details
    Browse the repository at this point in the history
  70. NFC: fix device-allocation error return

    commit c45e3e4 upstream.
    
    A recent change fixing NFC device allocation itself introduced an
    error-handling bug by returning an error pointer in case device-id
    allocation failed. This is clearly broken as the callers still expected
    NULL to be returned on errors as detected by Dan's static checker.
    
    Fix this up by returning NULL in the event that we've run out of memory
    when allocating a new device id.
    
    Note that the offending commit is marked for stable (3.8) so this fix
    needs to be backported along with it.
    
    Fixes: 20777bc ("NFC: fix broken device allocation")
    Reported-by: Dan Carpenter <[email protected]>
    Signed-off-by: Johan Hovold <[email protected]>
    Signed-off-by: Samuel Ortiz <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhovold authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    12d7b50 View commit details
    Browse the repository at this point in the history
  71. i40e: Use smp_rmb rather than read_barrier_depends

    commit 52c6912 upstream.
    
    The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with i40e as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.
    
    Signed-off-by: Brian King <[email protected]>
    Acked-by: Jesse Brandeburg <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bjking1 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    e45d7db View commit details
    Browse the repository at this point in the history
  72. igb: Use smp_rmb rather than read_barrier_depends

    commit c4cb991 upstream.
    
    The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with igb as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.
    
    Signed-off-by: Brian King <[email protected]>
    Acked-by: Jesse Brandeburg <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bjking1 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    34b6b00 View commit details
    Browse the repository at this point in the history
  73. igbvf: Use smp_rmb rather than read_barrier_depends

    commit 1e1f9ca upstream.
    
    The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with igbvf as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.
    
    Signed-off-by: Brian King <[email protected]>
    Acked-by: Jesse Brandeburg <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bjking1 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    9213061 View commit details
    Browse the repository at this point in the history
  74. ixgbevf: Use smp_rmb rather than read_barrier_depends

    commit ae0c585 upstream.
    
    The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with ixgbevf as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.
    
    Signed-off-by: Brian King <[email protected]>
    Acked-by: Jesse Brandeburg <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bjking1 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    08a3d59 View commit details
    Browse the repository at this point in the history
  75. i40evf: Use smp_rmb rather than read_barrier_depends

    commit f72271e upstream.
    
    The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with i40evf as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.
    
    Signed-off-by: Brian King <[email protected]>
    Acked-by: Jesse Brandeburg <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bjking1 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8f76e54 View commit details
    Browse the repository at this point in the history
  76. fm10k: Use smp_rmb rather than read_barrier_depends

    commit 7b8edcc upstream.
    
    The original issue being fixed in this patch was seen with the ixgbe
    driver, but the same issue exists with fm10k as well, as the code is
    very similar. read_barrier_depends is not sufficient to ensure
    loads following it are not speculatively loaded out of order
    by the CPU, which can result in stale data being loaded, causing
    potential system crashes.
    
    Signed-off-by: Brian King <[email protected]>
    Acked-by: Jesse Brandeburg <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bjking1 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    f1db34a View commit details
    Browse the repository at this point in the history
  77. ixgbe: Fix skb list corruption on Power systems

    commit 0a9a17e upstream.
    
    This patch fixes an issue seen on Power systems with ixgbe which results
    in skb list corruption and an eventual kernel oops. The following is what
    was observed:
    
    CPU 1                                   CPU2
    ============================            ============================
    1: ixgbe_xmit_frame_ring                ixgbe_clean_tx_irq
    2:  first->skb = skb                     eop_desc = tx_buffer->next_to_watch
    3:  ixgbe_tx_map                         read_barrier_depends()
    4:   wmb                                 check adapter written status bit
    5:   first->next_to_watch = tx_desc      napi_consume_skb(tx_buffer->skb ..);
    6:   writel(i, tx_ring->tail);
    
    The read_barrier_depends is insufficient to ensure that tx_buffer->skb does not
    get loaded prior to tx_buffer->next_to_watch, which then results in loading
    a stale skb pointer. This patch replaces the read_barrier_depends with
    smp_rmb to ensure loads are ordered with respect to the load of
    tx_buffer->next_to_watch.
    
    Signed-off-by: Brian King <[email protected]>
    Acked-by: Jesse Brandeburg <[email protected]>
    Tested-by: Andrew Bowers <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bjking1 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    18285b2 View commit details
    Browse the repository at this point in the history
  78. parisc: Fix validity check of pointer size argument in new CAS implem…

    …entation
    
    commit 05f016d upstream.
    
    As noted by Christoph Biedl, passing a pointer size of 4 in the new CAS
    implementation causes a kernel crash.  The attached patch corrects the
    off by one error in the argument validity check.
    
    In reviewing the code, I noticed that we only perform word operations
    with the pointer size argument.  The subi instruction intentionally uses
    a word condition on 64-bit kernels.  Nullification was used instead of a
    cmpib instruction as the branch should never be taken.  The shlw
    pseudo-operation generates a depw,z instruction and it clears the target
    before doing a shift left word deposit.  Thus, we don't need to clip the
    upper 32 bits of this argument on 64-bit kernels.
    
    Tested with a gcc testsuite run with a 64-bit kernel.  The gcc atomic
    code in libgcc is the only direct user of the new CAS implementation
    that I am aware of.
    
    Signed-off-by: John David Anglin <[email protected]>
    Signed-off-by: Helge Deller <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    danglin44 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    03d1bba View commit details
    Browse the repository at this point in the history
  79. powerpc/signal: Properly handle return value from uprobe_deny_signal()

    commit 46725b1 upstream.
    
    When a uprobe is installed on an instruction that we currently do not
    emulate, we copy the instruction into a xol buffer and single step
    that instruction. If that instruction generates a fault, we abort the
    single stepping before invoking the signal handler. Once the signal
    handler is done, the uprobe trap is hit again since the instruction is
    retried and the process repeats.
    
    We use uprobe_deny_signal() to detect if the xol instruction triggered
    a signal. If so, we clear TIF_SIGPENDING and set TIF_UPROBE so that the
    signal is not handled until after the single stepping is aborted. In
    this case, uprobe_deny_signal() returns true and get_signal() ends up
    returning 0. However, in do_signal(), we are not looking at the return
    value, but depending on ksig.sig for further action, all with an
    uninitialized ksig that is not touched in this scenario. Fix the same
    by initializing ksig.sig to 0.
    
    Fixes: 129b69d ("powerpc: Use get_signal() signal_setup_done()")
    Reported-by: Anton Blanchard <[email protected]>
    Signed-off-by: Naveen N. Rao <[email protected]>
    Signed-off-by: Michael Ellerman <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    rnav authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    6d6ff7d View commit details
    Browse the repository at this point in the history
  80. media: Don't do DMA on stack for firmware upload in the AS102 driver

    commit b3120d2 upstream.
    
    Firmware load on AS102 is using the stack which is not allowed any
    longer. We currently fail with:
    
    kernel: transfer buffer not dma capable
    kernel: ------------[ cut here ]------------
    kernel: WARNING: CPU: 0 PID: 598 at drivers/usb/core/hcd.c:1595 usb_hcd_map_urb_for_dma+0x41d/0x620
    kernel: Modules linked in: amd64_edac_mod(-) edac_mce_amd as102_fe dvb_as102(+) kvm_amd kvm snd_hda_codec_realtek dvb_core snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel snd_hda_codec irqbypass crct10dif_pclmul crc32_pclmul snd_hda_core snd_hwdep snd_seq ghash_clmulni_intel sp5100_tco fam15h_power wmi k10temp i2c_piix4 snd_seq_device snd_pcm snd_timer parport_pc parport tpm_infineon snd tpm_tis soundcore tpm_tis_core tpm shpchp acpi_cpufreq xfs libcrc32c amdgpu amdkfd amd_iommu_v2 radeon hid_logitech_hidpp i2c_algo_bit drm_kms_helper crc32c_intel ttm drm r8169 mii hid_logitech_dj
    kernel: CPU: 0 PID: 598 Comm: systemd-udevd Not tainted 4.13.10-200.fc26.x86_64 Freescale#1
    kernel: Hardware name: ASUS All Series/AM1I-A, BIOS 0505 03/13/2014
    kernel: task: ffff979933b24c80 task.stack: ffffaf83413a4000
    kernel: RIP: 0010:usb_hcd_map_urb_for_dma+0x41d/0x620
    systemd-fsck[659]: /dev/sda2: clean, 49/128016 files, 268609/512000 blocks
    kernel: RSP: 0018:ffffaf83413a7728 EFLAGS: 00010282
    systemd-udevd[604]: link_config: autonegotiation is unset or enabled, the speed and duplex are not writable.
    kernel: RAX: 000000000000001f RBX: ffff979930bce780 RCX: 0000000000000000
    kernel: RDX: 0000000000000000 RSI: ffff97993ec0e118 RDI: ffff97993ec0e118
    kernel: RBP: ffffaf83413a7768 R08: 000000000000039a R09: 0000000000000000
    kernel: R10: 0000000000000001 R11: 00000000ffffffff R12: 00000000fffffff5
    kernel: R13: 0000000001400000 R14: 0000000000000001 R15: ffff979930806800
    kernel: FS:  00007effaca5c8c0(0000) GS:ffff97993ec00000(0000) knlGS:0000000000000000
    kernel: CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    kernel: CR2: 00007effa9fca962 CR3: 0000000233089000 CR4: 00000000000406f0
    kernel: Call Trace:
    kernel:  usb_hcd_submit_urb+0x493/0xb40
    kernel:  ? page_cache_tree_insert+0x100/0x100
    kernel:  ? xfs_iunlock+0xd5/0x100 [xfs]
    kernel:  ? xfs_file_buffered_aio_read+0x57/0xc0 [xfs]
    kernel:  usb_submit_urb+0x22d/0x560
    kernel:  usb_start_wait_urb+0x6e/0x180
    kernel:  usb_bulk_msg+0xb8/0x160
    kernel:  as102_send_ep1+0x49/0xe0 [dvb_as102]
    kernel:  ? devres_add+0x3f/0x50
    kernel:  as102_firmware_upload.isra.0+0x1dc/0x210 [dvb_as102]
    kernel:  as102_fw_upload+0xb6/0x1f0 [dvb_as102]
    kernel:  as102_dvb_register+0x2af/0x2d0 [dvb_as102]
    kernel:  as102_usb_probe+0x1f3/0x260 [dvb_as102]
    kernel:  usb_probe_interface+0x124/0x300
    kernel:  driver_probe_device+0x2ff/0x450
    kernel:  __driver_attach+0xa4/0xe0
    kernel:  ? driver_probe_device+0x450/0x450
    kernel:  bus_for_each_dev+0x6e/0xb0
    kernel:  driver_attach+0x1e/0x20
    kernel:  bus_add_driver+0x1c7/0x270
    kernel:  driver_register+0x60/0xe0
    kernel:  usb_register_driver+0x81/0x150
    kernel:  ? 0xffffffffc0807000
    kernel:  as102_usb_driver_init+0x1e/0x1000 [dvb_as102]
    kernel:  do_one_initcall+0x50/0x190
    kernel:  ? __vunmap+0x81/0xb0
    kernel:  ? kfree+0x154/0x170
    kernel:  ? kmem_cache_alloc_trace+0x15f/0x1c0
    kernel:  ? do_init_module+0x27/0x1e9
    kernel:  do_init_module+0x5f/0x1e9
    kernel:  load_module+0x2602/0x2c30
    kernel:  SYSC_init_module+0x170/0x1a0
    kernel:  ? SYSC_init_module+0x170/0x1a0
    kernel:  SyS_init_module+0xe/0x10
    kernel:  do_syscall_64+0x67/0x140
    kernel:  entry_SYSCALL64_slow_path+0x25/0x25
    kernel: RIP: 0033:0x7effab6cf3ea
    kernel: RSP: 002b:00007fff5cfcbbc8 EFLAGS: 00000246 ORIG_RAX: 00000000000000af
    kernel: RAX: ffffffffffffffda RBX: 00005569e0b83760 RCX: 00007effab6cf3ea
    kernel: RDX: 00007effac2099c5 RSI: 0000000000009a13 RDI: 00005569e0b98c50
    kernel: RBP: 00007effac2099c5 R08: 00005569e0b83ed0 R09: 0000000000001d80
    kernel: R10: 00007effab98db00 R11: 0000000000000246 R12: 00005569e0b98c50
    kernel: R13: 00005569e0b81c60 R14: 0000000000020000 R15: 00005569dfadfdf7
    kernel: Code: 48 39 c8 73 30 80 3d 59 60 9d 00 00 41 bc f5 ff ff ff 0f 85 26 ff ff ff 48 c7 c7 b8 6b d0 92 c6 05 3f 60 9d 00 01 e8 24 3d ad ff <0f> ff 8b 53 64 e9 09 ff ff ff 65 48 8b 0c 25 00 d3 00 00 48 8b
    kernel: ---[ end trace c4cae366180e70ec ]---
    kernel: as10x_usb: error during firmware upload part1
    
    Let's allocate the the structure dynamically so we can get the firmware
    loaded correctly:
    [   14.243057] as10x_usb: firmware: as102_data1_st.hex loaded with success
    [   14.500777] as10x_usb: firmware: as102_data2_st.hex loaded with success
    
    Signed-off-by: Michele Baldessari <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mbaldessari authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    c451af3 View commit details
    Browse the repository at this point in the history
  81. media: rc: check for integer overflow

    commit 3e45067 upstream.
    
    The ioctl LIRC_SET_REC_TIMEOUT would set a timeout of 704ns if called
    with a timeout of 4294968us.
    
    Signed-off-by: Sean Young <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    seanyoung authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    bcd2dc9 View commit details
    Browse the repository at this point in the history
  82. cx231xx-cards: fix NULL-deref on missing association descriptor

    commit 6c3b047 upstream.
    
    Make sure to check that we actually have an Interface Association
    Descriptor before dereferencing it during probe to avoid dereferencing a
    NULL-pointer.
    
    Fixes: e0d3baf ("V4L/DVB (10954): Add cx231xx USB driver")
    Reported-by: Andrey Konovalov <[email protected]>
    Signed-off-by: Johan Hovold <[email protected]>
    Tested-by: Andrey Konovalov <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jhovold authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    38c043d View commit details
    Browse the repository at this point in the history
  83. media: v4l2-ctrl: Fix flags field on Control events

    commit 9cac9d2 upstream.
    
    VIDIOC_DQEVENT and VIDIOC_QUERY_EXT_CTRL should give the same output for
    the control flags field.
    
    This patch creates a new function user_flags(), that calculates the user
    exported flags value (which is different than the kernel internal flags
    structure). This function is then used by all the code that exports the
    internal flags to userspace.
    
    Reported-by: Dimitrios Katsaros <[email protected]>
    Signed-off-by: Ricardo Ribalda Delgado <[email protected]>
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ribalda authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    ab49c1d View commit details
    Browse the repository at this point in the history
  84. sched/rt: Simplify the IPI based RT balancing logic

    commit 4bdced5 upstream.
    
    When a CPU lowers its priority (schedules out a high priority task for a
    lower priority one), a check is made to see if any other CPU has overloaded
    RT tasks (more than one). It checks the rto_mask to determine this and if so
    it will request to pull one of those tasks to itself if the non running RT
    task is of higher priority than the new priority of the next task to run on
    the current CPU.
    
    When we deal with large number of CPUs, the original pull logic suffered
    from large lock contention on a single CPU run queue, which caused a huge
    latency across all CPUs. This was caused by only having one CPU having
    overloaded RT tasks and a bunch of other CPUs lowering their priority. To
    solve this issue, commit:
    
      b6366f0 ("sched/rt: Use IPI to trigger RT task push migration instead of pulling")
    
    changed the way to request a pull. Instead of grabbing the lock of the
    overloaded CPU's runqueue, it simply sent an IPI to that CPU to do the work.
    
    Although the IPI logic worked very well in removing the large latency build
    up, it still could suffer from a large number of IPIs being sent to a single
    CPU. On a 80 CPU box, I measured over 200us of processing IPIs. Worse yet,
    when I tested this on a 120 CPU box, with a stress test that had lots of
    RT tasks scheduling on all CPUs, it actually triggered the hard lockup
    detector! One CPU had so many IPIs sent to it, and due to the restart
    mechanism that is triggered when the source run queue has a priority status
    change, the CPU spent minutes! processing the IPIs.
    
    Thinking about this further, I realized there's no reason for each run queue
    to send its own IPI. As all CPUs with overloaded tasks must be scanned
    regardless if there's one or many CPUs lowering their priority, because
    there's no current way to find the CPU with the highest priority task that
    can schedule to one of these CPUs, there really only needs to be one IPI
    being sent around at a time.
    
    This greatly simplifies the code!
    
    The new approach is to have each root domain have its own irq work, as the
    rto_mask is per root domain. The root domain has the following fields
    attached to it:
    
      rto_push_work	 - the irq work to process each CPU set in rto_mask
      rto_lock	 - the lock to protect some of the other rto fields
      rto_loop_start - an atomic that keeps contention down on rto_lock
    		    the first CPU scheduling in a lower priority task
    		    is the one to kick off the process.
      rto_loop_next	 - an atomic that gets incremented for each CPU that
    		    schedules in a lower priority task.
      rto_loop	 - a variable protected by rto_lock that is used to
    		    compare against rto_loop_next
      rto_cpu	 - The cpu to send the next IPI to, also protected by
    		    the rto_lock.
    
    When a CPU schedules in a lower priority task and wants to make sure
    overloaded CPUs know about it. It increments the rto_loop_next. Then it
    atomically sets rto_loop_start with a cmpxchg. If the old value is not "0",
    then it is done, as another CPU is kicking off the IPI loop. If the old
    value is "0", then it will take the rto_lock to synchronize with a possible
    IPI being sent around to the overloaded CPUs.
    
    If rto_cpu is greater than or equal to nr_cpu_ids, then there's either no
    IPI being sent around, or one is about to finish. Then rto_cpu is set to the
    first CPU in rto_mask and an IPI is sent to that CPU. If there's no CPUs set
    in rto_mask, then there's nothing to be done.
    
    When the CPU receives the IPI, it will first try to push any RT tasks that is
    queued on the CPU but can't run because a higher priority RT task is
    currently running on that CPU.
    
    Then it takes the rto_lock and looks for the next CPU in the rto_mask. If it
    finds one, it simply sends an IPI to that CPU and the process continues.
    
    If there's no more CPUs in the rto_mask, then rto_loop is compared with
    rto_loop_next. If they match, everything is done and the process is over. If
    they do not match, then a CPU scheduled in a lower priority task as the IPI
    was being passed around, and the process needs to start again. The first CPU
    in rto_mask is sent the IPI.
    
    This change removes this duplication of work in the IPI logic, and greatly
    lowers the latency caused by the IPIs. This removed the lockup happening on
    the 120 CPU machine. It also simplifies the code tremendously. What else
    could anyone ask for?
    
    Thanks to Peter Zijlstra for simplifying the rto_loop_start atomic logic and
    supplying me with the rto_start_trylock() and rto_start_unlock() helper
    functions.
    
    Signed-off-by: Steven Rostedt (VMware) <[email protected]>
    Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
    Cc: Clark Williams <[email protected]>
    Cc: Daniel Bristot de Oliveira <[email protected]>
    Cc: John Kacur <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Mike Galbraith <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Scott Wood <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Link: http://lkml.kernel.org/r/[email protected]
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    rostedt authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    1c37ff7 View commit details
    Browse the repository at this point in the history
  85. fscrypt: lock mutex before checking for bounce page pool

    commit a0b3bc8 upstream.
    
    fscrypt_initialize(), which allocates the global bounce page pool when
    an encrypted file is first accessed, uses "double-checked locking" to
    try to avoid locking fscrypt_init_mutex.  However, it doesn't use any
    memory barriers, so it's theoretically possible for a thread to observe
    a bounce page pool which has not been fully initialized.  This is a
    classic bug with "double-checked locking".
    
    While "only a theoretical issue" in the latest kernel, in pre-4.8
    kernels the pointer that was checked was not even the last to be
    initialized, so it was easily possible for a crash (NULL pointer
    dereference) to happen.  This was changed only incidentally by the large
    refactor to use fs/crypto/.
    
    Solve both problems in a trivial way that can easily be backported: just
    always take the mutex.  It's theoretically less efficient, but it
    shouldn't be noticeable in practice as the mutex is only acquired very
    briefly once per encrypted file.
    
    Later I'd like to make this use a helper macro like DO_ONCE().  However,
    DO_ONCE() runs in atomic context, so we'd need to add a new macro that
    allows blocking.
    
    Signed-off-by: Eric Biggers <[email protected]>
    Signed-off-by: Theodore Ts'o <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    dc5f76e View commit details
    Browse the repository at this point in the history
  86. net/9p: Switch to wait_event_killable()

    commit 9523fea upstream.
    
    Because userspace gets Very Unhappy when calls like stat() and execve()
    return -EINTR on 9p filesystem mounts. For instance, when bash is
    looking in PATH for things to execute and some SIGCHLD interrupts
    stat(), bash can throw a spurious 'command not found' since it doesn't
    retry the stat().
    
    In practice, hitting the problem is rare and needs a really
    slow/bogged down 9p server.
    
    Signed-off-by: Tuomas Tynkkynen <[email protected]>
    Signed-off-by: Al Viro <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dezgeg authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8bd466c View commit details
    Browse the repository at this point in the history
  87. PM / OPP: Add missing of_node_put(np)

    commit 7978db3 upstream.
    
    The for_each_available_child_of_node() loop in _of_add_opp_table_v2()
    doesn't drop the reference to "np" on errors. Fix that.
    
    Fixes: 2746590 (PM / OPP: Add support to parse "operating-points-v2" bindings)
    Signed-off-by: Tobias Jordan <[email protected]>
    [ VK: Improved commit log. ]
    Signed-off-by: Viresh Kumar <[email protected]>
    Reviewed-by: Stephen Boyd <[email protected]>
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Tobias Jordan authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    2a39eae View commit details
    Browse the repository at this point in the history
  88. Revert "drm/i915: Do not rely on wm preservation for ILK watermarks"

    This reverts commit 7de6947 which is
    commit 8777b92 upstream.
    
    It was reported to cause flickering and other regressions.
    
    Reported-by: Rainer Fiebig <[email protected]>
    Cc: Maarten Lankhorst <[email protected]>
    Cc: Ville Syrjälä <[email protected]>
    Cc: Matt Roper <[email protected]>
    Cc: Rodrigo Vivi <[email protected]>
    Cc: Jani Nikula <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    
    reverted:
    gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    aa8f1ad View commit details
    Browse the repository at this point in the history
  89. e1000e: Fix error path in link detection

    commit c4c40e5 upstream.
    
    In case of error from e1e_rphy(), the loop will exit early and "success"
    will be set to true erroneously.
    
    Signed-off-by: Benjamin Poirier <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gobenji authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    11fd9f9 View commit details
    Browse the repository at this point in the history
  90. e1000e: Fix return value test

    commit d3509f8 upstream.
    
    All the helpers return -E1000_ERR_PHY.
    
    Signed-off-by: Benjamin Poirier <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gobenji authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    6cfa7de View commit details
    Browse the repository at this point in the history
  91. e1000e: Separate signaling for link check/link up

    commit 19110cf upstream.
    
    Lennart reported the following race condition:
    
    \ e1000_watchdog_task
        \ e1000e_has_link
            \ hw->mac.ops.check_for_link() === e1000e_check_for_copper_link
                /* link is up */
                mac->get_link_status = false;
    
                                /* interrupt */
                                \ e1000_msix_other
                                    hw->mac.get_link_status = true;
    
            link_active = !hw->mac.get_link_status
            /* link_active is false, wrongly */
    
    This problem arises because the single flag get_link_status is used to
    signal two different states: link status needs checking and link status is
    down.
    
    Avoid the problem by using the return value of .check_for_link to signal
    the link status to e1000e_has_link().
    
    Reported-by: Lennart Sorensen <[email protected]>
    Signed-off-by: Benjamin Poirier <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gobenji authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    c0bb20a View commit details
    Browse the repository at this point in the history
  92. e1000e: Avoid receiver overrun interrupt bursts

    commit 4aea7a5 upstream.
    
    When e1000e_poll() is not fast enough to keep up with incoming traffic, the
    adapter (when operating in msix mode) raises the Other interrupt to signal
    Receiver Overrun.
    
    This is a double problem because 1) at the moment e1000_msix_other()
    assumes that it is only called in case of Link Status Change and 2) if the
    condition persists, the interrupt is repeatedly raised again in quick
    succession.
    
    Ideally we would configure the Other interrupt to not be raised in case of
    receiver overrun but this doesn't seem possible on this adapter. Instead,
    we handle the first part of the problem by reverting to the practice of
    reading ICR in the other interrupt handler, like before commit 16ecba5
    ("e1000e: Do not read ICR in Other interrupt"). Thanks to commit
    0a8047a ("e1000e: Fix msi-x interrupt automask") which cleared IAME
    from CTRL_EXT, reading ICR doesn't interfere with RxQ0, TxQ0 interrupts
    anymore. We handle the second part of the problem by not re-enabling the
    Other interrupt right away when there is overrun. Instead, we wait until
    traffic subsides, napi polling mode is exited and interrupts are
    re-enabled.
    
    Reported-by: Lennart Sorensen <[email protected]>
    Fixes: 16ecba5 ("e1000e: Do not read ICR in Other interrupt")
    Signed-off-by: Benjamin Poirier <[email protected]>
    Tested-by: Aaron Brown <[email protected]>
    Signed-off-by: Jeff Kirsher <[email protected]>
    Signed-off-by: Amit Pundir <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gobenji authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    65ce358 View commit details
    Browse the repository at this point in the history
  93. RDS: make message size limit compliant with spec

    [ Upstream commit f9fb69a ]
    
    RDS support max message size as 1M but the code doesn't check this
    in all cases. Patch fixes it for RDMA & non-RDMA and RDS MR size
    and its enforced irrespective of underlying transport.
    
    Signed-off-by: Avinash Repaka <[email protected]>
    Signed-off-by: Santosh Shilimkar <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Avinash Repaka authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    aa85ae9 View commit details
    Browse the repository at this point in the history
  94. RDS: RDMA: return appropriate error on rdma map failures

    [ Upstream commit 584a827 ]
    
    The first message to a remote node should prompt a new
    connection even if it is RDMA operation. For RDMA operation
    the MR mapping can fail because connections is not yet up.
    
    Since the connection establishment is asynchronous,
    we make sure the map failure because of unavailable
    connection reach to the user by appropriate error code.
    Before returning to the user, lets trigger the connection
    so that its ready for the next retry.
    
    Signed-off-by: Santosh Shilimkar <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    SantoshShilimkar authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    5ba1957 View commit details
    Browse the repository at this point in the history
  95. RDS: RDMA: fix the ib_map_mr_sg_zbva() argument

    [ Upstream commit 3e56c2f ]
    
    Fixes warning: Using plain integer as NULL pointer
    
    Signed-off-by: Santosh Shilimkar <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    SantoshShilimkar authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    1d625bd View commit details
    Browse the repository at this point in the history
  96. PCI: Apply _HPX settings only to relevant devices

    [ Upstream commit 977509f ]
    
    Previously we didn't check the type of device before trying to apply Type 1
    (PCI-X) or Type 2 (PCIe) Setting Records from _HPX.
    
    We don't support PCI-X Setting Records, so this was harmless, but the
    warning was useless.
    
    We do support PCIe Setting Records, and we didn't check whether a device
    was PCIe before applying settings.  I don't think anything bad happened on
    non-PCIe devices because pcie_capability_clear_and_set_word(),
    pcie_cap_has_lnkctl(), etc., would fail before doing any harm.  But it's
    ugly to depend on those internals.
    
    Check the device type before attempting to apply Type 1 and Type 2 Setting
    Records (Type 0 records are applicable to PCI, PCI-X, and PCIe devices).
    
    A side benefit is that this prevents useless "not supported" warnings when
    a BIOS supplies a Type 1 (PCI-X) Setting Record and we try to apply it to
    every single device:
    
      pci 0000:00:00.0: PCI-X settings not supported
    
    After this patch, we'll get the warning only when a BIOS supplies a Type 1
    record and we have a PCI-X device to which it should be applied.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=187731
    Signed-off-by: Bjorn Helgaas <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bjorn-helgaas authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    b1a8a31 View commit details
    Browse the repository at this point in the history
  97. drm/sun4i: Fix a return value in case of error

    [ Upstream commit 0f0861e ]
    
    If 'sun4i_backend_drm_format_to_layer()' does not return 0, then 'val' is
    left unmodified.
    As it is not initialized either, the return value can be anything.
    
    It is likely that returning the error code was expected here.
    
    As the only caller of 'sun4i_backend_update_layer_formats()' does not check
    the return value, this fix is purely theorical.
    
    Signed-off-by: Christophe JAILLET <[email protected]>
    Signed-off-by: Maxime Ripard <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tititiou36 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    ef5760f View commit details
    Browse the repository at this point in the history
  98. clk: sunxi-ng: A31: Fix spdif clock register

    [ Upstream commit 7042125 ]
    
    As the SPDIF was rarely documented on the earlier Allwinner SoCs
    it was assumed that it had a similar clock register to the one
    described in the H3 User Manual.
    
    However this is not the case and it looks to shares the same setup
    as the I2S clock registers.
    
    Signed-off-by: Marcus Cooper <[email protected]>
    Signed-off-by: Maxime Ripard <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    codekipper authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    7084a27 View commit details
    Browse the repository at this point in the history
  99. clk: sunxi-ng: fix PLL_CPUX adjusting on A33

    [ Upstream commit 790d929 ]
    
    When adjusting PLL_CPUX on A33, the PLL is temporarily driven too high,
    and the system hangs.
    
    Add a notifier to avoid this situation by temporarily switching to a
    known stable 24 MHz oscillator.
    
    Signed-off-by: Icenowy Zheng <[email protected]>
    Signed-off-by: Maxime Ripard <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Icenowy authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    5732d69 View commit details
    Browse the repository at this point in the history
  100. dmaengine: zx: set DMA_CYCLIC cap_mask bit

    [ Upstream commit fc318d6 ]
    
    The zx_dma driver supports cyclic transfer mode.  Let's set DMA_CYCLIC
    cap_mask bit to make that clear, and avoid unnecessary failure when
    clients request channel via dma_request_chan_by_mask() with DMA_CYCLIC
    bit set in mask.
    
    Signed-off-by: Shawn Guo <[email protected]>
    Reviewed-by: Jun Nie <[email protected]>
    Signed-off-by: Vinod Koul <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    shawnguo2 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    e7918c6 View commit details
    Browse the repository at this point in the history
  101. fscrypt: use ENOKEY when file cannot be created w/o key

    [ Upstream commit 54475f5 ]
    
    As part of an effort to clean up fscrypt-related error codes, make
    attempting to create a file in an encrypted directory that hasn't been
    "unlocked" fail with ENOKEY.  Previously, several error codes were used
    for this case, including ENOENT, EACCES, and EPERM, and they were not
    consistent between and within filesystems.  ENOKEY is a better choice
    because it expresses that the failure is due to lacking the encryption
    key.  It also matches the error code returned when trying to open an
    encrypted regular file without the key.
    
    I am not aware of any users who might be relying on the previous
    inconsistent error codes, which were never documented anywhere.
    
    This failure case will be exercised by an xfstest.
    
    Signed-off-by: Eric Biggers <[email protected]>
    Signed-off-by: Theodore Ts'o <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d612bee View commit details
    Browse the repository at this point in the history
  102. fscrypt: use ENOTDIR when setting encryption policy on nondirectory

    [ Upstream commit dffd0cf ]
    
    As part of an effort to clean up fscrypt-related error codes, make
    FS_IOC_SET_ENCRYPTION_POLICY fail with ENOTDIR when the file descriptor
    does not refer to a directory.  This is more descriptive than EINVAL,
    which was ambiguous with some of the other error cases.
    
    I am not aware of any users who might be relying on the previous error
    code of EINVAL, which was never documented anywhere, and in some buggy
    kernels did not exist at all as the S_ISDIR() check was missing.
    
    This failure case will be exercised by an xfstest.
    
    Signed-off-by: Eric Biggers <[email protected]>
    Signed-off-by: Theodore Ts'o <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ebiggers authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d3d5e69 View commit details
    Browse the repository at this point in the history
  103. net: Allow IP_MULTICAST_IF to set index to L3 slave

    [ Upstream commit 7bb387c ]
    
    IP_MULTICAST_IF fails if sk_bound_dev_if is already set and the new index
    does not match it. e.g.,
    
        ntpd[15381]: setsockopt IP_MULTICAST_IF 192.168.1.23 fails: Invalid argument
    
    Relax the check in setsockopt to allow setting mc_index to an L3 slave if
    sk_bound_dev_if points to an L3 master.
    
    Make a similar change for IPv6. In this case change the device lookup to
    take the rcu_read_lock avoiding a refcnt. The rcu lock is also needed for
    the lookup of a potential L3 master device.
    
    This really only silences a setsockopt failure since uses of mc_index are
    secondary to sk_bound_dev_if if it is set. In both cases, if either index
    is an L3 slave or master, lookups are directed to the same FIB table so
    relaxing the check at setsockopt time causes no harm.
    
    Patch is based on a suggested change by Darwin for a problem noted in
    their code base.
    
    Suggested-by: Darwin Dingel <[email protected]>
    Signed-off-by: David Ahern <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    David Ahern authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    5c68a42 View commit details
    Browse the repository at this point in the history
  104. net: 3com: typhoon: typhoon_init_one: make return values more specific

    [ Upstream commit 6b6bbb5 ]
    
    In some cases the return value of a failing function is not being used
    and the function typhoon_init_one() returns another negative error code
    instead.
    
    Signed-off-by: Thomas Preisner <[email protected]>
    Signed-off-by: Milan Stephan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    preisi authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    03b497e View commit details
    Browse the repository at this point in the history
  105. net: 3com: typhoon: typhoon_init_one: fix incorrect return values

    [ Upstream commit 107fded ]
    
    In a few cases the err-variable is not set to a negative error code if a
    function call in typhoon_init_one() fails and thus 0 is returned
    instead.
    It may be better to set err to the appropriate negative error
    code before returning.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188841
    
    Reported-by: Pan Bian <[email protected]>
    Signed-off-by: Thomas Preisner <[email protected]>
    Signed-off-by: Milan Stephan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    preisi authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    c46e90b View commit details
    Browse the repository at this point in the history
  106. drm/armada: Fix compile fail

    [ Upstream commit 7357f89 ]
    
    I reported the include issue for tracepoints a while ago, but nothing
    seems to have happened. Now it bit us, since the drm_mm_print
    conversion was broken for armada. Fix it, so I can re-enable armada
    in the drm-misc build configs.
    
    v2: Rebase just the compile fix on top of Chris' build fix.
    
    Cc: Russell King <[email protected]>
    Cc: Chris Wilson <[email protected]>
    Acked: Chris Wilson <[email protected]>
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    danvet authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    82f260d View commit details
    Browse the repository at this point in the history
  107. rt2800: set minimum MPDU and PSDU lengths to sane values

    [ Upstream commit a51b896 ]
    
    Signed-off-by: Stanislaw Gruszka <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Stanislaw Gruszka authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    70beeba View commit details
    Browse the repository at this point in the history
  108. adm80211: return an error if adm8211_alloc_rings() fails

    [ Upstream commit c705a6b ]
    
    We accidentally return success when adm8211_alloc_rings() fails but we
    should preserve the error code.
    
    Fixes: cc0b88c ("[PATCH] Add adm8211 802.11b wireless driver")
    Signed-off-by: Dan Carpenter <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    b1d4d0e View commit details
    Browse the repository at this point in the history
  109. mwifiex: sdio: fix use after free issue for save_adapter

    [ Upstream commit 74c8719 ]
    
    If we have sdio work requests received when sdio card reset is
    happening, we may end up accessing older save_adapter pointer
    later which is already freed during card reset.
    This patch solves the problem by cancelling those pending requests.
    
    Signed-off-by: Amitkumar Karwar <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Amitkumar Karwar authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    5553271 View commit details
    Browse the repository at this point in the history
  110. ath10k: fix incorrect txpower set by P2P_DEVICE interface

    [ Upstream commit 88407be ]
    
    Ath10k reports the phy capability that supports P2P_DEVICE interface.
    
    When we use the P2P supported wpa_supplicant to start connection, it'll
    create two interfaces, one is wlan0 (vdev_id=0) and one is P2P_DEVICE
    p2p-dev-wlan0 which is for p2p control channel (vdev_id=1).
    
    	ath10k_pci mac vdev create 0 (add interface) type 2 subtype 0
    	ath10k_add_interface: vdev_id: 0, txpower: 0, bss_power: 0
    	...
    	ath10k_pci mac vdev create 1 (add interface) type 2 subtype 1
    	ath10k_add_interface: vdev_id: 1, txpower: 0, bss_power: 0
    
    And the txpower in per vif bss_conf will only be set to valid tx power when
    the interface is assigned with channel_ctx.
    
    But this P2P_DEVICE interface will never be used for any connection, so
    that the uninitialized bss_conf.txpower=0 is assinged to the
    arvif->txpower when interface created.
    
    Since the txpower configuration is firmware per physical interface.
    So the smallest txpower of all vifs will be the one limit the tx power
    of the physical device, that causing the low txpower issue on other
    active interfaces.
    
    	wlan0: Limiting TX power to 21 (24 - 3) dBm
    	ath10k_pci mac vdev_id 0 txpower 21
    	ath10k_mac_txpower_recalc: vdev_id: 1, txpower: 0
    	ath10k_mac_txpower_recalc: vdev_id: 0, txpower: 21
    	ath10k_pci mac txpower 0
    
    This issue only happens when we use the wpa_supplicant that supports
    P2P or if we use the iw tool to create the control P2P_DEVICE interface.
    
    Signed-off-by: Ryan Hsu <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    RyanHsu authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    77bc3e9 View commit details
    Browse the repository at this point in the history
  111. ath10k: ignore configuring the incorrect board_id

    [ Upstream commit d2e202c ]
    
    With command to get board_id from otp, in the case of following
    
      boot get otp board id result 0x00000000 board_id 0 chip_id 0
      boot using board name 'bus=pci,bmi-chip-id=0,bmi-board-id=0"
      ...
      failed to fetch board data for bus=pci,bmi-chip-id=0,bmi-board-id=0 from
      ath10k/QCA6174/hw3.0/board-2.bin
    
    The invalid board_id=0 will be used as index to search in the board-2.bin.
    
    Ignore the case with board_id=0, as it means the otp is not carrying
    the board id information.
    
    Signed-off-by: Ryan Hsu <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    RyanHsu authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    628aa81 View commit details
    Browse the repository at this point in the history
  112. ath10k: fix potential memory leak in ath10k_wmi_tlv_op_pull_fw_stats()

    [ Upstream commit 097e46d ]
    
    ath10k_wmi_tlv_op_pull_fw_stats() uses tb = ath10k_wmi_tlv_parse_alloc(...)
    function, which allocates memory. If any of the three error-paths are
    taken, this tb needs to be freed.
    
    Signed-off-by: Christian Lamparter <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    chunkeey authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    92a0b74 View commit details
    Browse the repository at this point in the history
  113. pinctrl: sirf: atlas7: Add missing 'of_node_put()'

    [ Upstream commit 7af355e ]
    
    Reference to 'sys2pci_np' should be dropped in all cases here, not only in
    error handling path.
    
    Signed-off-by: Christophe JAILLET <[email protected]>
    Signed-off-by: Linus Walleij <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    tititiou36 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    12ad985 View commit details
    Browse the repository at this point in the history
  114. bnxt_en: Set default completion ring for async events.

    [ Upstream commit 486b5c2 ]
    
    With the added support for the bnxt_re RDMA driver, both drivers can be
    allocating completion rings in any order.  The firmware does not know
    which completion ring should be receiving async events.  Add an
    extra step to tell firmware the completion ring number for receiving
    async events after bnxt_en allocates the completion rings.
    
    Signed-off-by: Michael Chan <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Michael Chan authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    36b5ff2 View commit details
    Browse the repository at this point in the history
  115. ath10k: set CTS protection VDEV param only if VDEV is up

    [ Upstream commit 7cfe045 ]
    
    The cts protection vdev parameter, in new QCA9377 TF2.0 firmware,
    requires bss peer to be created for the STATION vdev type.
    bss peer is being allocated by the firmware after vdev_start/_up commands.
    mac80211 may call the cts protection setup at any time, so the
    we needs to track the situation and defer the cts configuration
    to prevent firmware asserts, like below:
    
    [00]: 0x05020001 0x000015B3 0x0099ACE2 0x00955B31
    [04]: 0x0099ACE2 0x00060730 0x00000004 0x00000000
    [08]: 0x0044C754 0x00412C10 0x00000000 0x00409C54
    [12]: 0x00000009 0x00000000 0x00952F6C 0x00952F77
    [16]: 0x00952CC4 0x00910712 0x00000000 0x00000000
    [20]: 0x4099ACE2 0x0040E858 0x00421254 0x004127F4
    [24]: 0x8099B9B2 0x0040E8B8 0x00000000 0xC099ACE2
    [28]: 0x800B75CB 0x0040E8F8 0x00000007 0x00005008
    [32]: 0x809B048A 0x0040E958 0x00000010 0x00433B10
    [36]: 0x809AFBBC 0x0040E9A8 0x0042BB74 0x0042BBBC
    [40]: 0x8091D252 0x0040E9C8 0x0042BBBC 0x00000001
    [44]: 0x809FFA45 0x0040EA78 0x0043D3E4 0x0042C2C8
    [48]: 0x809FCEF4 0x0040EA98 0x0043D3E4 0x00000001
    [52]: 0x80911210 0x0040EAE8 0x00000010 0x004041D0
    [56]: 0x80911154 0x0040EB28 0x00400000 0x00000000
    
    Signed-off-by: Bartosz Markowski <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Bartosz Markowski authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    83e48fc View commit details
    Browse the repository at this point in the history
  116. ALSA: hda - Apply ALC269_FIXUP_NO_SHUTUP on HDA_FIXUP_ACT_PROBE

    [ Upstream commit 972aa2c ]
    
    Setting shutup when the action is HDA_FIXUP_ACT_PRE_PROBE might
    not have the desired effect since it could be overridden by
    another more generic shutup function. Prevent this by setting
    the more specific shutup function on HDA_FIXUP_ACT_PROBE.
    
    Signed-off-by: Gabriele Mazzotta <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gm-vm authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d47162b View commit details
    Browse the repository at this point in the history
  117. gpio: mockup: dynamically allocate memory for chip name

    [ Upstream commit ad6d800 ]
    
    Currently the chip name buffer is allocated on the stack and the
    address of the buffer is passed to the gpio framework. It's invalid
    after probe() returns, so the sysfs label attribute displays garbage.
    
    Use devm_kasprintf() for each string instead.
    
    Signed-off-by: Bartosz Golaszewski <[email protected]>
    Signed-off-by: Linus Walleij <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    brgl authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    86aa023 View commit details
    Browse the repository at this point in the history
  118. drm: Apply range restriction after color adjustment when allocation

    [ Upstream commit 3db9375 ]
    
    mm->color_adjust() compares the hole with its neighbouring nodes. They
    only abutt before we restrict the hole, so we have to apply color_adjust
    before we apply the range restriction.
    
    Signed-off-by: Chris Wilson <[email protected]>
    Reviewed-by: Joonas Lahtinen <[email protected]>
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ickle authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d20e8c8 View commit details
    Browse the repository at this point in the history
  119. clk: qcom: ipq4019: Add all the frequencies for apss cpu

    [ Upstream commit 86c654d ]
    
    The APSS CPU clock does not contain all the frequencies in its
    frequency table so this patch adds the same.
    
    Signed-off-by: Abhishek Sahu <[email protected]>
    Signed-off-by: Stephen Boyd <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Abhishek Sahu authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    352d106 View commit details
    Browse the repository at this point in the history
  120. drm/mediatek: don't use drm_put_dev

    [ Upstream commit ae9d2da ]
    
    fsl is already fully demidlayered in the probe function, but for
    convenience stuck with drm_put_dev. Call the unregister/unref parts
    separately, to make sure this driver works correct.
    
    Cc: Philipp Zabel <[email protected]>
    Cc: CK Hu <[email protected]>
    Reviewed-by: Lucas Stach <[email protected]>
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: http://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    danvet authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8068342 View commit details
    Browse the repository at this point in the history
  121. mac80211: Remove invalid flag operations in mesh TSF synchronization

    [ Upstream commit 76f43b4 ]
    
    mesh_sync_offset_adjust_tbtt() implements Extensible synchronization
    framework ([1] 13.13.2 Extensible synchronization framework). It shall
    not operate the flag "TBTT Adjusting subfield" ([1] 8.4.2.100.8 Mesh
    Capability), since it is used only for MBCA ([1] 13.13.4 Mesh beacon
    collision avoidance, see 13.13.4.4.3 TBTT scanning and adjustment
    procedures for detail). So this patch remove the flag operations.
    
    [1] IEEE Std 802.11 2012
    
    Signed-off-by: Masashi Honma <[email protected]>
    [remove adjusting_tbtt entirely, since it's now unused]
    Signed-off-by: Johannes Berg <[email protected]>
    
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    masap authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    d21e50a View commit details
    Browse the repository at this point in the history
  122. mac80211: Suppress NEW_PEER_CANDIDATE event if no room

    [ Upstream commit 11197d0 ]
    
    Previously, kernel sends NEW_PEER_CANDIDATE event to user land even if
    the found peer does not have any room to accept other peer. This causes
    continuous connection trials.
    
    Signed-off-by: Masashi Honma <[email protected]>
    Signed-off-by: Johannes Berg <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    masap authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    26b6ab5 View commit details
    Browse the repository at this point in the history
  123. adm80211: add checks for dma mapping errors

    [ Upstream commit d15697d ]
    
    The driver does not check if mapping dma memory succeed.
    The patch adds the checks and failure handling.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Signed-off-by: Alexey Khoroshilov <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    khoroshilov authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    47d1382 View commit details
    Browse the repository at this point in the history
  124. iio: light: fix improper return value

    [ Upstream commit db4e537 ]
    
    In function cm3232_reg_init(), it returns 0 even if the last call to
    i2c_smbus_write_byte_data() returns a negative value (indicates error).
    As a result, the return value may be inconsistent with the execution
    status, and the caller of cm3232_reg_init() will not be able to detect
    the error. This patch fixes the bug.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188641
    
    Signed-off-by: Pan Bian <[email protected]>
    Signed-off-by: Jonathan Cameron <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    SinkFinder authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    98dcbb9 View commit details
    Browse the repository at this point in the history
  125. staging: iio: cdc: fix improper return value

    [ Upstream commit 91ca1a8 ]
    
    At the end of function ad7150_write_event_config(), directly returns 0.
    As a result, the errors will be ignored by the callers. It may be better
    to return variable "ret".
    
    Signed-off-by: Pan Bian <[email protected]>
    Signed-off-by: Jonathan Cameron <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    SinkFinder authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    ba7814b View commit details
    Browse the repository at this point in the history
  126. spi: SPI_FSL_DSPI should depend on HAS_DMA

    [ Upstream commit dadab2d ]
    
    If NO_DMA=y:
    
        ERROR: "bad_dma_ops" [drivers/spi/spi-fsl-dspi.ko] undefined!
    
    Add a dependency on HAS_DMA to fix this.
    
    Signed-off-by: Geert Uytterhoeven <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    geertu authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    5df7cff View commit details
    Browse the repository at this point in the history
  127. netfilter: nft_queue: use raw_smp_processor_id()

    [ Upstream commit c2e756f ]
    
    Using smp_processor_id() causes splats with PREEMPT_RCU:
    
    [19379.552780] BUG: using smp_processor_id() in preemptible [00000000] code: ping/32389
    [19379.552793] caller is debug_smp_processor_id+0x17/0x19
    [...]
    [19379.552823] Call Trace:
    [19379.552832]  [<ffffffff81274e9e>] dump_stack+0x67/0x90
    [19379.552837]  [<ffffffff8129a4d4>] check_preemption_disabled+0xe5/0xf5
    [19379.552842]  [<ffffffff8129a4fb>] debug_smp_processor_id+0x17/0x19
    [19379.552849]  [<ffffffffa07c42dd>] nft_queue_eval+0x35/0x20c [nft_queue]
    
    No need to disable preemption since we only fetch the numeric value, so
    let's use raw_smp_processor_id() instead.
    
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ummakynes authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    ea13fd4 View commit details
    Browse the repository at this point in the history
  128. netfilter: nf_tables: fix oob access

    [ Upstream commit 3e38df1 ]
    
    BUG: KASAN: slab-out-of-bounds in nf_tables_rule_destroy+0xf1/0x130 at addr ffff88006a4c35c8
    Read of size 8 by task nft/1607
    
    When we've destroyed last valid expr, nft_expr_next() returns an invalid expr.
    We must not dereference it unless it passes != nft_expr_last() check.
    
    Signed-off-by: Florian Westphal <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Florian Westphal authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    0117c75 View commit details
    Browse the repository at this point in the history
  129. ASoC: rsnd: don't double free kctrl

    [ Upstream commit 0ea617a ]
    
    On an error, snd_ctl_add already free's kctrl, so calling snd_ctl_free_one
    to free it again leads to a double free error.  Fix this by removing
    the extraneous snd_ctl_free_one call.
    
    Issue found using static analysis with CoverityScan, CID 1372908
    
    Signed-off-by: Colin Ian King <[email protected]>
    Acked-by: Kuninori Morimoto <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Colin Ian King authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    0e11f7e View commit details
    Browse the repository at this point in the history
  130. crypto: marvell - Copy IVDIG before launching partial DMA ahash requests

    [ Upstream commit 8759fec ]
    
    Currently, inner IV/DIGEST data are only copied once into the hash
    engines and not set explicitly before launching a request that is not a
    first frag. This is an issue especially when multiple ahash reqs are
    computed in parallel or chained with cipher request, as the state of the
    request being computed is not updated into the hash engine. It leads to
    non-deterministic corrupted digest results.
    
    Fixes: commit 2786cee ("crypto: marvell - Move SRAM I/O operations to step functions")
    Signed-off-by: Romain Perier <[email protected]>
    Acked-by: Boris Brezillon <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Herbert Xu <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Romain Perier authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    bdc2571 View commit details
    Browse the repository at this point in the history
  131. btrfs: return the actual error value from from btrfs_uuid_tree_iterate

    [ Upstream commit 73ba39a ]
    
    In function btrfs_uuid_tree_iterate(), errno is assigned to variable ret
    on errors. However, it directly returns 0. It may be better to return
    ret. This patch also removes the warning, because the caller already
    prints a warning.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188731
    Signed-off-by: Pan Bian <[email protected]>
    Reviewed-by: Omar Sandoval <[email protected]>
    [ edited subject ]
    Signed-off-by: David Sterba <[email protected]>
    
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    SinkFinder authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    79dec01 View commit details
    Browse the repository at this point in the history
  132. ASoC: wm_adsp: Don't overrun firmware file buffer when reading region…

    … data
    
    [ Upstream commit 1cab2a8 ]
    
    Protect against corrupt firmware files by ensuring that the length we
    get for the data in a region actually lies within the available firmware
    file data buffer.
    
    Signed-off-by: Richard Fitzgerald <[email protected]>
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Richard Fitzgerald authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    c6d800b View commit details
    Browse the repository at this point in the history
  133. s390/kbuild: enable modversions for symbols exported from asm

    [ Upstream commit cabab3f ]
    
    s390 version of commit 334bb77 ("x86/kbuild: enable modversions
    for symbols exported from asm") so we get also rid of all these
    warnings:
    
    WARNING: EXPORT symbol "_mcount" [vmlinux] version generation failed, symbol will not be versioned.
    WARNING: EXPORT symbol "memcpy" [vmlinux] version generation failed, symbol will not be versioned.
    WARNING: EXPORT symbol "memmove" [vmlinux] version generation failed, symbol will not be versioned.
    WARNING: EXPORT symbol "memset" [vmlinux] version generation failed, symbol will not be versioned.
    WARNING: EXPORT symbol "save_fpu_regs" [vmlinux] version generation failed, symbol will not be versioned.
    WARNING: EXPORT symbol "sie64a" [vmlinux] version generation failed, symbol will not be versioned.
    WARNING: EXPORT symbol "sie_exit" [vmlinux] version generation failed, symbol will not be versioned.
    
    Signed-off-by: Heiko Carstens <[email protected]>
    Signed-off-by: Martin Schwidefsky <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    heicarst authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    6c5bac3 View commit details
    Browse the repository at this point in the history
  134. cec: when canceling a message, don't overwrite old status info

    [ Upstream commit 1204761 ]
    
    When a pending message was canceled (e.g. due to a timeout), then the
    old tx_status info was overwritten instead of ORed. The same happened
    with the tx_error_cnt field. So just modify them instead of overwriting
    them.
    
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Hans Verkuil authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    9ade62c View commit details
    Browse the repository at this point in the history
  135. cec: CEC_MSG_GIVE_FEATURES should abort for CEC version < 2

    [ Upstream commit a24f56d ]
    
    This is a 2.0 only message, so it should return Feature Abort if the
    adapter is configured for CEC version 1.4.
    
    Right now it does nothing, which means that the sender will time out.
    
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Hans Verkuil authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    f635fd7 View commit details
    Browse the repository at this point in the history
  136. cec: update log_addr[] before finishing configuration

    [ Upstream commit 7af26f8 ]
    
    The loop that sets the unused logical addresses to INVALID should be
    done before 'configured' is set to true. This ensures that cec_log_addrs
    is consistent before it will be used.
    
    Signed-off-by: Hans Verkuil <[email protected]>
    Signed-off-by: Mauro Carvalho Chehab <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Hans Verkuil authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    fa6e02c View commit details
    Browse the repository at this point in the history
  137. nvmet: fix KATO offset in Set Features

    [ Upstream commit 6c73f94 ]
    
    The Set Features implementation for Keep Alive Timer was using the wrong
    structure when retrieving the KATO value; it was treating the Set
    Features command as a Property Set command.
    
    The NVMe spec defines the Keep Alive Timer feature as having one input
    in CDW11 (4 bytes at offset 44 in the command) whereas the code was
    reading 8 bytes at offset 48.
    
    Since the Linux NVMe over Fabrics host never sets this feature, this
    code has presumably never been tested.
    
    Signed-off-by: Daniel Verkamp <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    danielverkamp authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    82040f5 View commit details
    Browse the repository at this point in the history
  138. xen: xenbus driver must not accept invalid transaction ids

    [ Upstream commit 639b088 ]
    
    When accessing Xenstore in a transaction the user is specifying a
    transaction id which he normally obtained from Xenstore when starting
    the transaction. Xenstore is validating a transaction id against all
    known transaction ids of the connection the request came in. As all
    requests of a domain not being the one where Xenstore lives share
    one connection, validation of transaction ids of different users of
    Xenstore in that domain should be done by the kernel of that domain
    being the multiplexer between the Xenstore users in that domain and
    Xenstore.
    
    In order to prohibit one Xenstore user "hijacking" a transaction from
    another user the xenbus driver has to verify a given transaction id
    against all known transaction ids of the user before forwarding it to
    Xenstore.
    
    Signed-off-by: Juergen Gross <[email protected]>
    Reviewed-by: Boris Ostrovsky <[email protected]>
    Signed-off-by: Juergen Gross <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jgross1 authored and gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    e8cee9c View commit details
    Browse the repository at this point in the history
  139. Linux 4.9.66

    gregkh committed Nov 30, 2017
    Configuration menu
    Copy the full SHA
    8743ce3 View commit details
    Browse the repository at this point in the history

Commits on Dec 5, 2017

  1. ARM: dts: LogicPD Torpedo: Fix camera pin mux

    commit 56322e1 upstream.
    
    Fix commit 05c4ffc ("ARM: dts: LogicPD Torpedo: Add MT9P031 Support")
    In the previous commit, I indicated that the only testing was done by
    showing the camera showed up when probing.  This patch fixes an incorrect
    pin muxing on cam_d0, cam_d1 and cam_d2.
    
    Signed-off-by: Adam Ford <[email protected]>
    Signed-off-by: Tony Lindgren <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    aford173 authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    64e916d View commit details
    Browse the repository at this point in the history
  2. ARM: dts: omap3: logicpd-torpedo-37xx-devkit: Fix MMC1 cd-gpio

    commit b7ace5e upstream.
    
    Fixes commit 687c276 ("ARM: dts: Add minimal support for LogicPD
    Torpedo DM3730 devkit")
    
    This patch corrects an issue where the cd-gpios was improperly setup
    using IRQ_TYPE_LEVEL_LOW instead of GPIO_ACTIVE_LOW.
    
    Signed-off-by: Adam Ford <[email protected]>
    Signed-off-by: Tony Lindgren <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    aford173 authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    29bd700 View commit details
    Browse the repository at this point in the history
  3. mm, thp: Do not make page table dirty unconditionally in touch_p[mu]d()

    commit a8f9736 upstream.
    
    Currently, we unconditionally make page table dirty in touch_pmd().
    It may result in false-positive can_follow_write_pmd().
    
    We may avoid the situation, if we would only make the page table entry
    dirty if caller asks for write access -- FOLL_WRITE.
    
    The patch also changes touch_pud() in the same way.
    
    Signed-off-by: Kirill A. Shutemov <[email protected]>
    Cc: Michal Hocko <[email protected]>
    Cc: Hugh Dickins <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    [Salvatore Bonaccorso: backport for 4.9:
     - Adjust context
     - Drop specific part for PUD-sized transparent hugepages. Support
       for PUD-sized transparent hugepages was added in v4.11-rc1
    ]
    Signed-off-by: Ben Hutchings <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    kiryl authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    7031ae2 View commit details
    Browse the repository at this point in the history
  4. mm/cma: fix alloc_contig_range ret code/potential leak

    commit 63cd448 upstream.
    
    If the call __alloc_contig_migrate_range() in alloc_contig_range returns
    -EBUSY, processing continues so that test_pages_isolated() is called
    where there is a tracepoint to identify the busy pages.  However, it is
    possible for busy pages to become available between the calls to these
    two routines.  In this case, the range of pages may be allocated.
    Unfortunately, the original return code (ret == -EBUSY) is still set and
    returned to the caller.  Therefore, the caller believes the pages were
    not allocated and they are leaked.
    
    Update the comment to indicate that allocation is still possible even if
    __alloc_contig_migrate_range returns -EBUSY.  Also, clear return code in
    this case so that it is not accidentally used or returned to caller.
    
    Link: http://lkml.kernel.org/r/[email protected]
    Fixes: 8ef5849 ("mm/cma: always check which page caused allocation failure")
    Signed-off-by: Mike Kravetz <[email protected]>
    Acked-by: Vlastimil Babka <[email protected]>
    Acked-by: Michal Hocko <[email protected]>
    Acked-by: Johannes Weiner <[email protected]>
    Acked-by: Joonsoo Kim <[email protected]>
    Cc: Michal Nazarewicz <[email protected]>
    Cc: Laura Abbott <[email protected]>
    Cc: Michal Hocko <[email protected]>
    Cc: Mel Gorman <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    mjkravetz authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    436f19a View commit details
    Browse the repository at this point in the history
  5. mm, hugetlbfs: introduce ->split() to vm_operations_struct

    commit 31383c6 upstream.
    
    Patch series "device-dax: fix unaligned munmap handling"
    
    When device-dax is operating in huge-page mode we want it to behave like
    hugetlbfs and fail attempts to split vmas into unaligned ranges.  It
    would be messy to teach the munmap path about device-dax alignment
    constraints in the same (hstate) way that hugetlbfs communicates this
    constraint.  Instead, these patches introduce a new ->split() vm
    operation.
    
    This patch (of 2):
    
    The device-dax interface has similar constraints as hugetlbfs in that it
    requires the munmap path to unmap in huge page aligned units.  Rather
    than add more custom vma handling code in __split_vma() introduce a new
    vm operation to perform this vma specific check.
    
    Link: http://lkml.kernel.org/r/151130418135.4029.6783191281930729710.stgit@dwillia2-desk3.amr.corp.intel.com
    Fixes: dee4107 ("/dev/dax, core: file operations and dax-mmap")
    Signed-off-by: Dan Williams <[email protected]>
    Cc: Jeff Moyer <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    djbw authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    cebe139 View commit details
    Browse the repository at this point in the history
  6. mm/madvise.c: fix madvise() infinite loop under special circumstances

    commit 6ea8d95 upstream.
    
    MADVISE_WILLNEED has always been a noop for DAX (formerly XIP) mappings.
    Unfortunately madvise_willneed() doesn't communicate this information
    properly to the generic madvise syscall implementation.  The calling
    convention is quite subtle there.  madvise_vma() is supposed to either
    return an error or update &prev otherwise the main loop will never
    advance to the next vma and it will keep looping for ever without a way
    to get out of the kernel.
    
    It seems this has been broken since introduction.  Nobody has noticed
    because nobody seems to be using MADVISE_WILLNEED on these DAX mappings.
    
    [[email protected]: rewrite changelog]
    Link: http://lkml.kernel.org/r/[email protected]
    Fixes: fe77ba6 ("[PATCH] xip: madvice/fadvice: execute in place")
    Signed-off-by: chenjie <[email protected]>
    Signed-off-by: guoxuenan <[email protected]>
    Acked-by: Michal Hocko <[email protected]>
    Cc: Minchan Kim <[email protected]>
    Cc: zhangyi (F) <[email protected]>
    Cc: Miao Xie <[email protected]>
    Cc: Mike Rapoport <[email protected]>
    Cc: Shaohua Li <[email protected]>
    Cc: Andrea Arcangeli <[email protected]>
    Cc: Mel Gorman <[email protected]>
    Cc: Kirill A. Shutemov <[email protected]>
    Cc: David Rientjes <[email protected]>
    Cc: Anshuman Khandual <[email protected]>
    Cc: Rik van Riel <[email protected]>
    Cc: Carsten Otte <[email protected]>
    Cc: Dan Williams <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    chenjie authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    ba32d7d View commit details
    Browse the repository at this point in the history
  7. btrfs: clear space cache inode generation always

    commit 8e138e0 upstream.
    
    We discovered a box that had double allocations, and suspected the space
    cache may be to blame.  While auditing the write out path I noticed that
    if we've already setup the space cache we will just carry on.  This
    means that any error we hit after cache_save_setup before we go to
    actually write the cache out we won't reset the inode generation, so
    whatever was already written will be considered correct, except it'll be
    stale.  Fix this by _always_ resetting the generation on the block group
    inode, this way we only ever have valid or invalid cache.
    
    With this patch I was no longer able to reproduce cache corruption with
    dm-log-writes and my bpf error injection tool.
    
    Signed-off-by: Josef Bacik <[email protected]>
    Signed-off-by: David Sterba <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Josef Bacik authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    c251267 View commit details
    Browse the repository at this point in the history
  8. nfsd: Fix stateid races between OPEN and CLOSE

    commit 15ca08d upstream.
    
    Open file stateids can linger on the nfs4_file list of stateids even
    after they have been closed. In order to avoid reusing such a
    stateid, and confusing the client, we need to recheck the
    nfs4_stid's type after taking the mutex.
    Otherwise, we risk reusing an old stateid that was already closed,
    which will confuse clients that expect new stateids to conform to
    RFC7530 Sections 9.1.4.2 and 16.2.5 or RFC5661 Sections 8.2.2 and 18.2.4.
    
    Signed-off-by: Trond Myklebust <[email protected]>
    Signed-off-by: J. Bruce Fields <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    trondmypd authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    1c8ea41 View commit details
    Browse the repository at this point in the history
  9. nfsd: Fix another OPEN stateid race

    commit d8a1a00 upstream.
    
    If nfsd4_process_open2() is initialising a new stateid, and yet the
    call to nfs4_get_vfs_file() fails for some reason, then we must
    declare the stateid closed, and unhash it before dropping the mutex.
    
    Right now, we unhash the stateid after dropping the mutex, and without
    changing the stateid type, meaning that another OPEN could theoretically
    look it up and attempt to use it.
    
    Reported-by: Andrew W Elble <[email protected]>
    Signed-off-by: Trond Myklebust <[email protected]>
    Signed-off-by: J. Bruce Fields <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    trondmypd authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    1c40425 View commit details
    Browse the repository at this point in the history
  10. nfsd: fix panic in posix_unblock_lock called from nfs4_laundromat

    commit 64ebe12 upstream.
    
    From kernel 4.9, my two nfsv4 servers sometimes suffer from
        "panic: unable to handle kernel page request"
    in posix_unblock_lock() called from nfs4_laundromat().
    
    These panics diseappear if we revert the commit "nfsd: add a LRU list
    for blocked locks".
    
    The cause appears to be a typo in nfs4_laundromat(), which is also
    present in nfs4_state_shutdown_net().
    
    Fixes: 7919d0a "nfsd: add a LRU list for blocked locks"
    Cc: [email protected]
    Reveiwed-by: Jeff Layton <[email protected]>
    Signed-off-by: J. Bruce Fields <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    NaofumiHonda authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    aa1a6cf View commit details
    Browse the repository at this point in the history
  11. mfd: twl4030-power: Fix pmic for boards that need vmmc1 on reboot

    commit ad48ed0 upstream.
    
    At least two different omap3630/3730 boards booting from MMC1
    fail to reboot if the "ti,twl4030-power-idle-osc-off" or
    "ti,twl4030-power-idle" compatible flags are set.  This patch will
    keep the vmmc1 powered up during reboot allowing the bootloader
    to load.
    
    Signed-off-by: Adam Ford <[email protected]>
    Signed-off-by: Lee Jones <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    aford173 authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    dc554ab View commit details
    Browse the repository at this point in the history
  12. ARM: OMAP2+: Fix WL1283 Bluetooth Baud Rate

    commit a3ac350 upstream.
    
    Commit 485fa12 ("ARM: OMAP2+: LogicPD Torpedo + Wireless: Add Bluetooth")
    set the wrong baud rate for the UART. The Baud rate was 300,000 and it should
    be 3,000,000 for WL1283.
    
    Signed-off-by: Adam Ford <[email protected]>
    Signed-off-by: Tony Lindgren <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    aford173 authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    e18a963 View commit details
    Browse the repository at this point in the history
  13. KVM: x86: pvclock: Handle first-time write to pvclock-page contains r…

    …andom junk
    
    commit 51c4b8b upstream.
    
    When guest passes KVM it's pvclock-page GPA via WRMSR to
    MSR_KVM_SYSTEM_TIME / MSR_KVM_SYSTEM_TIME_NEW, KVM don't initialize
    pvclock-page to some start-values. It just requests a clock-update which
    will happen before entering to guest.
    
    The clock-update logic will call kvm_setup_pvclock_page() to update the
    pvclock-page with info. However, kvm_setup_pvclock_page() *wrongly*
    assumes that the version-field is initialized to an even number. This is
    wrong because at first-time write, field could be any-value.
    
    Fix simply makes sure that if first-time version-field is odd, increment
    it once more to make it even and only then start standard logic.
    This follows same logic as done in other pvclock shared-pages (See
    kvm_write_wall_clock() and record_steal_time()).
    
    Signed-off-by: Liran Alon <[email protected]>
    Reviewed-by: Nikita Leshenko <[email protected]>
    Reviewed-by: Konrad Rzeszutek Wilk <[email protected]>
    Signed-off-by: Konrad Rzeszutek Wilk <[email protected]>
    Reviewed-by: Paolo Bonzini <[email protected]>
    Signed-off-by: Radim Krčmář <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Liran Alon authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    f5477da View commit details
    Browse the repository at this point in the history
  14. KVM: x86: Exit to user-mode on #UD intercept when emulator requires

    commit 61cb57c upstream.
    
    Instruction emulation after trapping a #UD exception can result in an
    MMIO access, for example when emulating a MOVBE on a processor that
    doesn't support the instruction.  In this case, the #UD vmexit handler
    must exit to user mode, but there wasn't any code to do so.  Add it for
    both VMX and SVM.
    
    Signed-off-by: Liran Alon <[email protected]>
    Reviewed-by: Nikita Leshenko <[email protected]>
    Reviewed-by: Konrad Rzeszutek Wilk <[email protected]>
    Signed-off-by: Konrad Rzeszutek Wilk <[email protected]>
    Reviewed-by: Wanpeng Li <[email protected]>
    Reviewed-by: Paolo Bonzini <[email protected]>
    Signed-off-by: Radim Krčmář <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Liran Alon authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    c0a4c22 View commit details
    Browse the repository at this point in the history
  15. KVM: x86: inject exceptions produced by x86_decode_insn

    commit 6ea6e84 upstream.
    
    Sometimes, a processor might execute an instruction while another
    processor is updating the page tables for that instruction's code page,
    but before the TLB shootdown completes.  The interesting case happens
    if the page is in the TLB.
    
    In general, the processor will succeed in executing the instruction and
    nothing bad happens.  However, what if the instruction is an MMIO access?
    If *that* happens, KVM invokes the emulator, and the emulator gets the
    updated page tables.  If the update side had marked the code page as non
    present, the page table walk then will fail and so will x86_decode_insn.
    
    Unfortunately, even though kvm_fetch_guest_virt is correctly returning
    X86EMUL_PROPAGATE_FAULT, x86_decode_insn's caller treats the failure as
    a fatal error if the instruction cannot simply be reexecuted (as is the
    case for MMIO).  And this in fact happened sometimes when rebooting
    Windows 2012r2 guests.  Just checking ctxt->have_exception and injecting
    the exception if true is enough to fix the case.
    
    Thanks to Eduardo Habkost for helping in the debugging of this issue.
    
    Reported-by: Yanan Fu <[email protected]>
    Cc: Eduardo Habkost <[email protected]>
    Signed-off-by: Paolo Bonzini <[email protected]>
    Signed-off-by: Radim Krčmář <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    bonzini authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    6794552 View commit details
    Browse the repository at this point in the history
  16. KVM: lapic: Split out x2apic ldr calculation

    commit e872fa9 upstream.
    
    Split out the ldr calculation from kvm_apic_set_x2apic_id
    since we're about to reuse it in the following patch.
    
    Signed-off-by: Dr. David Alan Gilbert <[email protected]>
    Signed-off-by: Paolo Bonzini <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dagrh authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    e02746e View commit details
    Browse the repository at this point in the history
  17. KVM: lapic: Fixup LDR on load in x2apic

    commit 12806ba upstream.
    
    In x2apic mode the LDR is fixed based on the ID rather
    than separately loadable like it was before x2.
    When kvm_apic_set_state is called, the base is set, and if
    it has the X2APIC_ENABLE flag set then the LDR is calculated;
    however that value gets overwritten by the memcpy a few lines
    below overwriting it with the value that came from userland.
    
    The symptom is a lack of EOI after loading the state
    (e.g. after a QEMU migration) and is due to the EOI bitmap
    being wrong due to the incorrect LDR.  This was seen with
    a Win2016 guest under Qemu with irqchip=split whose USB mouse
    didn't work after a VM migration.
    
    This corresponds to RH bug:
      https://bugzilla.redhat.com/show_bug.cgi?id=1502591
    
    Reported-by: Yiqian Wei <[email protected]>
    Signed-off-by: Dr. David Alan Gilbert <[email protected]>
    [Applied fixup from Liran Alon. - Paolo]
    Signed-off-by: Paolo Bonzini <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    dagrh authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    9aad757 View commit details
    Browse the repository at this point in the history
  18. mmc: core: Do not leave the block driver in a suspended state

    commit ebe7dd4 upstream.
    
    The block driver must be resumed if the mmc bus fails to suspend the card.
    
    Signed-off-by: Adrian Hunter <[email protected]>
    Reviewed-by: Linus Walleij <[email protected]>
    Signed-off-by: Ulf Hansson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ahunter6 authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    0bf4d05 View commit details
    Browse the repository at this point in the history
  19. mmc: core: prepend 0x to OCR entry in sysfs

    commit c892b0d upstream.
    
    The sysfs entry "ocr" was missing the 0x prefix to identify it as hex
    formatted.
    
    Fixes: 5fb06af ("mmc: core: Extend sysfs with OCR register")
    Signed-off-by: Bastian Stender <[email protected]>
    [Ulf: Amended change to also cover SD-cards]
    Signed-off-by: Ulf Hansson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Bastian-Krause authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    c814d67 View commit details
    Browse the repository at this point in the history
  20. eeprom: at24: fix reading from 24MAC402/24MAC602

    commit 644a1f1 upstream.
    
    Chip datasheet mentions that word addresses other than the actual
    start position of the MAC delivers undefined results. So fix this.
    Current implementation doesn't work due to this wrong offset.
    
    Fixes: 0b81365 ("eeprom: at24: add support for at24mac series")
    Signed-off-by: Heiner Kallweit <[email protected]>
    Signed-off-by: Bartosz Golaszewski <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    hkallweit authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    388d8c9 View commit details
    Browse the repository at this point in the history
  21. eeprom: at24: correctly set the size for at24mac402

    commit 5478e47 upstream.
    
    There's an ilog2() expansion in AT24_DEVICE_MAGIC() which rounds down
    the actual size of EUI-48 byte array in at24mac402 eeproms to 4 from 6,
    making it impossible to read it all.
    
    Fix it by manually adjusting the value in probe().
    
    This patch contains a temporary fix that is suitable for stable
    branches. Eventually we'll probably remove the call to ilog2() while
    converting the magic values to actual structs.
    
    Fixes: 0b81365 ("eeprom: at24: add support for at24mac series")
    Signed-off-by: Bartosz Golaszewski <[email protected]>
    Reviewed-by: Andy Shevchenko <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    brgl authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    d3da2ef View commit details
    Browse the repository at this point in the history
  22. eeprom: at24: check at24_read/write arguments

    commit d9bcd46 upstream.
    
    So far we completely rely on the caller to provide valid arguments.
    To be on the safe side perform an own sanity check.
    
    Signed-off-by: Heiner Kallweit <[email protected]>
    Signed-off-by: Bartosz Golaszewski <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    hkallweit authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    19699ab View commit details
    Browse the repository at this point in the history
  23. i2c: i801: Fix Failed to allocate irq -2147483648 error

    commit 6e0c950 upstream.
    
    On Apollo Lake devices the BIOS does not set up IRQ routing for the i801
    SMBUS controller IRQ, so we end up with dev->irq set to IRQ_NOTCONNECTED.
    
    Detect this and do not try to use the irq in this case silencing:
    i801_smbus 0000:00:1f.1: Failed to allocate irq -2147483648: -107
    
    BugLink: https://communities.intel.com/thread/114759
    Signed-off-by: Hans de Goede <[email protected]>
    Reviewed-by: Jean Delvare <[email protected]>
    Signed-off-by: Wolfram Sang <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jwrdegoede authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    53cf83b View commit details
    Browse the repository at this point in the history
  24. bcache: Fix building error on MIPS

    commit cf33c1e upstream.
    
    This patch try to fix the building error on MIPS. The reason is MIPS
    has already defined the PTR macro, which conflicts with the PTR macro
    in include/uapi/linux/bcache.h.
    
    [fixed by mlyle: corrected a line-length issue]
    
    Signed-off-by: Huacai Chen <[email protected]>
    Reviewed-by: Michael Lyle <[email protected]>
    Signed-off-by: Michael Lyle <[email protected]>
    Signed-off-by: Jens Axboe <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    chenhuacai authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    8588eb0 View commit details
    Browse the repository at this point in the history
  25. hwmon: (jc42) optionally try to disable the SMBUS timeout

    commit 68615eb upstream.
    
    With a nxp,se97 chip on an atmel sama5d31 board, the I2C adapter driver
    is not always capable of avoiding the 25-35 ms timeout as specified by
    the SMBUS protocol. This may cause silent corruption of the last bit of
    any transfer, e.g. a one is read instead of a zero if the sensor chip
    times out. This also affects the eeprom half of the nxp-se97 chip, where
    this silent corruption was originally noticed. Other I2C adapters probably
    suffer similar issues, e.g. bit-banging comes to mind as risky...
    
    The SMBUS register in the nxp chip is not a standard Jedec register, but
    it is not special to the nxp chips either, at least the atmel chips
    have the same mechanism. Therefore, do not special case this on the
    manufacturer, it is opt-in via the device property anyway.
    
    Signed-off-by: Peter Rosin <[email protected]>
    Acked-by: Rob Herring <[email protected]>
    Signed-off-by: Guenter Roeck <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    peda-r authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    eafbee4 View commit details
    Browse the repository at this point in the history
  26. nvme-pci: add quirk for delay before CHK RDY for WDC SN200

    commit 8c97eec upstream.
    
    And increase the existing delay to cover this device as well.
    
    Signed-off-by: Jeff Lien <[email protected]>
    Signed-off-by: Christoph Hellwig <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    jeff-lien-wdc authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    f425b05 View commit details
    Browse the repository at this point in the history
  27. Revert "drm/radeon: dont switch vt on suspend"

    commit 18c437c upstream.
    
    Fixes distorted colors on some cards on resume from suspend.
    
    This reverts commit b9729b1.
    
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=98832
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=99163
    Bug: https://bugzilla.kernel.org/show_bug.cgi?id=107001
    Reviewed-by: Michel Dänzer <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    alexdeucher authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    b0f6338 View commit details
    Browse the repository at this point in the history
  28. drm/amdgpu: potential uninitialized variable in amdgpu_vce_ring_parse…

    …_cs()
    
    commit 40a9960 upstream.
    
    We shifted some code around in commit 9cca0b8 ("drm/amdgpu: move
    amdgpu_cs_sysvm_access_required into find_mapping") and now my static
    checker complains that "r" might not be initialized at the end of the
    function.  I've reviewed the code, and that seems possible, but it's
    also possible I may have missed something.
    
    Reviewed-by: Christian König <[email protected]>
    Signed-off-by: Dan Carpenter <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    d316675 View commit details
    Browse the repository at this point in the history
  29. drm/amdgpu: Potential uninitialized variable in amdgpu_vm_update_dire…

    …ctories()
    
    commit 78aa02c upstream.
    
    After commit ea09729 ("drm/amdgpu: rework page directory filling
    v2") then it becomes a lot harder to verify that "r" is initialized.  My
    static checker complains and so I've reviewed the code.  It does look
    like it might be buggy... Anyway, it doesn't hurt to set "r" to zero
    at the start.
    
    Reviewed-by: Christian König <[email protected]>
    Signed-off-by: Dan Carpenter <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Dan Carpenter authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    9cd48ba View commit details
    Browse the repository at this point in the history
  30. drm/radeon: fix atombios on big endian

    commit 4f626a4 upstream.
    
    The function for byteswapping the data send to/from atombios was buggy for
    num_bytes not divisible by four. The function must be aware of the fact
    that after byte-swapping the u32 units, valid bytes might end up after the
    num_bytes boundary.
    
    This patch was tested on kernel 3.12 and allowed us to sucesfully use
    DisplayPort on and Radeon SI card. Namely it fixed the link training and
    EDID readout.
    
    The function is patched both in radeon and amd drivers, since the functions
    and the fixes are identical.
    
    Signed-off-by: Roman Kapl <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Roman Kapl authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    3405805 View commit details
    Browse the repository at this point in the history
  31. drm/panel: simple: Add missing panel_simple_unprepare() calls

    commit f3621a8 upstream.
    
    During panel removal or system shutdown panel_simple_disable() is called
    which disables the panel backlight but the panel is still powered due to
    missing calls to panel_simple_unprepare().
    
    Fixes: d02fd93 ("drm/panel: simple - Disable panel on shutdown")
    Signed-off-by: Jonathan Liu <[email protected]>
    Signed-off-by: Thierry Reding <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    net147 authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    25abe3a View commit details
    Browse the repository at this point in the history
  32. drm/hisilicon: Ensure LDI regs are properly configured.

    commit a2f0424 upstream.
    
    This patch fixes the following soft lockup:
      BUG: soft lockup - CPU#0 stuck for 23s! [weston:307]
    
    On weston idle-timeout the IP is powered down and reset
    asserted. On weston resume we get a massive vblank
    IRQ storm due to the LDI registers having lost some state.
    
    This state loss is caused by ade_crtc_atomic_begin() not
    calling ade_ldi_set_mode(). With this patch applied
    resuming from Weston idle-timeout works well.
    
    Signed-off-by: Peter Griffin <[email protected]>
    Tested-by: John Stultz <[email protected]>
    Reviewed-by: Xinliang Liu <[email protected]>
    Signed-off-by: Xinliang Liu <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    petegriffin authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    44df87e View commit details
    Browse the repository at this point in the history
  33. drm/ttm: once more fix ttm_buffer_object_transfer

    commit 4d98e5e upstream.
    
    When the mutex is locked just in the moment we copy it we end up with a
    warning that we release a locked mutex.
    
    Fix this by properly reinitializing the mutex.
    
    Signed-off-by: Christian König <[email protected]>
    Reviewed-by: Alex Deucher <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    ChristianKoenigAMD authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    5b1c8c9 View commit details
    Browse the repository at this point in the history
  34. drm/amd/pp: fix typecast error in powerplay.

    commit 8d8258b upstream.
    
    resulted in unexpected data truncation
    
    Reviewed-by: Alex Deucher <[email protected]>
    Signed-off-by: Rex Zhu <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Rex Zhu authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    fb54127 View commit details
    Browse the repository at this point in the history
  35. Revert "x86/entry/64: Add missing irqflags tracing to native_load_gs_…

    …index()"
    
    This reverts commit 0d794d0 which is
    commit 0d794d0 upstream.
    
    Andy writes:
    
    	I think the thing to do is to revert the patch from -stable.
    	The bug it fixes is very minor, and the regression is that it
    	made a pre-existing bug in some nearly-undebuggable core resume
    	code much easier to hit.  I don't feel comfortable with a
    	backport of the latter fix until it has a good long soak in
    	Linus' tree.
    
    Reported-by: Andy Lutomirski <[email protected]>
    Cc: Borislav Petkov <[email protected]>
    Cc: Brian Gerst <[email protected]>
    Cc: Dave Hansen <[email protected]>
    Cc: Josh Poimboeuf <[email protected]>
    Cc: Linus Torvalds <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Cc: Thomas Gleixner <[email protected]>
    Cc: Ingo Molnar <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    a11ca51 View commit details
    Browse the repository at this point in the history
  36. NFS: revalidate "." etc correctly on "open".

    commit b688741 upstream.
    
    For correct close-to-open semantics, NFS must validate
    the change attribute of a directory (or file) on open.
    
    Since commit ecf3d1f ("vfs: kill FS_REVAL_DOT by adding a
    d_weak_revalidate dentry op"), open() of "." or a path ending ".." is
    not revalidated reliably (except when that direct is a mount point).
    
    Prior to that commit, "." was revalidated using nfs_lookup_revalidate()
    which checks the LOOKUP_OPEN flag and forces revalidation if the flag is
    set.
    Since that commit, nfs_weak_revalidate() is used for NFSv3 (which
    ignores the flags) and nothing is used for NFSv4.
    
    This is fixed by using nfs_lookup_verify_inode() in
    nfs_weak_revalidate().  This does the revalidation exactly when needed.
    Also, add a definition of .d_weak_revalidate for NFSv4.
    
    The incorrect behavior is easily demonstrated by running "echo *" in
    some non-mountpoint NFS directory while watching network traffic.
    Without this patch, "echo *" sometimes doesn't produce any traffic.
    With the patch it always does.
    
    Fixes: ecf3d1f ("vfs: kill FS_REVAL_DOT by adding a d_weak_revalidate dentry op")
    cc: [email protected] (3.9+)
    Signed-off-by: NeilBrown <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    NeilBrown authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    daf3a68 View commit details
    Browse the repository at this point in the history
  37. drm/i915: Don't try indexed reads to alternate slave addresses

    commit ae5c631 upstream.
    
    We can only specify the one slave address to indexed reads/writes.
    Make sure the messages we check are destined to the same slave
    address before deciding to do an indexed transfer.
    
    Cc: Daniel Kurtz <[email protected]>
    Cc: Chris Wilson <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: Sean Paul <[email protected]>
    Fixes: 56f9eac ("drm/i915/intel_i2c: use INDEX cycles for i2c read transactions")
    Signed-off-by: Ville Syrjälä <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Reviewed-by: Chris Wilson <[email protected]>
    (cherry picked from commit c4deb62)
    Signed-off-by: Joonas Lahtinen <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    vsyrjala authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    838cdb2 View commit details
    Browse the repository at this point in the history
  38. drm/i915: Prevent zero length "index" write

    commit 56350fb upstream.
    
    The hardware always writes one or two bytes in the index portion of
    an indexed transfer. Make sure the message we send as the index
    doesn't have a zero length.
    
    Cc: Daniel Kurtz <[email protected]>
    Cc: Chris Wilson <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: Sean Paul <[email protected]>
    Fixes: 56f9eac ("drm/i915/intel_i2c: use INDEX cycles for i2c read transactions")
    Signed-off-by: Ville Syrjälä <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Reviewed-by: Chris Wilson <[email protected]>
    (cherry picked from commit bb9e0d4)
    Signed-off-by: Joonas Lahtinen <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    vsyrjala authored and gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    f990312 View commit details
    Browse the repository at this point in the history
  39. Linux 4.9.67

    gregkh committed Dec 5, 2017
    Configuration menu
    Copy the full SHA
    284bbc7 View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2017

  1. Merge tag 'v4.9.67' into 4.9-1.0.x-imx-fixes-stable-merge

    This is the 4.9.67 stable release
    
    Resolved conflicts:
    	arch/arm/boot/dts/imx6sx-sdb.dts
    	drivers/dma/imx-sdma.c
    	drivers/mmc/core/host.c
    	drivers/usb/chipidea/otg.c
    	sound/soc/fsl/fsl_ssi.c
    
    This merge also reverts commit 3a654a8 ("dmaengine:
    imx-sdma - correct the dma transfer residue calculation"). The
    downstream kernel seems to use different structures and already
    use buf_ptail in its calculation.
    Stefan Agner committed Dec 13, 2017
    2 Configuration menu
    Copy the full SHA
    bc16130 View commit details
    Browse the repository at this point in the history