Skip to content
  1. Sep 28, 2019
    • Ben Chuang's avatar
      mmc: host: sdhci-pci: Add Genesys Logic GL975x support · e51df6ce
      Ben Chuang authored
      
      
      Add support for the GL9750 and GL9755 chipsets.
      
      Enable v4 mode and wait 5ms after set 1.8V signal enable for GL9750/
      GL9755. Fix the value of SDHCI_MAX_CURRENT register and use the vendor
      tuning flow for GL9750.
      
      Co-developed-by: default avatarMichael K Johnson <johnsonm@danlj.org>
      Signed-off-by: default avatarMichael K Johnson <johnsonm@danlj.org>
      Signed-off-by: default avatarBen Chuang <ben.chuang@genesyslogic.com.tw>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      e51df6ce
    • Nicolin Chen's avatar
      mmc: tegra: Implement ->set_dma_mask() · b960bc44
      Nicolin Chen authored
      The SDHCI controller on Tegra186 supports 40-bit addressing, which is
      usually enough to address all of system memory. However, if the SDHCI
      controller is behind an IOMMU, the address space can go beyond. This
      happens on Tegra186 and later where the ARM SMMU has an input address
      space of 48 bits. If the DMA API is backed by this ARM SMMU, the top-
      down IOVA allocator will cause IOV addresses to be returned that the
      SDHCI controller cannot access.
      
      Unfortunately, prior to the introduction of the ->set_dma_mask() host
      operation, the SDHCI core would set either a 64-bit DMA mask if the
      controller claimed to support 64-bit addressing, or a 32-bit DMA mask
      otherwise.
      
      Since the full 64 bits cannot be addressed on Tegra, this had to be
      worked around in commit 68481a7e
      
       ("mmc: tegra: Mark 64 bit dma
      broken on Tegra186") by setting the SDHCI_QUIRK2_BROKEN_64_BIT_DMA
      quirk, which effectively restricts the DMA mask to 32 bits.
      
      One disadvantage of this is that dma_map_*() APIs will now try to use
      the swiotlb to bounce DMA to addresses beyond of the controller's DMA
      mask. This in turn caused degraded performance and can lead to
      situations where the swiotlb buffer is exhausted, which in turn leads
      to DMA transfers to fail.
      
      With the recent introduction of the ->set_dma_mask() host operation,
      this can now be properly fixed. For each generation of Tegra, the exact
      supported DMA mask can be configured. This kills two birds with one
      stone: it avoids the use of bounce buffers because system memory never
      exceeds the addressable memory range of the SDHCI controllers on these
      devices, and at the same time when an IOMMU is involved, it prevents
      IOV addresses from being allocated beyond the addressible range of the
      controllers.
      
      Since the DMA mask is now properly handled, the 64-bit DMA quirk can be
      removed.
      
      Signed-off-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
      [treding@nvidia.com: provide more background in commit message]
      Tested-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Cc: stable@vger.kernel.org # v4.15 +
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      b960bc44
    • Adrian Hunter's avatar
      mmc: sdhci: Let drivers define their DMA mask · 4ee7dde4
      Adrian Hunter authored
      
      
      Add host operation ->set_dma_mask() so that drivers can define their own
      DMA masks.
      
      Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Tested-by: default avatarNicolin Chen <nicoleotsuka@gmail.com>
      Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
      Cc: stable@vger.kernel.org # v4.15 +
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      4ee7dde4
    • Russell King's avatar
      mmc: sdhci-of-esdhc: set DMA snooping based on DMA coherence · 121bd08b
      Russell King authored
      
      
      We must not unconditionally set the DMA snoop bit; if the DMA API is
      assuming that the device is not DMA coherent, and the device snoops the
      CPU caches, the device can see stale cache lines brought in by
      speculative prefetch.
      
      This leads to the device seeing stale data, potentially resulting in
      corrupted data transfers.  Commonly, this results in a descriptor fetch
      error such as:
      
      mmc0: ADMA error
      mmc0: sdhci: ============ SDHCI REGISTER DUMP ===========
      mmc0: sdhci: Sys addr:  0x00000000 | Version:  0x00002202
      mmc0: sdhci: Blk size:  0x00000008 | Blk cnt:  0x00000001
      mmc0: sdhci: Argument:  0x00000000 | Trn mode: 0x00000013
      mmc0: sdhci: Present:   0x01f50008 | Host ctl: 0x00000038
      mmc0: sdhci: Power:     0x00000003 | Blk gap:  0x00000000
      mmc0: sdhci: Wake-up:   0x00000000 | Clock:    0x000040d8
      mmc0: sdhci: Timeout:   0x00000003 | Int stat: 0x00000001
      mmc0: sdhci: Int enab:  0x037f108f | Sig enab: 0x037f108b
      mmc0: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00002202
      mmc0: sdhci: Caps:      0x35fa0000 | Caps_1:   0x0000af00
      mmc0: sdhci: Cmd:       0x0000333a | Max curr: 0x00000000
      mmc0: sdhci: Resp[0]:   0x00000920 | Resp[1]:  0x001d8a33
      mmc0: sdhci: Resp[2]:   0x325b5900 | Resp[3]:  0x3f400e00
      mmc0: sdhci: Host ctl2: 0x00000000
      mmc0: sdhci: ADMA Err:  0x00000009 | ADMA Ptr: 0x000000236d43820c
      mmc0: sdhci: ============================================
      mmc0: error -5 whilst initialising SD card
      
      but can lead to other errors, and potentially direct the SDHCI
      controller to read/write data to other memory locations (e.g. if a valid
      descriptor is visible to the device in a stale cache line.)
      
      Fix this by ensuring that the DMA snoop bit corresponds with the
      behaviour of the DMA API.  Since the driver currently only supports DT,
      use of_dma_is_coherent().  Note that device_get_dma_attr() can not be
      used as that risks re-introducing this bug if/when the driver is
      converted to ACPI.
      
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      121bd08b
    • Russell King's avatar
      mmc: sdhci: improve ADMA error reporting · d1c536e3
      Russell King authored
      
      
      ADMA errors are potentially data corrupting events; although we print
      the register state, we do not usefully print the ADMA descriptors.
      Worse than that, we print them by referencing their virtual address
      which is meaningless when the register state gives us the DMA address
      of the failing descriptor.
      
      Print the ADMA descriptors giving their DMA addresses rather than their
      virtual addresses, and print them using SDHCI_DUMP() rather than DBG().
      
      We also do not show the correct value of the interrupt status register;
      the register dump shows the current value, after we have cleared the
      pending interrupts we are going to service.  What is more useful is to
      print the interrupts that _were_ pending at the time the ADMA error was
      encountered.  Fix that too.
      
      Signed-off-by: default avatarRussell King <rmk+kernel@armlinux.org.uk>
      Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      d1c536e3
  2. Sep 24, 2019
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 3c6a6910
      Linus Torvalds authored
      Pull crypto fixes froim Herbert Xu:
       "This fixes the following issues:
      
         - potential boot hang in hwrng
      
         - missing switch/break in talitos
      
         - bugs and warnings in hisilicon
      
         - build warning in inside-secure"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: hisilicon - avoid unused function warning
        hwrng: core - don't wait on add_early_randomness()
        crypto: hisilicon - Fix return value check in hisi_zip_acompress()
        crypto: hisilicon - Matching the dma address for dma_pool_free()
        crypto: hisilicon - Fix double free in sec_free_hw_sgl()
        crypto: inside-secure - Fix unused variable warning when CONFIG_PCI=n
        crypto: talitos - fix missing break in switch statement
      3c6a6910
  3. Sep 23, 2019
    • Linus Torvalds's avatar
      Merge tag 'for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 619e17cf
      Linus Torvalds authored
      Pull power supply and reset updates from Sebastian Reichel:
       "Core:
         - Ensure HWMON devices are registered with valid names
         - Fix device wakeup code
      
        Drivers:
         - bq25890_charger: Add BQ25895 support
         - axp288_fuel_gauge: Add Minix Neo Z83-4 to blacklist
         - sc27xx: improve battery calibration
         - misc small fixes all over drivers"
      
      * tag 'for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (24 commits)
        power: supply: cpcap-charger: Enable vbus boost voltage
        power: supply: sc27xx: Add POWER_SUPPLY_PROP_CALIBRATE attribute
        power: supply: sc27xx: Optimize the battery capacity calibration
        power: supply: sc27xx: Make sure the alarm capacity is larger than 0
        power: supply: sc27xx: Fix the the accuracy issue of coulomb calculation
        power: supply: sc27xx: Fix conditon to enable the FGU interrupt
        power: supply: sc27xx: Add POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN attribute
        power: supply: max77650: add MODULE_ALIAS()
        power: supply: isp1704: remove redundant assignment to variable ret
        power: supply: bq25890_charger: Add the BQ25895 part
        power: supply: sc27xx: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()
        power: supply: sc27xx: Introduce local variable 'struct device *dev'
        power: reset: reboot-mode: Fix author email format
        power: supply: ab8500: remove set but not used variables 'vbup33_vrtcn' and 'bup_vch_range'
        power: supply: max17042_battery: Fix a typo in function names
        power: reset: gpio-restart: Fix typo when gpio reset is not found
        power: supply: Init device wakeup after device_add()
        power: supply: ab8500_charger: Mark expected switch fall-through
        power: supply: sbs-battery: only return health when battery present
        MAINTAINERS: N900: Remove isp1704_charger.h record
        ...
      619e17cf
    • Linus Torvalds's avatar
      Merge tag 'hsi-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi · 57f1c3ca
      Linus Torvalds authored
      Pull HSI updates from Sebastian Reichel:
       "Misc cleanups"
      
      * tag 'hsi-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-hsi:
        HSI: Remove dev_err() usage after platform_get_irq()
        HSI: ssi_protocol: Mark expected switch fall-throughs
      57f1c3ca
    • Linus Torvalds's avatar
      firmware: bcm47xx_nvram: _really_ correct size_t printf format · 5d4156ac
      Linus Torvalds authored
      Commit feb4eb06
      
       ("firmware: bcm47xx_nvram: Correct size_t printf
      format") was wrong, and changed a printout of 'header.len' - which is an
      u32 type - to use '%zu'.
      
      It apparently did pattern matching on the other case, where it printed
      out 'nvram_len', which is indeed of type 'size_t'.
      
      Rather than undoing the change, this just makes it use the variable that
      the change seemed to expect to be used.
      
      Cc: Florian Fainelli <f.fainelli@gmail.com>
      Cc: Philippe Mathieu-Daudé <f4bug@amsat.org>
      Cc: Paul Burton <paul.burton@mips.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5d4156ac
    • Linus Torvalds's avatar
      modules: make MODULE_IMPORT_NS() work even when modular builds are disabled · 3e4d890a
      Linus Torvalds authored
      
      
      It's an unusual configuration, and was apparently never tested, and not
      caught in linux-next because of a combination of travels and it making
      it into the tree too late.
      
      The fix is to simply move the #define to outside the CONFIG_MODULE
      section, since MODULE_INFO() will do the right thing.
      
      Cc: Martijn Coenen <maco@android.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Matthias Maennich <maennich@google.com>
      Cc: Jessica Yu <jeyu@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3e4d890a
    • Linus Torvalds's avatar
      Merge tag 'rtc-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux · 9dbd83f6
      Linus Torvalds authored
      Pull RTC updates from Alexandre Belloni:
       "Two new drivers and the new pcf2127 feature make the bulk of the
        additions. The rest are the usual fixes and new features.
      
        Subsystem:
         - add debug message when registration fails
      
        New drivers:
         - Amlogic Virtual Wake
         - Freescale FlexTimer Module alarm
      
        Drivers:
         - remove superfluous error messages
         - convert to i2c_new_dummy_device and devm_i2c_new_dummy_device
         - Remove dev_err() usage after platform_get_irq()
         - Set RTC range for: pcf2123, pcf8563, snvs.
         - pcf2127: tamper detection and watchdog support
         - pcf85363: fix regmap issue
         - sun6i: H6 support
         - remove w90x900/nuc900 driver"
      
      * tag 'rtc-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (51 commits)
        rtc: meson: mark PM functions as __maybe_unused
        rtc: sc27xx: Remove clearing SPRD_RTC_POWEROFF_ALM_FLAG flag
        dt-bindings: rtc: ds1307: add rx8130 compatible
        rtc: sun6i: Allow using as wakeup source from suspend
        rtc: pcf8563: let the core handle range offsetting
        rtc: pcf8563: remove useless indirection
        rtc: pcf8563: convert to devm_rtc_allocate_device
        rtc: pcf8563: add Microcrystal RV8564 compatible
        rtc: pcf8563: add Epson RTC8564 compatible
        rtc: s35390a: convert to devm_i2c_new_dummy_device()
        rtc: max77686: convert to devm_i2c_new_dummy_device()
        rtc: pcf85363/pcf85263: fix regmap error in set_time
        rtc: snvs: switch to rtc_time64_to_tm/rtc_tm_to_time64
        rtc: snvs: set range
        rtc: snvs: fix possible race condition
        rtc: pcf2127: bugfix: watchdog build dependency
        rtc: pcf2127: add tamper detection support
        rtc: pcf2127: add watchdog feature support
        rtc: pcf2127: bugfix: read rtc disables watchdog
        rtc: pcf2127: cleanup register and bit defines
        ...
      9dbd83f6
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · 379bb045
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
       "This contains updates to make the rpmsg sample driver more useful,
        fixes the naming of GLINK devices to avoid naming collisions and a few
        minor bug fixes. It also updates MAINTAINERS to reflect the move to
        kernel.org"
      
      * tag 'rpmsg-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        rpmsg: glink-smem: Name the edge based on parent remoteproc
        rpmsg: glink: Use struct_size() helper
        rpmsg: virtio_rpmsg_bus: replace "%p" with "%pK"
        MAINTAINERS: rpmsg: fix git tree location
        rpmsg: core: fix comments
        samples/rpmsg: Introduce a module parameter for message count
        samples/rpmsg: Replace print_hex_dump() with print_hex_dump_debug()
      379bb045
    • Linus Torvalds's avatar
      Merge tag 'rproc-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · 28de978b
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
       "This exposes the remoteproc's name in sysfs, allows stm32 to enter
        platform standby and provides bug fixes for stm32 and Qualcomm's modem
        remoteproc drivers. Finally it updates MAINTAINERS to reflect the move
        to kernel.org"
      
      * tag 'rproc-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        MAINTAINERS: remoteproc: update git tree location
        remoteproc: Remove dev_err() usage after platform_get_irq()
        remoteproc: stm32: manage the get_irq probe defer case
        remoteproc: stm32: clear MCU PDDS at firmware start
        remoteproc: qcom: q6v5-mss: fixup q6v5_pds_enable error handling
        remoteproc: Add a sysfs interface for name
        remoteproc: qcom: Move glink_ssr notification after stop
      28de978b
    • Linus Torvalds's avatar
      Merge tag 'soundwire-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire · 8d7ead5c
      Linus Torvalds authored
      Pull soundwire updates from Vinod Koul:
       "This includes DT support thanks to Srini and more work done by Intel
        (Pierre) on improving cadence and intel support.
      
        Summary:
      
         - Add DT bindings and DT support in core
      
         - Add debugfs support for soundwire properties
      
         - Improvements on streaming handling to core
      
         - Improved handling of Cadence module
      
         - More updates and improvements to Intel driver"
      
      * tag 'soundwire-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire: (30 commits)
        soundwire: stream: make stream name a const pointer
        soundwire: Add compute_params callback
        soundwire: core: add device tree support for slave devices
        dt-bindings: soundwire: add slave bindings
        soundwire: bus: set initial value to port_status
        soundwire: intel: handle disabled links
        soundwire: intel: add debugfs register dump
        soundwire: cadence_master: add debugfs register dump
        soundwire: add debugfs support
        soundwire: intel: remove unused variables
        soundwire: intel: move shutdown() callback and don't export symbol
        soundwire: cadence_master: add kernel parameter to override interrupt mask
        soundwire: intel_init: add kernel module parameter to filter out links
        soundwire: cadence_master: fix divider setting in clock register
        soundwire: cadence_master: make use of mclk_freq property
        soundwire: intel: read mclk_freq property from firmware
        soundwire: add new mclk_freq field for properties
        soundwire: stream: remove unnecessary variable initializations
        soundwire: stream: fix disable sequence
        soundwire: include mod_devicetable.h to avoid compiling warnings
        ...
      8d7ead5c
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · e0703556
      Linus Torvalds authored
      Pull modules updates from Jessica Yu:
       "The main bulk of this pull request introduces a new exported symbol
        namespaces feature. The number of exported symbols is increasingly
        growing with each release (we're at about 31k exports as of 5.3-rc7)
        and we currently have no way of visualizing how these symbols are
        "clustered" or making sense of this huge export surface.
      
        Namespacing exported symbols allows kernel developers to more
        explicitly partition and categorize exported symbols, as well as more
        easily limiting the availability of namespaced symbols to other parts
        of the kernel. For starters, we have introduced the USB_STORAGE
        namespace to demonstrate the API's usage. I have briefly summarized
        the feature and its main motivations in the tag below.
      
        Summary:
      
         - Introduce exported symbol namespaces.
      
           This new feature allows subsystem maintainers to partition and
           categorize their exported symbols into explicit namespaces. Module
           authors are now required to import the namespaces they need.
      
           Some of the main motivations of this feature include: allowing
           kernel developers to better manage the export surface, allow
           subsystem maintainers to explicitly state that usage of some
           exported symbols should only be limited to certain users (think:
           inter-module or inter-driver symbols, debugging symbols, etc), as
           well as more easily limiting the availability of namespaced symbols
           to other parts of the kernel.
      
           With the module import requirement, it is also easier to spot the
           misuse of exported symbols during patch review.
      
           Two new macros are introduced: EXPORT_SYMBOL_NS() and
           EXPORT_SYMBOL_NS_GPL(). The API is thoroughly documented in
           Documentation/kbuild/namespaces.rst.
      
         - Some small code and kbuild cleanups here and there"
      
      * tag 'modules-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        module: Remove leftover '#undef' from export header
        module: remove unneeded casts in cmp_name()
        module: move CONFIG_UNUSED_SYMBOLS to the sub-menu of MODULES
        module: remove redundant 'depends on MODULES'
        module: Fix link failure due to invalid relocation on namespace offset
        usb-storage: export symbols in USB_STORAGE namespace
        usb-storage: remove single-use define for debugging
        docs: Add documentation for Symbol Namespaces
        scripts: Coccinelle script for namespace dependencies.
        modpost: add support for generating namespace dependencies
        export: allow definition default namespaces in Makefiles or sources
        module: add config option MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
        modpost: add support for symbol namespaces
        module: add support for symbol namespaces.
        export: explicitly align struct kernel_symbol
        module: support reading multiple values per modinfo tag
      e0703556
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 8808cf8c
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - fix various clang build and cppcheck issues
      
       - switch ARM to use new common outgoing-CPU-notification code
      
       - add some additional explanation about the boot code
      
       - kbuild "make clean" fixes
      
       - get rid of another "(____ptrval____)", this time for the VDSO code
      
       - avoid treating cache maintenance faults as a write
      
       - add a frame pointer unwinder implementation for clang
      
       - add EDAC support for Aurora L2 cache
      
       - improve robustness of adjust_lowmem_bounds() finding the bounds of
         lowmem.
      
       - add reset control for AMBA primecell devices
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: (24 commits)
        ARM: 8906/1: drivers/amba: add reset control to amba bus probe
        ARM: 8905/1: Emit __gnu_mcount_nc when using Clang 10.0.0 or newer
        ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary
        ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address
        ARM: 8891/1: EDAC: armada_xp: Add support for more SoCs
        ARM: 8888/1: EDAC: Add driver for the Marvell Armada XP SDRAM and L2 cache ECC
        ARM: 8892/1: EDAC: Add missing debugfs_create_x32 wrapper
        ARM: 8890/1: l2x0: add marvell,ecc-enable property for aurora
        ARM: 8889/1: dt-bindings: document marvell,ecc-enable binding
        ARM: 8886/1: l2x0: support parity-enable/disable on aurora
        ARM: 8885/1: aurora-l2: add defines for parity and ECC registers
        ARM: 8887/1: aurora-l2: add prefix to MAX_RANGE_SIZE
        ARM: 8902/1: l2c: move cache-aurora-l2.h to asm/hardware
        ARM: 8900/1: UNWINDER_FRAME_POINTER implementation for Clang
        ARM: 8898/1: mm: Don't treat faults reported from cache maintenance as writes
        ARM: 8896/1: VDSO: Don't leak kernel addresses
        ARM: 8895/1: visit mach-* and plat-* directories when cleaning
        ARM: 8894/1: boot: Replace open-coded nop with macro
        ARM: 8893/1: boot: Explain the 8 nops
        ARM: 8876/1: fix O= building with CONFIG_FPE_FASTFPE
        ...
      8808cf8c
    • Linus Torvalds's avatar
      Merge tag 'mips_5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 5c6bd5de
      Linus Torvalds authored
      Pull MIPS updates from Paul Burton:
       "Main MIPS changes:
      
         - boot_mem_map is removed, providing a nice cleanup made possible by
           the recent removal of bootmem.
      
         - Some fixes to atomics, in general providing compiler barriers for
           smp_mb__{before,after}_atomic plus fixes specific to Loongson CPUs
           or MIPS32 systems using cmpxchg64().
      
         - Conversion to the new generic VDSO infrastructure courtesy of
           Vincenzo Frascino.
      
         - Removal of undefined behavior in set_io_port_base(), fixing the
           behavior of some MIPS kernel configurations when built with recent
           clang versions.
      
         - Initial MIPS32 huge page support, functional on at least Ingenic
           SoCs.
      
         - pte_special() is now supported for some configurations, allowing
           among other things generic fast GUP to be used.
      
         - Miscellaneous fixes & cleanups.
      
        And platform specific changes:
      
         - Major improvements to Ingenic SoC support from Paul Cercueil,
           mostly enabled by the inclusion of the new TCU (timer-counter unit)
           drivers he's spent a very patient year or so working on. Plus some
           fixes for X1000 SoCs from Zhou Yanjie.
      
         - Netgear R6200 v1 systems are now supported by the bcm47xx platform.
      
         - DT updates for BMIPS, Lantiq & Microsemi Ocelot systems"
      
      * tag 'mips_5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (89 commits)
        MIPS: Detect bad _PFN_SHIFT values
        MIPS: Disable pte_special() for MIPS32 with RiXi
        MIPS: ralink: deactivate PCI support for SOC_MT7621
        mips: compat: vdso: Use legacy syscalls as fallback
        MIPS: Drop Loongson _CACHE_* definitions
        MIPS: tlbex: Remove cpu_has_local_ebase
        MIPS: tlbex: Simplify r3k check
        MIPS: Select R3k-style TLB in Kconfig
        MIPS: PCI: refactor ioc3 special handling
        mips: remove ioremap_cachable
        mips/atomic: Fix smp_mb__{before,after}_atomic()
        mips/atomic: Fix loongson_llsc_mb() wreckage
        mips/atomic: Fix cmpxchg64 barriers
        MIPS: Octeon: remove duplicated include from dma-octeon.c
        firmware: bcm47xx_nvram: Allow COMPILE_TEST
        firmware: bcm47xx_nvram: Correct size_t printf format
        MIPS: Treat Loongson Extensions as ASEs
        MIPS: Remove dev_err() usage after platform_get_irq()
        MIPS: dts: mscc: describe the PTP ready interrupt
        MIPS: dts: mscc: describe the PTP register range
        ...
      5c6bd5de
  4. Sep 22, 2019
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · f7c3bf8f
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Use asynchronous glocks and timeouts to recover from deadlocks during
         rename and exchange: the lock ordering constraints the vfs uses are
         not sufficient to prevent deadlocks across multiple nodes.
      
       - Add support for IOMAP_ZERO and use iomap_zero_range to replace gfs2
         specific code.
      
       - Various other minor fixes and cleanups.
      
      * tag 'gfs2-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: clear buf_in_tr when ending a transaction in sweep_bh_for_rgrps
        gfs2: Improve mmap write vs. truncate consistency
        gfs2: Use async glocks for rename
        gfs2: create function gfs2_glock_update_hold_time
        gfs2: separate holder for rgrps in gfs2_rename
        gfs2: Delete an unnecessary check before brelse()
        gfs2: Minor PAGE_SIZE arithmetic cleanups
        gfs2: Fix recovery slot bumping
        gfs2: Fix possible fs name overflows
        gfs2: untangle the logic in gfs2_drevalidate
        gfs2: Always mark inode dirty in fallocate
        gfs2: Minor gfs2_alloc_inode cleanup
        gfs2: implement gfs2_block_zero_range using iomap_zero_range
        gfs2: Add support for IOMAP_ZERO
        gfs2: gfs2_iomap_begin cleanup
      f7c3bf8f
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · fbc246a1
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "In this round, we introduced casefolding support in f2fs, and fixed
        various bugs in individual features such as IO alignment,
        checkpoint=disable, quota, and swapfile.
      
        Enhancement:
         - support casefolding w/ enhancement in ext4
         - support fiemap for directory
         - support FS_IO_GET|SET_FSLABEL
      
        Bug fix:
         - fix IO stuck during checkpoint=disable
         - avoid infinite GC loop
         - fix panic/overflow related to IO alignment feature
         - fix livelock in swap file
         - fix discard command leak
         - disallow dio for atomic_write"
      
      * tag 'f2fs-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (51 commits)
        f2fs: add a condition to detect overflow in f2fs_ioc_gc_range()
        f2fs: fix to add missing F2FS_IO_ALIGNED() condition
        f2fs: fix to fallback to buffered IO in IO aligned mode
        f2fs: fix to handle error path correctly in f2fs_map_blocks
        f2fs: fix ext...
      fbc246a1
    • Linus Torvalds's avatar
      Merge tag 'for_v5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 7ce1e15d
      Linus Torvalds authored
      Pull ext2, quota, udf fixes and cleanups from Jan Kara:
      
       - two small quota fixes (in grace time handling and possible missed
         accounting of preallocated blocks beyond EOF).
      
       - some ext2 cleanups
      
       - udf fixes for better compatibility with Windows 10 generated media
         (named streams, write-protection using domain-identifier, placement
         of volume recognition sequence)
      
       - some udf cleanups
      
      * tag 'for_v5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        quota: fix wrong condition in is_quota_modification()
        fs-udf: Delete an unnecessary check before brelse()
        ext2: Delete an unnecessary check before brelse()
        udf: Drop forward function declarations
        udf: Verify domain identifier fields
        udf: augment UDF permissions on new inodes
        udf: Use dynamic debug infrastructure
        udf: reduce leakage of blocks related to named streams
        udf: prevent allocation beyond UDF partition
        quota: fix con...
      7ce1e15d
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 70cb0d02
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Added new ext4 debugging ioctls to allow userspace to get information
        about the state of the extent status cache.
      
        Dropped workaround for pre-1970 dates which were encoded incorrectly
        in pre-4.4 kernels. Since both the kernel correctly generates, and
        e2fsck detects and fixes this issue for the past four years, it'e time
        to drop the workaround. (Also, it's not like files with dates in the
        distant past were all that common in the first place.)
      
        A lot of miscellaneous bug fixes and cleanups, including some ext4
        Documentation fixes. Also included are two minor bug fixes in
        fs/unicode"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (21 commits)
        unicode: make array 'token' static const, makes object smaller
        unicode: Move static keyword to the front of declarations
        ext4: add missing bigalloc documentation.
        ext4: fix kernel oops caused by spurious casefold flag
        ext4: fix integer overflow when calculating commit interval
        ext4: use percpu_counters for extent_status cache hits/misses
        ext4: fix potential use after free after remounting with noblock_validity
        jbd2: add missing tracepoint for reserved handle
        ext4: fix punch hole for inline_data file systems
        ext4: rework reserved cluster accounting when invalidating pages
        ext4: documentation fixes
        ext4: treat buffers with write errors as containing valid data
        ext4: fix warning inside ext4_convert_unwritten_extents_endio
        ext4: set error return correctly when ext4_htree_store_dirent fails
        ext4: drop legacy pre-1970 encoding workaround
        ext4: add new ioctl EXT4_IOC_GET_ES_CACHE
        ext4: add a new ioctl EXT4_IOC_GETSTATE
        ext4: add a new ioctl EXT4_IOC_CLEAR_ES_CACHE
        jbd2: flush_descriptor(): Do not decrease buffer head's ref count
        ext4: remove unnecessary error check
        ...
      70cb0d02
    • Linus Torvalds's avatar
      Merge tag 'upstream-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs · 104c0d6b
      Linus Torvalds authored
      Pull UBI, UBIFS and JFFS2 updates from Richard Weinberger:
       "UBI:
         - Be less stupid when placing a fastmap anchor
         - Try harder to get an empty PEB in case of contention
         - Make ubiblock to warn if image is not a multiple of 512
      
        UBIFS:
         - Various fixes in error paths
      
        JFFS2:
         - Various fixes in error paths"
      
      * tag 'upstream-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs:
        jffs2: Fix memory leak in jffs2_scan_eraseblock() error path
        jffs2: Remove jffs2_gc_fetch_page and jffs2_gc_release_page
        jffs2: Fix possible null-pointer dereferences in jffs2_add_frag_to_fragtree()
        ubi: block: Warn if volume size is not multiple of 512
        ubifs: Fix memory leak bug in alloc_ubifs_info() error path
        ubifs: Fix memory leak in __ubifs_node_verify_hmac error path
        ubifs: Fix memory leak in read_znode() error path
        ubi: ubi_wl_get_peb: Increase the number of attempts while getting PEB
        ubi: Don't do anchor move within fastmap area
        ubifs: Remove redundant assignment to pointer fname
      104c0d6b
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml · 9dca3432
      Linus Torvalds authored
      Pull UML updates from Richard Weinberger:
      
       - virtio support
      
       - fixes for our new time travel mode
      
       - various improvements to make lockdep and kasan work better
      
       - SPDX header updates
      
      * tag 'for-linus-5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (25 commits)
        um: irq: Fix LAST_IRQ usage in init_IRQ()
        um: Add SPDX headers for files in arch/um/include
        um: Add SPDX headers for files in arch/um/os-Linux
        um: Add SPDX headers to files in arch/um/kernel/
        um: Add SPDX headers for files in arch/um/drivers
        um: virtio: Implement VHOST_USER_PROTOCOL_F_REPLY_ACK
        um: virtio: Implement VHOST_USER_PROTOCOL_F_SLAVE_REQ
        um: drivers: Add virtio vhost-user driver
        um: Use real DMA barriers
        um: Don't use generic barrier.h
        um: time-travel: Restrict time update in IRQ handler
        um: time-travel: Fix periodic timers
        um: Enable CONFIG_CONSTRUCTORS
        um: Place (soft)irq text with macros
        um: Fix VDSO compiler warning
        um: Implement TRACE_IRQFLAGS_SUPPORT
        um: Remove misleading #define ARCh_IRQ_ENABLED
        um: Avoid using uninitialized regs
        um: Remove sig_info[SIGALRM]
        um: Error handling fixes in vector drivers
        ...
      9dca3432
    • Linus Torvalds's avatar
      Merge tag 'mtd/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 4553d469
      Linus Torvalds authored
      Pull MTD updates from Richard Weinberger:
       "MTD core changes:
         - add debugfs nodes for querying the flash name and id
         - mtd parser reorganization
      
        SPI NOR core changes:
         - always use bounce buffer for register read/writes
         - move m25p80 code in spi-nor.c
         - rework hwcaps selection for the spi-mem case
         - rework the core in order to move the manufacturer specific code out
           of it:
             - regroup flash parameters in 'struct spi_nor_flash_parameter'
             - add default_init() and post_sfdp() hooks to tweak the flash
               parameters
             - introduce the ->set_4byte(), ->convert_addr() and ->setup()
               methods, to deal with manufacturer specific code
             - rework the SPI NOR lock/unlock logic
         - fix an error code in spi_nor_read_raw()
         - fix a memory leak bug
         - enable the debugfs for the partname and partid
         - add support for few flashes
      
        SPI NOR controller drivers changes:
         - intel-spi:
             - Whitelist 4B read commands
             - Add support for Intel Tiger Lake SPI serial flash
         - aspeed-smc: Add of_node_put()
         - hisi-sfc: add of_node_put()
         - cadence-quadspi: Fix QSPI RCU Schedule Stall
      
        NAND core:
         - Fixing typos
         - Adding missing of_node_put() in various drivers
      
        Raw NAND controller drivers:
         - Macronix: new controller driver
         - Omap2: fix the number of bitflips returned
         - Brcmnand: fix a pointer not iterating over all the page chunks
         - W90x900: driver removed
         - Onenand: fix a memory leak
         - Sharpsl: missing include guard
         - STM32: avoid warnings when building with W=1
         - Ingenic: fix a coccinelle warning
         - r852: call a helper to simplify the code
      
        CFI core:
         - Kill useless initializer in mtd_do_chip_probe()
         - Fix a rare write failure seen on some cfi_cmdset_0002 compliant
           Parallel NORs
         - Bunch of cleanups for cfi_cmdset_0002 driver's write functions by
           Tokunori Ikegami"
      
      * tag 'mtd/for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (77 commits)
        mtd: pmc551: Remove set but not used variable 'soff_lo'
        mtd: cfi_cmdset_0002: Fix do_erase_chip() to get chip as erasing mode
        mtd: sm_ftl: Fix memory leak in sm_init_zone() error path
        mtd: parsers: Move CMDLINE parser
        mtd: parsers: Move OF parser
        mtd: parsers: Move BCM63xx parser
        mtd: parsers: Move BCM47xx parser
        mtd: parsers: Move TI AR7 parser
        mtd: pismo: Simplify getting the adapter of a client
        mtd: phram: Module parameters add writable permissions
        mtd: pxa2xx: Use ioremap_cache insted of ioremap_cached
        mtd: spi-nor: Rename "n25q512a" to "mt25qu512a (n25q512a)"
        mtd: spi-nor: Add support for mt35xu02g
        mtd: rawnand: omap2: Fix number of bitflips reporting with ELM
        mtd: rawnand: brcmnand: Fix ecc chunk calculation for erased page bitfips
        mtd: spi-nor: remove superfluous pass of nor->info->sector_size
        mtd: spi-nor: enable the debugfs for the partname and partid
        mtd: mtdcore: add debugfs nodes for querying the flash name and id
        mtd: spi-nor: hisi-sfc: Add of_node_put() before break
        mtd: spi-nor: aspeed-smc: Add of_node_put()
        ...
      4553d469
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 6cb2e9ee
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
       "Some reworks to better support nvdimms on powerpc and an nvdimm
        security interface update:
      
         - Rework the nvdimm core to accommodate architectures with different
           page sizes and ones that can change supported huge page sizes at
           boot time rather than a compile time constant.
      
         - Introduce a distinct 'frozen' attribute for the nvdimm security
           state since it is independent of the locked state.
      
         - Miscellaneous fixups"
      
      * tag 'libnvdimm-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        libnvdimm: Use PAGE_SIZE instead of SZ_4K for align check
        libnvdimm/label: Remove the dpa align check
        libnvdimm/pfn_dev: Add page size and struct page size to pfn superblock
        libnvdimm/pfn_dev: Add a build check to make sure we notice when struct page size change
        libnvdimm/pmem: Advance namespace seed for specific probe errors
        libnvdimm/region: Rewrite _probe_success() to _advance_seeds()
        libnvdimm/security: Consolidate 'security' operations
        libnvdimm/security: Tighten scope of nvdimm->busy vs security operations
        libnvdimm/security: Introduce a 'frozen' attribute
        libnvdimm, region: Use struct_size() in kzalloc()
        tools/testing/nvdimm: Fix fallthrough warning
        libnvdimm/of_pmem: Provide a unique name for bus provider
      6cb2e9ee
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 10fd7178
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is mostly update of the usual drivers: qla2xxx, ufs, smartpqi,
        lpfc, hisi_sas, qedf, mpt3sas; plus a whole load of minor updates. The
        only core change this time around is the addition of request batching
        for virtio. Since batching requires an additional flag to use, it
        should be invisible to the rest of the drivers"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (264 commits)
        scsi: hisi_sas: Fix the conflict between device gone and host reset
        scsi: hisi_sas: Add BIST support for phy loopback
        scsi: hisi_sas: Add hisi_sas_debugfs_alloc() to centralise allocation
        scsi: hisi_sas: Remove some unused function arguments
        scsi: hisi_sas: Remove redundant work declaration
        scsi: hisi_sas: Remove hisi_sas_hw.slot_complete
        scsi: hisi_sas: Assign NCQ tag for all NCQ commands
        scsi: hisi_sas: Update all the registers after suspend and resume
        scsi: hisi_sas: Retry 3 times TMF IO for SAS disks when init device
        scsi: hisi_sas: Remove sleep after issue phy reset if sas_smp_phy_control() fails
        scsi: hisi_sas: Directly return when running I_T_nexus reset if phy disabled
        scsi: hisi_sas: Use true/false as input parameter of sas_phy_reset()
        scsi: hisi_sas: add debugfs auto-trigger for internal abort time out
        scsi: virtio_scsi: unplug LUNs when events missed
        scsi: scsi_dh_rdac: zero cdb in send_mode_select()
        scsi: fcoe: fix null-ptr-deref Read in fc_release_transport
        scsi: ufs-hisi: use devm_platform_ioremap_resource() to simplify code
        scsi: ufshcd: use devm_platform_ioremap_resource() to simplify code
        scsi: hisi_sas: use devm_platform_ioremap_resource() to simplify code
        scsi: ufs: Use kmemdup in ufshcd_read_string_desc()
        ...
      10fd7178
    • Linus Torvalds's avatar
      Merge tag 'for-5.4/dm-changes' of... · 3e414b5b
      Linus Torvalds authored
      Merge tag 'for-5.4/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - crypto and DM crypt advances that allow the crypto API to reclaim
         implementation details that do not belong in DM crypt. The wrapper
         template for ESSIV generation that was factored out will also be used
         by fscrypt in the future.
      
       - Add root hash pkcs#7 signature verification to the DM verity target.
      
       - Add a new "clone" DM target that allows for efficient remote
         replication of a device.
      
       - Enhance DM bufio's cache to be tailored to each client based on use.
         Clients that make heavy use of the cache get more of it, and those
         that use less have reduced cache usage.
      
       - Add a new DM_GET_TARGET_VERSION ioctl to allow userspace to query the
         version number of a DM target (even if the associated module isn't
         yet loaded).
      
       - Fix invalid memory access in DM zoned target.
      
       - Fix the max_discard_sectors limit advertised by the DM raid target;
         it was mistakenly storing the limit in bytes rather than sectors.
      
       - Small optimizations and cleanups in DM writecache target.
      
       - Various fixes and cleanups in DM core, DM raid1 and space map portion
         of DM persistent data library.
      
      * tag 'for-5.4/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (22 commits)
        dm: introduce DM_GET_TARGET_VERSION
        dm bufio: introduce a global cache replacement
        dm bufio: remove old-style buffer cleanup
        dm bufio: introduce a global queue
        dm bufio: refactor adjust_total_allocated
        dm bufio: call adjust_total_allocated from __link_buffer and __unlink_buffer
        dm: add clone target
        dm raid: fix updating of max_discard_sectors limit
        dm writecache: skip writecache_wait for pmem mode
        dm stats: use struct_size() helper
        dm crypt: omit parsing of the encapsulated cipher
        dm crypt: switch to ESSIV crypto API template
        crypto: essiv - create wrapper template for ESSIV generation
        dm space map common: remove check for impossible sm_find_free() return value
        dm raid1: use struct_size() with kzalloc()
        dm writecache: optimize performance by sorting the blocks for writeback_all
        dm writecache: add unlikely for getting two block with same LBA
        dm writecache: remove unused member pointer in writeback_struct
        dm zoned: fix invalid memory access
        dm verity: add root hash pkcs#7 signature verification
        ...
      3e414b5b
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 018c6837
      Linus Torvalds authored
      Pull RDMA subsystem updates from Jason Gunthorpe:
       "This cycle mainly saw lots of bug fixes and clean up code across the
        core code and several drivers, few new functional changes were made.
      
         - Many cleanup and bug fixes for hns
      
         - Various small bug fixes and cleanups in hfi1, mlx5, usnic, qed,
           bnxt_re, efa
      
         - Share the query_port code between all the iWarp drivers
      
         - General rework and cleanup of the ODP MR umem code to fit better
           with the mmu notifier get/put scheme
      
         - Support rdma netlink in non init_net name spaces
      
         - mlx5 support for XRC devx and DC ODP"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (99 commits)
        RDMA: Fix double-free in srq creation error flow
        RDMA/efa: Fix incorrect error print
        IB/mlx5: Free mpi in mp_slave mode
        IB/mlx5: Use the original address for the page during free_pages
        RDMA/bnxt_re: Fix spelling mistake "missin_resp" -> "missing_resp"
        RDMA/hns: Package operations of rq inline buffer into separate functions
        RDMA/hns: Optimize cmd init and mode selection for hip08
        IB/hfi1: Define variables as unsigned long to fix KASAN warning
        IB/{rdmavt, hfi1, qib}: Add a counter for credit waits
        IB/hfi1: Add traces for TID RDMA READ
        RDMA/siw: Relax from kmap_atomic() use in TX path
        IB/iser: Support up to 16MB data transfer in a single command
        RDMA/siw: Fix page address mapping in TX path
        RDMA: Fix goto target to release the allocated memory
        RDMA/usnic: Avoid overly large buffers on stack
        RDMA/odp: Add missing cast for 32 bit
        RDMA/hns: Use devm_platform_ioremap_resource() to simplify code
        Documentation/infiniband: update name of some functions
        RDMA/cma: Fix false error message
        RDMA/hns: Fix wrong assignment of qp_access_flags
        ...
      018c6837
    • Linus Torvalds's avatar
      Merge tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 84da111d
      Linus Torvalds authored
      Pull hmm updates from Jason Gunthorpe:
       "This is more cleanup and consolidation of the hmm APIs and the very
        strongly related mmu_notifier interfaces. Many places across the tree
        using these interfaces are touched in the process. Beyond that a
        cleanup to the page walker API and a few memremap related changes
        round out the series:
      
         - General improvement of hmm_range_fault() and related APIs, more
           documentation, bug fixes from testing, API simplification &
           consolidation, and unused API removal
      
         - Simplify the hmm related kconfigs to HMM_MIRROR and DEVICE_PRIVATE,
           and make them internal kconfig selects
      
         - Hoist a lot of code related to mmu notifier attachment out of
           drivers by using a refcount get/put attachment idiom and remove the
           convoluted mmu_notifier_unregister_no_release() and related APIs.
      
         - General API improvement for the migrate_vma API and revision of its
           only user in nouveau
      
         - Annotate mmu_notifiers with lockdep and sleeping region debugging
      
        Two series unrelated to HMM or mmu_notifiers came along due to
        dependencies:
      
         - Allow pagemap's memremap_pages family of APIs to work without
           providing a struct device
      
         - Make walk_page_range() and related use a constant structure for
           function pointers"
      
      * tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (75 commits)
        libnvdimm: Enable unit test infrastructure compile checks
        mm, notifier: Catch sleeping/blocking for !blockable
        kernel.h: Add non_block_start/end()
        drm/radeon: guard against calling an unpaired radeon_mn_unregister()
        csky: add missing brackets in a macro for tlb.h
        pagewalk: use lockdep_assert_held for locking validation
        pagewalk: separate function pointers from iterator data
        mm: split out a new pagewalk.h header from mm.h
        mm/mmu_notifiers: annotate with might_sleep()
        mm/mmu_notifiers: prime lockdep
        mm/mmu_notifiers: add a lockdep map for invalidate_range_start/end
        mm/mmu_notifiers: remove the __mmu_notifier_invalidate_range_start/end exports
        mm/hmm: hmm_range_fault() infinite loop
        mm/hmm: hmm_range_fault() NULL pointer bug
        mm/hmm: fix hmm_range_fault()'s handling of swapped out pages
        mm/mmu_notifiers: remove unregister_no_release
        RDMA/odp: remove ib_ucontext from ib_umem
        RDMA/odp: use mmu_notifier_get/put for 'struct ib_ucontext_per_mm'
        RDMA/mlx5: Use odp instead of mr->umem in pagefault_mr
        RDMA/mlx5: Use ib_umem_start instead of umem.address
        ...
      84da111d
    • Linus Torvalds's avatar
      Merge tag 'compiler-attributes-for-linus-v5.4' of git://github.com/ojeda/linux · 227c3e9e
      Linus Torvalds authored
      Pull asm inline support from Miguel Ojeda:
       "Make use of gcc 9's "asm inline()" (Rasmus Villemoes):
      
        gcc 9+ (and gcc 8.3, 7.5) provides a way to override the otherwise
        crude heuristic that gcc uses to estimate the size of the code
        represented by an asm() statement. From the gcc docs
      
            If you use 'asm inline' instead of just 'asm', then for inlining
            purposes the size of the asm is taken as the minimum size, ignoring
            how many instructions GCC thinks it is.
      
        For compatibility with older compilers, we obviously want a
      
            #if [understands asm inline]
            #define asm_inline asm inline
            #else
            #define asm_inline asm
            #endif
      
        But since we #define the identifier inline to attach some attributes,
        we have to use an alternate spelling of that keyword. gcc provides
        both __inline__ and __inline, and we currently #define both to inline,
        so they all have the same semantics.
      
        We have to free up one of __inline__ and __inline, and the latter is
        by far the easiest.
      
        The two x86 changes cause smaller code gen differences than I'd
        expect, but I think we do want the asm_inline thing available sooner
        or later, so this is just to get the ball rolling"
      
      * tag 'compiler-attributes-for-linus-v5.4' of git://github.com/ojeda/linux:
        x86: bug.h: use asm_inline in _BUG_FLAGS definitions
        x86: alternative.h: use asm_inline for all alternative variants
        compiler-types.h: add asm_inline definition
        compiler_types.h: don't #define __inline
        lib/zstd/mem.h: replace __inline by inline
        staging: rtl8723bs: replace __inline by inline
      227c3e9e
    • Linus Torvalds's avatar
      Merge tag 'gcc-plugins-v5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 56c631f5
      Linus Torvalds authored
      Pull gcc-plugins fix from Kees Cook:
       "Fix a potential problem in randomize_layout structure auto-selection
        (that was not triggered by any existing kernel structures)"
      
      * tag 'gcc-plugins-v5.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        randstruct: Check member structs in is_pure_ops_struct()
      56c631f5
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk · 56c1e834
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Fix off-by-one error when calculating messages that might fit into
         kmsg buffer. It causes occasional omitting of the last message.
      
       - Add missing pointer check in %pD format modifier handling.
      
       - Some clean up
      
      * tag 'printk-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk:
        ABI: Update dev-kmsg documentation to match current kernel behaviour
        printk: Replace strncmp() with str_has_prefix()
        lib/test_printf: Remove obvious comments from %pd and %pD tests
        lib/test_printf: Add test of null/invalid pointer dereference for dentry
        vsprintf: Prevent crash when dereferencing invalid pointers for %pD
        printk: Do not lose last line in kmsg buffer dump
      56c1e834
  5. Sep 21, 2019
    • Linus Torvalds's avatar
      Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · f97c81dc
      Linus Torvalds authored
      Pull ARM SoC late updates from Arnd Bergmann:
       "This is some material that we picked up into our tree late or that had
        complex inter-depondencies. The fact that there are these
        interdependencies tends to meant that these are often actually the
        most interesting new additions:
      
         - The new Aspeed AST2600 baseboard management controller is added,
           this is a Cortex-A7 based follow-up to the ARM11 based AST2500 and
           had some dependencies on other device drivers.
      
         - After many years, support for the MMP2 based OLPC XO-1.75 finally
           makes it into the kernel.
      
         - The Armada 3720 based Turris Mox open source router platform is a
           late addition and it follows some preparatory work across multiple
           branches.
      
         - The OMAP2+ platform had some large-scale cleanup involving driver
           changes and DT changes, here we finish it off, dropping a lot of
           the now-unused platform data.
      
         - The TI K3 platform that got added for 5.3 gains a lot more support
           for individual bits on the SoC, this part just came late for the
           merge window"
      
      [ This pull request itself wasn't actually sent late at all by Arnd, but
        I waited on the branches that it used to be pulled first, so it ends
        up being merged much later than the other ARM SoC pull requests this
        merge window     - Linus ]
      
      * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (57 commits)
        ARM: dts: dir685: Drop spi-cpol from the display
        ARM: dts: aspeed: Add AST2600 pinmux nodes
        ARM: dts: aspeed: Add AST2600 and EVB
        ARM: exynos: Enable support for ARM architected timers
        ARM: samsung: Fix system restart on S3C6410
        ARM: dts: mmp2: add OLPC XO 1.75 machine
        ARM: dts: mmp2: rename the USB PHY node
        ARM: dts: mmp2: specify reg-shift for the UARTs
        ARM: dts: mmp2: add camera interfaces
        ARM: dts: mmp2: fix the SPI nodes
        ARM: dts: mmp2: trivial whitespace fix
        arm64: dts: marvell: add DTS for Turris Mox
        dt-bindings: marvell: document Turris Mox compatible
        arm64: dts: marvell: armada-37xx: add SPI CS1 pinctrl
        arm64: dts: ti: k3-j721e-main: Fix gic-its node unit-address
        arm64: dts: ti: k3-am65-main: Fix gic-its node unit-address
        arm64: dts: ti: k3-j721e-main: Add hwspinlock node
        arm64: dts: ti: k3-am65-main: Add hwspinlock node
        arm64: dts: k3-j721e: Add gpio-keys on common processor board
        dt-bindings: pinctrl: k3: Introduce pinmux definitions for J721E
        ...
      f97c81dc
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · a703d279
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "We have a small collection of core framework updates this time, mostly
        around clk registration by clk providers and debugfs "nice to haves"
        for rate constraints. I'll highlight that we're now setting the
        clk_init_data pointer inside struct clk_hw to NULL during
        clk_register(), which may break some drivers that thought they could
        use that pointer during normal operations. That change has been
        sitting in next for a while now but maybe something is still broken.
        We'l see. Other than that the core framework changes aren't invasive
        and they're fixing bugs, simplifying, and making things better.
      
        On the clk driver side we got the usual addition of new SoC support,
        new features for existing drivers, and bug fixes scattered throughout.
        The biggest diffstat is the Amlogic driver that gained CPU clk support
        in addition to migrating to the new way of specifying clk parents.
        After that the Qualcomm, i.MX, Mediatek, and Rockchip clk drivers got
        support for various new SoCs and clock controllers from those vendors.
      
        Core:
         - Drop NULL checks in clk debugfs
         - Add min/max rates to clk debugfs
         - Set clk_init_data pointer inside clk_hw to NULL after registration
         - Make clk_bulk_get_all() return an 'id' corresponding to clock-names
         - Evict parents from parent cache when they're unregistered
      
        New Drivers:
         - Add clock driver for i.MX8MN SoCs
         - Support aspeed AST2600 SoCs
         - Support for Mediatek MT6779 SoCs
         - Support qcom SM8150 GCC and RPMh clks
         - Support qcom QCS404 WCSS clks
         - Add CPU clock support for Armada 7K/8K (specifically AP806 and AP807)
         - Addition of clock driver for Rockchip rk3308 SoCs
      
        Updates:
         - Add regulator support to the cdce925 clk driver
         - Add support for Raspberry Pi 4 bcm2711 SoCs
         - Add SDIO gate support to aspeed driver
         - Add missing of_node_put() calls in various clk drivers
         - Migrate Amlogic driver to new clock parent description method
         - Add DVFS support to Amlogic Meson g12
         - Add Amlogic Meson g12a reset support to the axg audio clock controller
         - Add sm1 support to the Amlogic Meson g12a clock controller
         - Switch i.MX8MM clock driver to platform driver
         - Add Hifi4 DSP related clocks for i.MX8QXP SoC
         - Fix Audio PLL setting and parent clock for USB
         - Misc i.MX8 clock driver improvements and corrections
         - Set floor ops for Qualcomm SD clks so that rounding works
         - Fix "always-on" Clock Domains on Renesas R-Car M1A, RZ/A1, RZ/A2, and RZ/N1
         - Enable the Allwinner V3 SoC and fix the i2s clock for H6"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (137 commits)
        clk: Drop !clk checks in debugfs dumping
        clk: imx: imx8mn: fix pll mux bit
        clk: imx: imx8mm: fix pll mux bit
        clk: imx: clk-pll14xx: unbypass PLL by default
        clk: imx: pll14xx: avoid glitch when set rate
        clk: mvebu: ap80x: add AP807 clock support
        clk: mvebu: ap806: Prepare the introduction of AP807 clock support
        clk: mvebu: ap806: add AP-DCLK (hclk) to system controller driver
        clk: mvebu: ap806: be more explicit on what SaR is
        clk: mvebu: ap80x-cpu: add AP807 CPU clock support
        clk: mvebu: ap806-cpu: prepare mapping of AP807 CPU clock
        dt-bindings: ap806: Document AP807 clock compatible
        dt-bindings: ap80x: Document AP807 CPU clock compatible
        clk: sprd: add missing kfree
        clk: at91: allow 24 Mhz clock as input for PLL
        clk: Make clk_bulk_get_all() return a valid "id"
        clk: actions: Fix factor clk struct member access
        clk: qcom: rcg: Return failure for RCG update
        clk: remove extra ---help--- tags in Kconfig
        clk: add include guard to clk-conf.h
        ...
      a703d279
    • Linus Torvalds's avatar
      Merge tag 'vfio-v5.4-rc1' of git://github.com/awilliam/linux-vfio · 1ddd0027
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - Fix spapr iommu error case case (Alexey Kardashevskiy)
      
       - Consolidate region type definitions (Cornelia Huck)
      
       - Restore saved original PCI state on release (hexin)
      
       - Simplify mtty sample driver interrupt path (Parav Pandit)
      
       - Support for reporting valid IOVA regions to user (Shameer Kolothum)
      
      * tag 'vfio-v5.4-rc1' of git://github.com/awilliam/linux-vfio:
        vfio_pci: Restore original state on release
        vfio/type1: remove duplicate retrieval of reserved regions
        vfio/type1: Add IOVA range capability support
        vfio/type1: check dma map request is within a valid iova range
        vfio/spapr_tce: Fix incorrect tce_iommu_group memory free
        vfio-mdev/mtty: Simplify interrupt generation
        vfio: re-arrange vfio region definitions
        vfio/type1: Update iova list on detach
        vfio/type1: Check reserved region conflict and update iova list
        vfio/type1: Introduce iova list and add iommu aperture validity check
      1ddd0027
    • Paul Burton's avatar
      MIPS: Detect bad _PFN_SHIFT values · 05d013a0
      Paul Burton authored
      
      
      2 recent commits have fixed issues where _PFN_SHIFT grew too large due
      to the introduction of too many pgprot bits in our PTEs for some MIPS32
      kernel configurations. Tracking down such issues can be tricky, so add a
      BUILD_BUG_ON() to help.
      
      Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
      Cc: linux-mips@vger.kernel.org
      05d013a0
    • Paul Burton's avatar
      MIPS: Disable pte_special() for MIPS32 with RiXi · d1af2ab3
      Paul Burton authored
      Commit 61cbfff4 ("MIPS: pte_special()/pte_mkspecial() support")
      added a _PAGE_SPECIAL bit to the pgprot bits of our PTEs. Unfortunately
      for MIPS32 configurations with RiXi support this pushed the number of
      pgprot bits to 13. Since the PFN field in EntryLo begins at bit 12 this
      results in us shifting the most significant bit of the physical address
      beyond the end of the PTE, leading any mapped access to a physical
      address above 2GB to incorrectly access an address 2GB lower than
      intended.
      
      For now, disable the pte_special() support for MIPS32 configurations
      that support RiXi.
      
      Fixes: 61cbfff4
      
       ("MIPS: pte_special()/pte_mkspecial() support")
      Signed-off-by: default avatarPaul Burton <paul.burton@mips.com>
      Cc: Dmitry Korotin <dkorotin@wavecomp.com>
      Cc: linux-mips@vger.kernel.org
      d1af2ab3
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 45824fc0
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
       "This is a bit late, partly due to me travelling, and partly due to a
        power outage knocking out some of my test systems *while* I was
        travelling.
      
         - Initial support for running on a system with an Ultravisor, which
           is software that runs below the hypervisor and protects guests
           against some attacks by the hypervisor.
      
         - Support for building the kernel to run as a "Secure Virtual
           Machine", ie. as a guest capable of running on a system with an
           Ultravisor.
      
         - Some changes to our DMA code on bare metal, to allow devices with
           medium sized DMA masks (> 32 && < 59 bits) to use more than 2GB of
           DMA space.
      
         - Support for firmware assisted crash dumps on bare metal (powernv).
      
         - Two series fixing bugs in and refactoring our PCI EEH code.
      
         - A large series refactoring our exception entry code to use gas
           macros, both to make it more readable and also enable some future
           optimisations.
      
        As well as many cleanups and other minor features & fixups.
      
        Thanks to: Adam Zerella, Alexey Kardashevskiy, Alistair Popple, Andrew
        Donnellan, Aneesh Kumar K.V, Anju T Sudhakar, Anshuman Khandual,
        Balbir Singh, Benjamin Herrenschmidt, Cédric Le Goater, Christophe
        JAILLET, Christophe Leroy, Christopher M. Riedl, Christoph Hellwig,
        Claudio Carvalho, Daniel Axtens, David Gibson, David Hildenbrand,
        Desnes A. Nunes do Rosario, Ganesh Goudar, Gautham R. Shenoy, Greg
        Kurz, Guerney Hunt, Gustavo Romero, Halil Pasic, Hari Bathini, Joakim
        Tjernlund, Jonathan Neuschafer, Jordan Niethe, Leonardo Bras, Lianbo
        Jiang, Madhavan Srinivasan, Mahesh Salgaonkar, Mahesh Salgaonkar,
        Masahiro Yamada, Maxiwell S. Garcia, Michael Anderson, Nathan
        Chancellor, Nathan Lynch, Naveen N. Rao, Nicholas Piggin, Oliver
        O'Halloran, Qian Cai, Ram Pai, Ravi Bangoria, Reza Arbab, Ryan Grimm,
        Sam Bobroff, Santosh Sivaraj, Segher Boessenkool, Sukadev Bhattiprolu,
        Thiago Bauermann, Thiago Jung Bauermann, Thomas Gleixner, Tom
        Lendacky, Vasant Hegde"
      
      * tag 'powerpc-5.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (264 commits)
        powerpc/mm/mce: Keep irqs disabled during lockless page table walk
        powerpc: Use ftrace_graph_ret_addr() when unwinding
        powerpc/ftrace: Enable HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
        ftrace: Look up the address of return_to_handler() using helpers
        powerpc: dump kernel log before carrying out fadump or kdump
        docs: powerpc: Add missing documentation reference
        powerpc/xmon: Fix output of XIVE IPI
        powerpc/xmon: Improve output of XIVE interrupts
        powerpc/mm/radix: remove useless kernel messages
        powerpc/fadump: support holes in kernel boot memory area
        powerpc/fadump: remove RMA_START and RMA_END macros
        powerpc/fadump: update documentation about option to release opalcore
        powerpc/fadump: consider f/w load area
        powerpc/opalcore: provide an option to invalidate /sys/firmware/opal/core file
        powerpc/opalcore: export /sys/firmware/opal/core for analysing opal crashes
        powerpc/fadump: update documentation about CONFIG_PRESERVE_FA_DUMP
        powerpc/fadump: add support to preserve crash data on FADUMP disabled kernel
        powerpc/fadump: improve how crashed kernel's memory is reserved
        powerpc/fadump: consider reserved ranges while releasing memory
        powerpc/fadump: make crash memory ranges array allocation generic
        ...
      45824fc0
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 8c2b418c
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "We've had a few arm64 fixes trickle in this week. Nothing catastophic,
        but all things that should be addressed:
      
         - Fix clang build breakage with CONFIG_OPTIMIZE_INLINING=y
      
         - Fix compilation of pointer tagging selftest
      
         - Fix COND_SYSCALL definitions to work with CFI checks
      
         - Fix stale documentation reference in our Kconfig"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: Fix reference to docs for ARM64_TAGGED_ADDR_ABI
        arm64: fix function types in COND_SYSCALL
        selftests, arm64: add kernel headers path for tags_test
        arm64: fix unreachable code issue with cmpxchg
      8c2b418c
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel · bb736a5c
      Linus Torvalds authored
      Pull Hexagon maintainership update from Richard Kuo:
       "I am leaving QuIC, and Brian Cain will be taking over maintainership
        of the Hexagon port"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rkuo/linux-hexagon-kernel:
        Hexagon: change maintainer to Brian Cain
      bb736a5c