1. 13 Feb, 2018 7 commits
  2. 08 Feb, 2018 6 commits
    • Balbir Singh's avatar
      powerpc/mm/radix: Split linear mapping on hot-unplug · 4dd5f8a9
      Balbir Singh authored
      This patch splits the linear mapping if the hot-unplug range is
      smaller than the mapping size. The code detects if the mapping needs
      to be split into a smaller size and if so, uses the stop machine
      infrastructure to clear the existing mapping and then remap the
      remaining range using a smaller page size.
      
      The code will skip any region of the mapping that overlaps with kernel
      text and warn about it once. We don't want to remove a mapping where
      the kernel text and the LMB we intend to remove overlap in the same
      TLB mapping as it may affect the currently executing code.
      
      I've tested these changes under a kvm guest with 2 vcpus, from a split
      mapping point of view, some of the caveats mentioned above applied to
      the testing I did.
      
      Fixes: 4b5d62ca ("powerpc/mm: add radix__remove_section_mapping()")
      Signed-off-by: default avatarBalbir Singh <bsingharora@gmail.com>
      [mpe: Tweak change log to match updated behaviour]
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      4dd5f8a9
    • Nicholas Piggin's avatar
      powerpc/64s/radix: Boot-time NULL pointer protection using a guard-PID · eeb715c3
      Nicholas Piggin authored
      This change restores and formalises the behaviour that access to NULL
      or other user addresses by the kernel during boot should fault rather
      than succeed and modify memory. This was inadvertently broken when
      fixing another bug, because it was previously not well defined and
      only worked by chance.
      
      powerpc/64s/radix uses high address bits to select an address space
      "quadrant", which determines which PID and LPID are used to translate
      the rest of the address (effective PID, effective LPID). The kernel
      mapping at 0xC... selects quadrant 3, which uses PID=0 and LPID=0. So
      the kernel page tables are installed in the PID 0 process table entry.
      
      An address at 0x0... selects quadrant 0, which uses PID=PIDR for
      translating the rest of the address (that is, it uses the value of the
      PIDR register as the effective PID). If PIDR=0, then the translation
      is performed with the PID 0 process table entry page tables. This is
      the kernel mapping, so we effectively get another copy of the kernel
      address space at 0. A NULL pointer access will access physical memory
      address 0.
      
      To prevent duplicating the kernel address space in quadrant 0, this
      patch allocates a guard PID containing no translations, and
      initializes PIDR with this during boot, before the MMU is switched on.
      Any kernel access to quadrant 0 will use this guard PID for
      translation and find no valid mappings, and therefore fault.
      
      After boot, this PID will be switchd away to user context PIDs, but
      those contain user mappings (and usually NULL pointer protection)
      rather than kernel mapping, which is much safer (and by design). It
      may be in future this is tightened further, which the guard PID could
      be used for.
      
      Commit 371b8044 ("powerpc/64s: Initialize ISAv3 MMU registers before
      setting partition table"), introduced this problem because it zeroes
      PIDR at boot. However previously the value was inherited from firmware
      or kexec, which is not robust and can be zero (e.g., mambo).
      
      Fixes: 371b8044 ("powerpc/64s: Initialize ISAv3 MMU registers before setting partition table")
      Cc: stable@vger.kernel.org # v4.15+
      Reported-by: default avatarFlorian Weimer <fweimer@redhat.com>
      Tested-by: default avatarMauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      eeb715c3
    • Colin Ian King's avatar
      ocxl: fix signed comparison with less than zero · dedab7f0
      Colin Ian King authored
      Currently the comparison of used < 0 is always false because
      uses is a size_t. Fix this by making used a ssize_t type.
      
      Detected by Coccinelle:
      drivers/misc/ocxl/file.c:320:6-10: WARNING: Unsigned expression
      compared with zero: used < 0
      
      Fixes: 5ef3166e ("ocxl: Driver code for 'generic' opencapi devices")
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Acked-by: default avatarAndrew Donnellan <andrew.donnellan@au1.ibm.com>
      Acked-by: default avatarFrederic Barrat <fbarrat@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      dedab7f0
    • Nicholas Piggin's avatar
      powerpc/64s: Fix may_hard_irq_enable() for PMI soft masking · 6cc3f91b
      Nicholas Piggin authored
      The soft IRQ masking code has to hard-disable interrupts in cases
      where the exception is not cleared by the masked handler. External
      interrupts used this approach for soft masking. Now recently PMU
      interrupts do the same thing.
      
      The soft IRQ masking code additionally allowed for interrupt handlers
      to hard-enable interrupts after soft-disabling them. The idea is to
      allow PMU interrupts through to profile interrupt handlers.
      
      So when interrupts are being replayed when there is a pending
      interrupt that requires hard-disabling, there is a test to prevent
      those handlers from hard-enabling them if there is a pending external
      interrupt. may_hard_irq_enable() handles this.
      
      After f442d004 ("powerpc/64s: Add support to mask perf interrupts
      and replay them"), may_hard_irq_enable() could prematurely enable
      MSR[EE] when a PMU exception exists, which would result in the
      interrupt firing again while masked, and MSR[EE] being disabled again.
      
      I haven't seen that this could cause a serious problem, but it's
      more consistent to handle these soft-masked interrupts in the same
      way. So introduce a define for all types of interrupts that require
      MSR[EE] masking in their soft-disable handlers, and use that in
      may_hard_irq_enable().
      
      Fixes: f442d004 ("powerpc/64s: Add support to mask perf interrupts and replay them")
      Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
      Reviewed-by: default avatarMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      6cc3f91b
    • Madhavan Srinivasan's avatar
      powerpc/64s: Fix MASKABLE_RELON_EXCEPTION_HV_OOL macro · 5c11d1e5
      Madhavan Srinivasan authored
      Commit f14e953b ("powerpc/64s: Add support to take additional
      parameter in MASKABLE_* macro") messed up MASKABLE_RELON_EXCEPTION_HV_OOL
      macro by adding the wrong SOFTEN test which caused guest kernel crash
      at boot. Patch to fix the macro to use SOFTEN_TEST_HV instead of
      SOFTEN_NOTEST_HV.
      
      Fixes: f14e953b ("powerpc/64s: Add support to take additional parameter in MASKABLE_* macro")
      Reported-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Fix-Suggested-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarMadhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Tested-by: default avatarAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      5c11d1e5
    • Nathan Fontenot's avatar
      powerpc/numa: Invalidate numa_cpu_lookup_table on cpu remove · 1d9a0907
      Nathan Fontenot authored
      When DLPAR removing a CPU, the unmapping of the cpu from a node in
      unmap_cpu_from_node() should also invalidate the CPUs entry in the
      numa_cpu_lookup_table. There is not a guarantee that on a subsequent
      DLPAR add of the CPU the associativity will be the same and thus
      could be in a different node. Invalidating the entry in the
      numa_cpu_lookup_table causes the associativity to be read from the
      device tree at the time of the add.
      
      The current behavior of not invalidating the CPUs entry in the
      numa_cpu_lookup_table can result in scenarios where the the topology
      layout of CPUs in the partition does not match the device tree
      or the topology reported by the HMC.
      
      This bug looks like it was introduced in 2004 in the commit titled
      "ppc64: cpu hotplug notifier for numa", which is 6b15e4e87e32 in the
      linux-fullhist tree. Hence tag it for all stable releases.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarNathan Fontenot <nfont@linux.vnet.ibm.com>
      Reviewed-by: default avatarTyrel Datwyler <tyreld@linux.vnet.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      1d9a0907
  3. 07 Feb, 2018 27 commits
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · 581e400f
      Linus Torvalds authored
      Pull modules updates from Jessica Yu:
       "Minor code cleanups and MAINTAINERS update"
      
      * tag 'modules-for-v4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        modpost: Remove trailing semicolon
        ftrace/module: Move ftrace_release_mod() to ddebug_cleanup label
        MAINTAINERS: Remove from module & paravirt maintenance
      581e400f
    • Linus Torvalds's avatar
      Merge tag 'iversion-v4.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 6fbac201
      Linus Torvalds authored
      Pull inode->i_version cleanup from Jeff Layton:
       "Goffredo went ahead and sent a patch to rename this function, and
        reverse its sense, as we discussed last week.
      
        The patch is very straightforward and I figure it's probably best to
        go ahead and merge this to get the API as settled as possible"
      
      * tag 'iversion-v4.16-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        iversion: Rename make inode_cmp_iversion{+raw} to inode_eq_iversion{+raw}
      6fbac201
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · fe803f86
      Linus Torvalds authored
      Pull UDF and ext2 fixlets from Jan Kara:
       "A UDF fix and an ext2 cleanup"
      
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: drop unneeded newline
        udf: Sanitize nanoseconds for time stamps
      fe803f86
    • Linus Torvalds's avatar
      Merge tag 'regulator-fix-v4.16-suspend' of... · ffefb181
      Linus Torvalds authored
      Merge tag 'regulator-fix-v4.16-suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator
      
      Pull regulator fix from Mark Brown:
       "Fix suspend to idle.
      
        Testing on mainline after the initial regulator pull request went in
        identified a regression for suspend to idle due to it calling the
        suspend operations with states that it wasn't realized could happen,
        this patch fixes the problem"
      
      * tag 'regulator-fix-v4.16-suspend' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
        regulator: Fix suspend to idle
      ffefb181
    • Linus Torvalds's avatar
      Merge tag 'fbdev-v4.16' of git://github.com/bzolnier/linux · c3611b6d
      Linus Torvalds authored
      Pull fbdev updates from Bartlomiej Zolnierkiewicz:
       "There is nothing really major here:
      
         - fix display-timings lookup in the Device Tree in atmel_lcdfb driver
           (Johan Hovold)
      
         - fix video mode and line_length to be set correctly in vfb driver
           (Pieter "PoroCYon" Sluys)
      
         - fix returning nonsensical values to the user-space on GIO_FONTX
           ioctl when using dummy console (Nicolas Pitre)
      
         - add missing license tag to mmpfb driver (Arnd Bergmann)
      
         - convert radeonfb and pxa3xx_gcu drivers to use ktime_get[_ts64]()
           instead of the deprecated do_gettimeofday() (Arnd Bergmann)
      
         - switch udlfb driver from using the pr_*() logging functions to the
           dev_*() ones + related cleanups (Ladislav Michl)
      
         - use __raw I/O accessors also on arm64 (Ji Zhang)
      
         - fix Kconfig help text for intelfb driver (Randy Dunlap)
      
         - do not duplicate features data in omapfb driver (Ladislav Michl)
      
         - misc cleanups (Colin Ian King, Markus Elfring, Rasmus Villemoes,
           Vasyl Gomonovych, Himanshu Jha, Michael Trimarchi)"
      
      * tag 'fbdev-v4.16' of git://github.com/bzolnier/linux: (25 commits)
        video: udlfb: Switch from the pr_*() to the dev_*() logging functions
        video: udlfb: Constify read only data
        video: fbdev/mmp: add MODULE_LICENSE
        console/dummy: leave .con_font_get set to NULL
        fbdev: mxsfb: use framebuffer_alloc in the correct way
        video: udlfb: Do not name private data 'dev'
        video: udlfb: Remove noisy warnings
        video: udlfb: Remove redundant gdev variable
        video: udlfb: Remove unnecessary local variable
        fbdev: auo_k190x: Use zeroing memory allocator instead of allocator/memset
        vfb: fix video mode and line_length being set when loaded
        fbdev: arm64 use __raw I/O memory api
        omapfb: dss: Do not duplicate features data
        video: fbdev: omap2: Use PTR_ERR_OR_ZERO()
        fbdev: au1200fb: delete duplicate header contents
        fbdev: pxa3xx: use ktime_get_ts64 for time stamps
        fbdev: radeon: use ktime_get() for HZ calibration
        video: smscufx: Improve a size determination in two functions
        video: udlfb: Delete an unnecessary return statement in two functions
        video: udlfb: Improve a size determination in dlfb_alloc_urb_list()
        ...
      c3611b6d
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v4.16-2' of git://git.infradead.org/linux-platform-drivers-x86 · cc006a22
      Linus Torvalds authored
      Pull more x86 platform-drivers updates from Andy Shevchenko:
       "The DEFINE_SHOW_ATTRIBUTE() macro was defined privately in three
        locations and is useful for new and old users to avoid a lot of code
        duplication.
      
        Move the macro to seq_file.h.
      
        Along with above, clean up three drivers to use that macro.
      
        This, due to dependencies, was sent separately since affected changes
        weren't upstream originally yet. The rationale of doing this now is to
        allow use of new macro in v4.17 cycle in a conflictless manner"
      
      * tag 'platform-drivers-x86-v4.16-2' of git://git.infradead.org/linux-platform-drivers-x86:
        platform/x86: samsung-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
        platform/x86: ideapad-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
        platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro
        seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro
      cc006a22
    • Linus Torvalds's avatar
      Merge tag 'asoc-v4.16-5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound · 7590e37b
      Linus Torvalds authored
      Pull more ASoC updates from Mark Brown:
       "With the merge window having been delayed for another week here's
        another batch of updates that came in during that week.
      
        There's a few important fixes in here, mainly a fix for I/O on a
        number of devices caused by some of the component rework and a fix for
        a potential issue if more than one component in a link provides
        compressed operations. The I/O fixes are particularly important as the
        problem causes a power regression on a number of OMAP platforms"
      
      * tag 'asoc-v4.16-5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound: (22 commits)
        ASoC: stm32: add of dependency for stm32 drivers
        ASoC: mt8173-rt5650: fix child-node lookup
        ASoC: dapm: fix debugfs read using path->connected
        ASoC: compress: Fixup error messages
        ASoC: compress: Remove some extraneous blank lines
        ASoC: compress: Correct handling of copy callback
        ASoC: Intel: kbl: Enable mclk and ssp sclk early
        ASoC: Intel: Skylake: Add extended I2S config blob support in Clock driver
        ASoC: Intel: Skylake: Add ssp clock driver
        ASoC: Fix twl4030 and 6040 regression by adding back read and write
        ASoC: sun8i-codec: Add ADC support for a33
        ASoC: rockchip: Use dummy_dai for rt5514 dsp dailink
        ASoC: soc-pcm: rename .pmdown_time to .use_pmdown_time for Component
        ASoC: ak4613: call dummy write for PW_MGMT1/3 when Playback
        ASoC: soc-pcm: don't call flush_delayed_work() many times in soc_pcm_private_free()
        ASoC: soc-core: snd_soc_rtdcom_lookup() cares component driver name
        ASoC: sam9x5_wm8731: Drop 'ASoC' prefix from error messages
        ASoC: sam9g20_wm8731: use dev_*() logging functions
        ASoC: max98373 Changed SPDX header in C++ comments style
        ASoC: dmic: Fix check of return value from read of 'num-channels'
        ...
      7590e37b
    • Linus Torvalds's avatar
      Merge tag 'linux-watchdog-4.16-rc1' of git://www.linux-watchdog.org/linux-watchdog · 7e6127c1
      Linus Torvalds authored
      Pull watchdog updates from Wim Van Sebroeck:
      
       - new watchdog device drivers for Realtek RTD1295 and Spreadtrum SC9860
         platform
      
       - add support for the following devices: jz4780 SoC, AST25xx series SoC
         and r8a77970 SoC
      
       - convert to watchdog framework: i6300esb_wdt, xen_wdt and sp5100_tco
      
       - several fixes for watchdog core
      
       - remove at32ap700x and obsolete documentation
      
       - gpio: Convert to use GPIO descriptors
      
       - rename gemini into FTWDT010 as this IP block is generc from Faraday
         Technology
      
       - various clean-ups and small bugfixes
      
       - add Guenter Roeck as co-maintainer
      
       - change maintainers e-mail address
      
      * tag 'linux-watchdog-4.16-rc1' of git://www.linux-watchdog.org/linux-watchdog: (74 commits)
        documentation: watchdog: remove documentation of w83697hf_wdt/w83697ug_wdt
        documentation: watchdog: remove documentation for ixp2000
        documentation: watchdog: remove documentation of at32ap700x_wdt
        watchdog: remove at32ap700x_wdt
        watchdog: sp5100_tco: Add support for recent FCH versions
        watchdog: sp5100-tco: Abort if watchdog is disabled by hardware
        watchdog: sp5100_tco: Use bit operations
        watchdog: sp5100_tco: Convert to use watchdog subsystem
        watchdog: sp5100_tco: Clean up function and variable names
        watchdog: sp5100_tco: Use dev_ print functions where possible
        watchdog: sp5100_tco: Match PCI device early
        watchdog: sp5100_tco: Clean up sp5100_tco_setupdevice
        watchdog: sp5100_tco: Use standard error codes
        watchdog: sp5100_tco: Use request_muxed_region where possible
        watchdog: sp5100_tco: Fix watchdog disable bit
        watchdog: sp5100_tco: Always use SP5100_IO_PM_{INDEX_REG,DATA_REG}
        watchdog: core: make sure the watchdog_worker is not deferred
        watchdog: mt7621: switch to using managed devm_watchdog_register_device()
        watchdog: mt7621: set WDOG_HW_RUNNING bit when appropriate
        watchdog: imx2_wdt: restore previous timeout after suspend+resume
        ...
      7e6127c1
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-4.16-merge_window' of... · 413879a1
      Linus Torvalds authored
      Merge tag 'riscv-for-linus-4.16-merge_window' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux
      
      Pull RISC-V updates from Palmer Dabbelt:
       "This contains the fixes we'd like to target for the 4.16 merge window.
        It's not as much as I was originally hoping to do but between glibc,
        the chip, and FOSDEM there just wasn't enough time to get everything
        put together. As such, this merge window is essentially just going to
        be small changes. This includes mostly cleanups:
      
         - A build fix failure to the audit test cases.
      
           RISC-V doesn't have renameat because the generic syscall ABI moved
           to renameat2 by the time of our port. The syscall audit test cases
           don't understand this, so I added a trivial fix. This went through
           mailing list review during the 4.15 merge window, but nobody has
           picked it up so I think it's best to just do this here.
      
         - The removal of our command-line argument processing code. The
           "mem_end" stuff was broken and the rest duplicated generic device
           tree code. The generic code was already being called.
      
         - Some unused/redundant code has been removed, including
           __ARCH_HAVE_MMU, current_pgdir, and the initialization of
           init_mm.pgd.
      
         - SUM is disabled upon taking a trap, which means that user memory is
           protected during traps taking inside copy_{to,from}_user().
      
         - The sptbr CSR has been renamed to satp in C code. We haven't
           changed the assembly code in order to maintain compatibility with
           binutils 2.29, which doesn't understand the new name.
      
        Additionally, we're adding some new features:
      
         - Basic ftrace support, thanks to Alan Kao!
      
         - Support for ZONE_DMA32.
      
           This is necessary for all the normal reasons, but also to deal with
           a deficiency in the Xilinx PCIe controller we're using on our
           FPGA-based systems. While the ZONE_DMA32 addition should be
           sufficient for most uses, it doesn't complete the fix for the
           Xilinx controller.
      
         - TLB shootdowns now only target the harts where they're necessary,
           instead of applying to all harts in the system.
      
        These patches have all been sitting on our linux-next branch for a
        while now. Due to time constraints this is all I feel comfortable
        submitting during the 4.16 merge window, hopefully we'll do better
        next time!"
      
      [ Note to self: "harts" is RISC-V speak for "hardware threads".  I had
        to look that up.    - Linus ]
      
      * tag 'riscv-for-linus-4.16-merge_window' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux:
        riscv: inline set_pgdir into its only caller
        riscv: rename sptbr to satp
        riscv: don't read back satp in paging_init
        riscv: remove the unused current_pgdir function
        riscv: add ZONE_DMA32
        RISC-V: Limit the scope of TLB shootdowns
        riscv: disable SUM in the exception handler
        riscv: remove redundant unlikely()
        riscv: remove unused __ARCH_HAVE_MMU define
        riscv/ftrace: Add basic support
        RISC-V: Remove mem_end command line processing
        RISC-V: Remove duplicate command-line parsing logic
        audit: Avoid build failures on systems without renameat
      413879a1
    • Linus Torvalds's avatar
      Merge tag 'mips_fixes_4.16_1' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips · 0bd2afc7
      Linus Torvalds authored
      Pull MIPS fixes from James Hogan:
       "A couple of MIPS fixes for 4.16-rc1, including an important regression
        in 4.15 and a rather more longstanding corner case build fix.
      
        These are separate from the main pull request as one of the bugs fixed
        was only recently introduced in v4.15-rc8.
      
         - Fix CPS regression on older binutils due to MIPS_ISA_LEVEL_RAW fix
           (4.15)
      
         - Fix allmodconfig + CONFIG_MACH_TX49XX=y builds due to incorrect use
           of IS_ENABLED() (2.6.28)"
      
      * tag 'mips_fixes_4.16_1' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips:
        MIPS: TXx9: use IS_BUILTIN() for CONFIG_LEDS_CLASS
        MIPS: CPS: Fix MIPS_ISA_LEVEL_RAW fallout
      0bd2afc7
    • Linus Torvalds's avatar
      Merge tag 'mips_4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips · 85789536
      Linus Torvalds authored
      Pull MIPS updates from James Hogan:
       "These are the main MIPS changes for 4.16.
      
        Rough overview:
      
         (1) Basic support for the Ingenic JZ4770 based GCW Zero open-source
             handheld video game console
      
         (2) Support for the Ranchu board (used by Android emulator)
      
         (3) Various cleanups and misc improvements
      
        More detailed summary:
      
        Fixes:
         - Fix generic platform's USB_*HCI_BIG_ENDIAN selects (4.9)
         - Fix vmlinuz default build when ZBOOT selected
         - Fix clean up of vmlinuz targets
         - Fix command line duplication (in preparation for Ingenic JZ4770)
      
        Miscellaneous:
         - Allow Processor ID reads to be to be optimised away by the compiler
           (improves performance when running in guest)
         - Push ARCH_MIGHT_HAVE_PC_SERIO/PARPORT down to platform level to
           disable on generic platform with Ranchu board support
         - Add helpers for assembler macro instructions for older assemblers
         - Use assembler macro instructions to support VZ, XPA & MSA
           operations on older assemblers, removing C wrapper duplication
         - Various improvements to VZ & XPA assembly wrappers
         - Add drivers/platform/mips/ to MIPS MAINTAINERS entry
      
        Minor cleanups:
         - Misc FPU emulation cleanups (removal of unnecessary include, moving
           macros to common header, checkpatch and sparse fixes)
         - Remove duplicate assignment of core in play_dead()
         - Remove duplication in watchpoint handling
         - Remove mips_dma_mapping_error() stub
         - Use NULL instead of 0 in prepare_ftrace_return()
         - Use proper kernel-doc Return keyword for
           __compute_return_epc_for_insn()
         - Remove duplicate semicolon in csum_fold()
      
        Platform support:
      
        Broadcom:
         - Enable ZBOOT on BCM47xx
      
        Generic platform:
         - Add Ranchu board support, used by Android emulator
         - Fix machine compatible string matching for Ranchu
         - Support GIC in EIC mode
      
        Ingenic platforms:
         - Add DT, defconfig and other support for JZ4770 SoC and GCW Zero
         - Support dynamnic machine types (i.e. JZ4740 / JZ4770 / JZ4780)
         - Add Ingenic JZ4770 CGU clocks
         - General Ingenic clk changes to prepare for JZ4770 SoC support
         - Use common command line handling code
         - Add DT vendor prefix to GCW (Game Consoles Worldwide)
      
        Loongson:
         - Add MAINTAINERS entry for Loongson2 and Loongson3 platforms
         - Drop 32-bit support for Loongson 2E/2F devices
         - Fix build failures due to multiple use of 'MEM_RESERVED'"
      
      * tag 'mips_4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/mips: (53 commits)
        MIPS: Malta: Sanitize mouse and keyboard configuration.
        MIPS: Update defconfigs after previous patch.
        MIPS: Push ARCH_MIGHT_HAVE_PC_SERIO down to platform level
        MIPS: Push ARCH_MIGHT_HAVE_PC_PARPORT down to platform level
        MIPS: SMP-CPS: Remove duplicate assignment of core in play_dead
        MIPS: Generic: Support GIC in EIC mode
        MIPS: generic: Fix Makefile alignment
        MIPS: generic: Fix ranchu_of_match[] termination
        MIPS: generic: Fix machine compatible matching
        MIPS: Loongson fix name confict - MEM_RESERVED
        MIPS: bcm47xx: enable ZBOOT support
        MIPS: Fix trailing semicolon
        MIPS: Watch: Avoid duplication of bits in mips_read_watch_registers
        MIPS: Watch: Avoid duplication of bits in mips_install_watch_registers.
        MIPS: MSA: Update helpers to use new asm macros
        MIPS: XPA: Standardise readx/writex accessors
        MIPS: XPA: Allow use of $0 (zero) to MTHC0
        MIPS: XPA: Use XPA instructions in assembly
        MIPS: VZ: Pass GC0 register names in $n format
        MIPS: VZ: Update helpers to use new asm macros
        ...
      85789536
    • Linus Torvalds's avatar
      Merge tag 'docs-4.16-2' of git://git.lwn.net/linux · e03ab6c4
      Linus Torvalds authored
      Pull more documentation updates from Jonathan Corbet:
       "A few late-arriving fixes, along with Konstantin's PGP document that
        had no reason to wait another cycle"
      
      * tag 'docs-4.16-2' of git://git.lwn.net/linux:
        Documentation/process: tweak pgp maintainer guide
        Documentation/admin-guide: fixes for thunderbolt.rst
        Documentation: mips: Update AU1xxx_IDE Kconfig dependencies
        Fix broken link in Documentation/process/kernel-docs.rst
        Documentation/process: kernel maintainer PGP guide
      e03ab6c4
    • Mark Brown's avatar
      Merge remote-tracking branches 'asoc/topic/sam9x5_wm8731',... · 3d0a352a
      Mark Brown authored
      Merge remote-tracking branches 'asoc/topic/sam9x5_wm8731', 'asoc/topic/sgtl5000' and 'asoc/topic/sun8i-codec' into asoc-next
      3d0a352a
    • Mark Brown's avatar
      Merge remote-tracking branches 'asoc/topic/max98373', 'asoc/topic/mtk',... · 17124877
      Mark Brown authored
      Merge remote-tracking branches 'asoc/topic/max98373', 'asoc/topic/mtk', 'asoc/topic/pcm', 'asoc/topic/rockchip' and 'asoc/topic/sam9g20_wm8731' into asoc-next
      17124877
    • Mark Brown's avatar
      Merge remote-tracking branches 'asoc/topic/ak4613', 'asoc/topic/core',... · 535b218a
      Mark Brown authored
      Merge remote-tracking branches 'asoc/topic/ak4613', 'asoc/topic/core', 'asoc/topic/dmic' and 'asoc/topic/intel' into asoc-next
      535b218a
    • Mark Brown's avatar
    • Mark Brown's avatar
    • Mark Brown's avatar
      Merge remote-tracking branches 'asoc/fix/compress', 'asoc/fix/core',... · ce8ee02d
      Mark Brown authored
      Merge remote-tracking branches 'asoc/fix/compress', 'asoc/fix/core', 'asoc/fix/dapm', 'asoc/fix/mtk' and 'asoc/fix/stm' into asoc-next
      ce8ee02d
    • Olivier Moysan's avatar
      ASoC: stm32: add of dependency for stm32 drivers · 276d70f7
      Olivier Moysan authored
      Add of dependency for STM32 ASoC drivers.
      DFSDM of dependency is already inherited
      from STM32_DFSDM_ADC dependency.
      Signed-off-by: default avatarolivier moysan <olivier.moysan@st.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      276d70f7
    • Johan Hovold's avatar
      ASoC: mt8173-rt5650: fix child-node lookup · 3a0a7b26
      Johan Hovold authored
      This driver used the wrong OF-helper when looking up the optional
      capture-codec child node during probe. Instead of searching just
      children of the sound node, a tree-wide depth-first search starting at
      the unrelated platform node was done. Not only could this end up
      matching an unrelated node or no node at all; the platform node could
      also be prematurely freed since of_find_node_by_name() drops a reference
      to its first argument. This particular pattern has been observed leading
      to crashes after probe deferrals in other drivers.
      
      Fix this by dropping the broken call to of_find_node_by_name() and
      keeping only the second, correct lookup using of_get_child_by_name()
      while taking care not to bail out if the optional node is missing.
      
      Note that this also addresses two capture-codec node-reference leaks
      (one for each of the original helper calls).
      
      Compile tested only.
      
      Fixes: d349caeb ("ASoC: mediatek: Add second I2S on mt8173-rt5650 machine driver")
      Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      3a0a7b26
    • KaiChieh Chuang's avatar
      ASoC: dapm: fix debugfs read using path->connected · 28735af3
      KaiChieh Chuang authored
      This fix a bug in dapm_widget_power_read_file(),
      where it may sent opposite order of source/sink widget
      into the p->connected().
      
      for example,
      static int connected_check(source, sink);
      {"w_sink", NULL, "w_source", connected_check}
      
      the dapm_widget_power_read_file() will query p->connected()
      in following case
      	p->conneted("w_source", "w_sink")
      	p->conneted("w_sink", "w_source")
      we should avoid the last case, since it's the wrong order (source/sink)
      as declared in snd_soc_dapm_route.
      Signed-off-by: default avatarKaiChieh Chuang <kaichieh.chuang@mediatek.com>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      28735af3
    • Andy Shevchenko's avatar
      platform/x86: samsung-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro · 9a7c551b
      Andy Shevchenko authored
      ...instead of open coding file operations followed by custom ->open()
      callbacks per each attribute.
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      9a7c551b
    • Andy Shevchenko's avatar
      platform/x86: ideapad-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro · 334c4efd
      Andy Shevchenko authored
      ...instead of open coding file operations followed by custom ->open()
      callbacks per each attribute.
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      334c4efd
    • Andy Shevchenko's avatar
      platform/x86: dell-laptop: Re-use DEFINE_SHOW_ATTRIBUTE() macro · b04eb8aa
      Andy Shevchenko authored
      ...instead of open coding file operations followed by custom ->open()
      callbacks per each attribute.
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      b04eb8aa
    • Andy Shevchenko's avatar
      seq_file: Introduce DEFINE_SHOW_ATTRIBUTE() helper macro · a08f06bb
      Andy Shevchenko authored
      The DEFINE_SHOW_ATTRIBUTE() helper macro would be useful for current
      users, which are many of them, and for new comers to decrease code
      duplication.
      Acked-by: default avatarLee Jones <lee.jones@linaro.org>
      Acked-by: default avatarDarren Hart (VMware) <dvhart@infradead.org>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      a08f06bb
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · a2e5790d
      Linus Torvalds authored
      Merge misc updates from Andrew Morton:
      
       - kasan updates
      
       - procfs
      
       - lib/bitmap updates
      
       - other lib/ updates
      
       - checkpatch tweaks
      
       - rapidio
      
       - ubsan
      
       - pipe fixes and cleanups
      
       - lots of other misc bits
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>: (114 commits)
        Documentation/sysctl/user.txt: fix typo
        MAINTAINERS: update ARM/QUALCOMM SUPPORT patterns
        MAINTAINERS: update various PALM patterns
        MAINTAINERS: update "ARM/OXNAS platform support" patterns
        MAINTAINERS: update Cortina/Gemini patterns
        MAINTAINERS: remove ARM/CLKDEV SUPPORT file pattern
        MAINTAINERS: remove ANDROID ION pattern
        mm: docs: add blank lines to silence sphinx "Unexpected indentation" errors
        mm: docs: fix parameter names mismatch
        mm: docs: fixup punctuation
        pipe: read buffer limits atomically
        pipe: simplify round_pipe_size()
        pipe: reject F_SETPIPE_SZ with size over UINT_MAX
        pipe: fix off-by-one error when checking buffer limits
        pipe: actually allow root to exceed the pipe buffer limits
        pipe, sysctl: remove pipe_proc_fn()
        pipe, sysctl: drop 'min' parameter from pipe-max-size converter
        kasan: rework Kconfig settings
        crash_dump: is_kdump_kernel can be boolean
        kernel/mutex: mutex_is_locked can be boolean
        ...
      a2e5790d
    • Linus Torvalds's avatar
      Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ab2d92ad
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
      
       - membarrier updates (Mathieu Desnoyers)
      
       - SMP balancing optimizations (Mel Gorman)
      
       - stats update optimizations (Peter Zijlstra)
      
       - RT scheduler race fixes (Steven Rostedt)
      
       - misc fixes and updates
      
      * 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Use a recently used CPU as an idle candidate and the basis for SIS
        sched/fair: Do not migrate if the prev_cpu is idle
        sched/fair: Restructure wake_affine*() to return a CPU id
        sched/fair: Remove unnecessary parameters from wake_affine_idle()
        sched/rt: Make update_curr_rt() more accurate
        sched/rt: Up the root domain ref count when passing it around via IPIs
        sched/rt: Use container_of() to get root domain in rto_push_irq_work_func()
        sched/core: Optimize update_stats_*()
        sched/core: Optimize ttwu_stat()
        membarrier/selftest: Test private expedited sync core command
        membarrier/arm64: Provide core serializing command
        membarrier/x86: Provide core serializing command
        membarrier: Provide core serializing command, *_SYNC_CORE
        lockin/x86: Implement sync_core_before_usermode()
        locking: Introduce sync_core_before_usermode()
        membarrier/selftest: Test global expedited command
        membarrier: Provide GLOBAL_EXPEDITED command
        membarrier: Document scheduler barrier requirements
        powerpc, membarrier: Skip memory barrier in switch_mm()
        membarrier/selftest: Test private expedited command
      ab2d92ad