1. 02 Jun, 2020 1 commit
    • Linus Torvalds's avatar
      gup: document and work around "COW can break either way" issue · 17839856
      Linus Torvalds authored
      Doing a "get_user_pages()" on a copy-on-write page for reading can be
      ambiguous: the page can be COW'ed at any time afterwards, and the
      direction of a COW event isn't defined.
      
      Yes, whoever writes to it will generally do the COW, but if the thread
      that did the get_user_pages() unmapped the page before the write (and
      that could happen due to memory pressure in addition to any outright
      action), the writer could also just take over the old page instead.
      
      End result: the get_user_pages() call might result in a page pointer
      that is no longer associated with the original VM, and is associated
      with - and controlled by - another VM having taken it over instead.
      
      So when doing a get_user_pages() on a COW mapping, the only really safe
      thing to do would be to break the COW when getting the page, even when
      only getting it for reading.
      
      At the same time, some users simply don't even care.
      
      For example, the perf code wants to look up the page not because it
      cares about the page, but because the code simply wants to look up the
      physical address of the access for informational purposes, and doesn't
      really care about races when a page might be unmapped and remapped
      elsewhere.
      
      This adds logic to force a COW event by setting FOLL_WRITE on any
      copy-on-write mapping when FOLL_GET (or FOLL_PIN) is used to get a page
      pointer as a result.
      
      The current semantics end up being:
      
       - __get_user_pages_fast(): no change. If you don't ask for a write,
         you won't break COW. You'd better know what you're doing.
      
       - get_user_pages_fast(): the fast-case "look it up in the page tables
         without anything getting mmap_sem" now refuses to follow a read-only
         page, since it might need COW breaking.  Which happens in the slow
         path - the fast path doesn't know if the memory might be COW or not.
      
       - get_user_pages() (including the slow-path fallback for gup_fast()):
         for a COW mapping, turn on FOLL_WRITE for FOLL_GET/FOLL_PIN, with
         very similar semantics to FOLL_FORCE.
      
      If it turns out that we want finer granularity (ie "only break COW when
      it might actually matter" - things like the zero page are special and
      don't need to be broken) we might need to push these semantics deeper
      into the lookup fault path.  So if people care enough, it's possible
      that we might end up adding a new internal FOLL_BREAK_COW flag to go
      with the internal FOLL_COW flag we already have for tracking "I had a
      COW".
      
      Alternatively, if it turns out that different callers might want to
      explicitly control the forced COW break behavior, we might even want to
      make such a flag visible to the users of get_user_pages() instead of
      using the above default semantics.
      
      But for now, this is mostly commentary on the issue (this commit message
      being a lot bigger than the patch, and that patch in turn is almost all
      comments), with that minimal "enable COW breaking early" logic using the
      existing FOLL_WRITE behavior.
      
      [ It might be worth noting that we've always had this ambiguity, and it
        could arguably be seen as a user-space issue.
      
        You only get private COW mappings that could break either way in
        situations where user space is doing cooperative things (ie fork()
        before an execve() etc), but it _is_ surprising and very subtle, and
        fork() is supposed to give you independent address spaces.
      
        So let's treat this as a kernel issue and make the semantics of
        get_user_pages() easier to understand. Note that obviously a true
        shared mapping will still get a page that can change under us, so this
        does _not_ mean that get_user_pages() somehow returns any "stable"
        page ]
      Reported-by: default avatarJann Horn <jannh@google.com>
      Tested-by: default avatarChristoph Hellwig <hch@lst.de>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Acked-by: default avatarKirill Shutemov <kirill@shutemov.name>
      Acked-by: default avatarJan Kara <jack@suse.cz>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      17839856
  2. 01 Jun, 2020 39 commits
    • Linus Torvalds's avatar
      Merge branch 'from-miklos' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · f3592877
      Linus Torvalds authored
      Pull vfs updates from Al Viro:
       "Assorted patches from Miklos.
      
        An interesting part here is /proc/mounts stuff..."
      
      The "/proc/mounts stuff" is using a cursor for keeeping the location
      data while traversing the mount listing.
      
      Also probably worth noting is the addition of faccessat2(), which takes
      an additional set of flags to specify how the lookup is done
      (AT_EACCESS, AT_SYMLINK_NOFOLLOW, AT_EMPTY_PATH).
      
      * 'from-miklos' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: add faccessat2 syscall
        vfs: don't parse "silent" option
        vfs: don't parse "posixacl" option
        vfs: don't parse forbidden flags
        statx: add mount_root
        statx: add mount ID
        statx: don't clear STATX_ATIME on SB_RDONLY
        uapi: deprecate STATX_ALL
        utimensat: AT_EMPTY_PATH support
        vfs: split out access_override_creds()
        proc/mounts: add cursor
        aio: fix async fsync creds
        vfs: allow unprivileged whiteout creation
      f3592877
    • Linus Torvalds's avatar
      Merge branch 'work.set_fs-exec' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 8b39a57e
      Linus Torvalds authored
      Pull uaccess/coredump updates from Al Viro:
       "set_fs() removal in coredump-related area - mostly Christoph's
        stuff..."
      
      * 'work.set_fs-exec' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        binfmt_elf_fdpic: remove the set_fs(KERNEL_DS) in elf_fdpic_core_dump
        binfmt_elf: remove the set_fs(KERNEL_DS) in elf_core_dump
        binfmt_elf: remove the set_fs in fill_siginfo_note
        signal: refactor copy_siginfo_to_user32
        powerpc/spufs: simplify spufs core dumping
        powerpc/spufs: stop using access_ok
        powerpc/spufs: fix copy_to_user while atomic
      8b39a57e
    • Linus Torvalds's avatar
      Merge branch 'uaccess.__copy_to_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 062ea674
      Linus Torvalds authored
      Pull uaccess/__copy_to_user updates from Al Viro:
       "Getting rid of __copy_to_user() callers - stuff that doesn't fit into
        other series"
      
      * 'uaccess.__copy_to_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        dlmfs: convert dlmfs_file_read() to copy_to_user()
        esas2r: don't bother with __copy_to_user()
      062ea674
    • Linus Torvalds's avatar
      Merge branch 'uaccess.__copy_from_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 56446efa
      Linus Torvalds authored
      Pull uaccess/__copy_from_user updates from Al Viro:
       "Getting rid of __copy_from_user() callers - patches that don't fit
        into other series"
      
      * 'uaccess.__copy_from_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        pstore: switch to copy_from_user()
        firewire: switch ioctl_queue_iso to use of copy_from_user()
      56446efa
    • Linus Torvalds's avatar
      Merge branch 'uaccess.__put_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 4fdea584
      Linus Torvalds authored
      Pull uaccess/__put-user updates from Al Viro:
       "Removal of __put_user() calls - misc patches that don't fit into any
        other series"
      
      * 'uaccess.__put_user' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        pcm_native: result of put_user() needs to be checked
        scsi_ioctl.c: switch SCSI_IOCTL_GET_IDLUN to copy_to_user()
        compat sysinfo(2): don't bother with field-by-field copyout
      4fdea584
    • Linus Torvalds's avatar
      Merge branch 'uaccess.readdir' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · e148a8f9
      Linus Torvalds authored
      Pull uaccess/readdir updates from Al Viro:
       "Finishing the conversion of readdir.c to unsafe_... API.
      
        This includes the uaccess_{read,write}_begin series by Christophe
        Leroy"
      
      * 'uaccess.readdir' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        readdir.c: get rid of the last __put_user(), drop now-useless access_ok()
        readdir.c: get compat_filldir() more or less in sync with filldir()
        switch readdir(2) to unsafe_copy_dirent_name()
        drm/i915/gem: Replace user_access_begin by user_write_access_begin
        uaccess: Selectively open read or write user access
        uaccess: Add user_read_access_begin/end and user_write_access_begin/end
      e148a8f9
    • Linus Torvalds's avatar
      Merge branch 'uaccess.access_ok' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · e0cd9206
      Linus Torvalds authored
      Pull uaccess/access_ok updates from Al Viro:
       "Removals of trivially pointless access_ok() calls.
      
        Note: the fiemap stuff was removed from the series, since they are
        duplicates with part of ext4 series carried in Ted's tree"
      
      * 'uaccess.access_ok' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vmci_host: get rid of pointless access_ok()
        hfi1: get rid of pointless access_ok()
        usb: get rid of pointless access_ok() calls
        lpfc_debugfs: get rid of pointless access_ok()
        efi_test: get rid of pointless access_ok()
        drm_read(): get rid of pointless access_ok()
        via-pmu: don't bother with access_ok()
        drivers/crypto/ccp/sev-dev.c: get rid of pointless access_ok()
        omapfb: get rid of pointless access_ok() calls
        amifb: get rid of pointless access_ok() calls
        drivers/fpga/dfl-afu-dma-region.c: get rid of pointless access_ok()
        drivers/fpga/dfl-fme-pr.c: get rid of pointless access_ok()
        cm4000_cs.c cmm_ioctl(): get rid of pointless access_ok()
        nvram: drop useless access_ok()
        n_hdlc_tty_read(): remove pointless access_ok()
        tomoyo_write_control(): get rid of pointless access_ok()
        btrfs_ioctl_send(): don't bother with access_ok()
        fat_dir_ioctl(): hadn't needed that access_ok() for more than a decade...
        dlmfs_file_write(): get rid of pointless access_ok()
      e0cd9206
    • Linus Torvalds's avatar
      Merge branch 'uaccess.csum' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 4b01285e
      Linus Torvalds authored
      Pull uaccess/csum updates from Al Viro:
       "Regularize the sitation with uaccess checksum primitives:
      
         - fold csum_partial_... into csum_and_copy_..._user()
      
         - on x86 collapse several access_ok()/stac()/clac() into
           user_access_begin()/user_access_end()"
      
      * 'uaccess.csum' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        default csum_and_copy_to_user(): don't bother with access_ok()
        take the dummy csum_and_copy_from_user() into net/checksum.h
        arm: switch to csum_and_copy_from_user()
        sh32: convert to csum_and_copy_from_user()
        m68k: convert to csum_and_copy_from_user()
        xtensa: switch to providing csum_and_copy_from_user()
        sparc: switch to providing csum_and_copy_from_user()
        parisc: turn csum_partial_copy_from_user() into csum_and_copy_from_user()
        alpha: turn csum_partial_copy_from_user() into csum_and_copy_from_user()
        ia64: turn csum_partial_copy_from_user() into csum_and_copy_from_user()
        ia64: csum_partial_copy_nocheck(): don't abuse csum_partial_copy_from_user()
        x86: switch 32bit csum_and_copy_to_user() to user_access_{begin,end}()
        x86: switch both 32bit and 64bit to providing csum_and_copy_from_user()
        x86_64: csum_..._copy_..._user(): switch to unsafe_..._user()
        get rid of csum_partial_copy_to_user()
      4b01285e
    • Linus Torvalds's avatar
      Merge tag 'docs-5.8' of git://git.lwn.net/linux · b23c4771
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "A fair amount of stuff this time around, dominated by yet another
        massive set from Mauro toward the completion of the RST conversion. I
        *really* hope we are getting close to the end of this. Meanwhile,
        those patches reach pretty far afield to update document references
        around the tree; there should be no actual code changes there. There
        will be, alas, more of the usual trivial merge conflicts.
      
        Beyond that we have more translations, improvements to the sphinx
        scripting, a number of additions to the sysctl documentation, and lots
        of fixes"
      
      * tag 'docs-5.8' of git://git.lwn.net/linux: (130 commits)
        Documentation: fixes to the maintainer-entry-profile template
        zswap: docs/vm: Fix typo accept_threshold_percent in zswap.rst
        tracing: Fix events.rst section numbering
        docs: acpi: fix old http link and improve document format
        docs: filesystems: add info about efivars content
        Documentation: LSM: Correct the basic LSM description
        mailmap: change email for Ricardo Ribalda
        docs: sysctl/kernel: document unaligned controls
        Documentation: admin-guide: update bug-hunting.rst
        docs: sysctl/kernel: document ngroups_max
        nvdimm: fixes to maintainter-entry-profile
        Documentation/features: Correct RISC-V kprobes support entry
        Documentation/features: Refresh the arch support status files
        Revert "docs: sysctl/kernel: document ngroups_max"
        docs: move locking-specific documents to locking/
        docs: move digsig docs to the security book
        docs: move the kref doc into the core-api book
        docs: add IRQ documentation at the core-api book
        docs: debugging-via-ohci1394.txt: add it to the core-api book
        docs: fix references for ipmi.rst file
        ...
      b23c4771
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · c2b0fc84
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - remove a now unnecessary usage of the KERNEL_DS for
         sys_oabi_epoll_ctl()
      
       - update my email address in a number of drivers
      
       - decompressor EFI updates from Ard Biesheuvel
      
       - module unwind section handling updates
      
       - sparsemem Kconfig cleanups
      
       - make act_mm macro respect THREAD_SIZE
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 8980/1: Allow either FLATMEM or SPARSEMEM on the multiplatform build
        ARM: 8979/1: Remove redundant ARCH_SPARSEMEM_DEFAULT setting
        ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
        ARM: decompressor: run decompressor in place if loaded via UEFI
        ARM: decompressor: move GOT into .data for EFI enabled builds
        ARM: decompressor: defer loading of the contents of the LC0 structure
        ARM: decompressor: split off _edata and stack base into separate object
        ARM: decompressor: move headroom variable out of LC0
        ARM: 8976/1: module: allow arch overrides for .init section names
        ARM: 8975/1: module: fix handling of unwind init sections
        ARM: 8974/1: use SPARSMEM_STATIC when SPARSEMEM is enabled
        ARM: 8971/1: replace the sole use of a symbol with its definition
        ARM: 8969/1: decompressor: simplify libfdt builds
        Update rmk's email address in various drivers
        ARM: compat: remove KERNEL_DS usage in sys_oabi_epoll_ctl()
      c2b0fc84
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 533b220f
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "A sizeable pile of arm64 updates for 5.8.
      
        Summary below, but the big two features are support for Branch Target
        Identification and Clang's Shadow Call stack. The latter is currently
        arm64-only, but the high-level parts are all in core code so it could
        easily be adopted by other architectures pending toolchain support
      
        Branch Target Identification (BTI):
      
         - Support for ARMv8.5-BTI in both user- and kernel-space. This allows
           branch targets to limit the types of branch from which they can be
           called and additionally prevents branching to arbitrary code,
           although kernel support requires a very recent toolchain.
      
         - Function annotation via SYM_FUNC_START() so that assembly functions
           are wrapped with the relevant "landing pad" instructions.
      
         - BPF and vDSO updates to use the new instructions.
      
         - Addition of a new HWCAP and exposure of BTI capability to userspace
           via ID register emulation, along with ELF loader support for the
           BTI feature in .note.gnu.property.
      
         - Non-critical fixes to CFI unwind annotations in the sigreturn
           trampoline.
      
        Shadow Call Stack (SCS):
      
         - Support for Clang's Shadow Call Stack feature, which reserves
           platform register x18 to point at a separate stack for each task
           that holds only return addresses. This protects function return
           control flow from buffer overruns on the main stack.
      
         - Save/restore of x18 across problematic boundaries (user-mode,
           hypervisor, EFI, suspend, etc).
      
         - Core support for SCS, should other architectures want to use it
           too.
      
         - SCS overflow checking on context-switch as part of the existing
           stack limit check if CONFIG_SCHED_STACK_END_CHECK=y.
      
        CPU feature detection:
      
         - Removed numerous "SANITY CHECK" errors when running on a system
           with mismatched AArch32 support at EL1. This is primarily a concern
           for KVM, which disabled support for 32-bit guests on such a system.
      
         - Addition of new ID registers and fields as the architecture has
           been extended.
      
        Perf and PMU drivers:
      
         - Minor fixes and cleanups to system PMU drivers.
      
        Hardware errata:
      
         - Unify KVM workarounds for VHE and nVHE configurations.
      
         - Sort vendor errata entries in Kconfig.
      
        Secure Monitor Call Calling Convention (SMCCC):
      
         - Update to the latest specification from Arm (v1.2).
      
         - Allow PSCI code to query the SMCCC version.
      
        Software Delegated Exception Interface (SDEI):
      
         - Unexport a bunch of unused symbols.
      
         - Minor fixes to handling of firmware data.
      
        Pointer authentication:
      
         - Add support for dumping the kernel PAC mask in vmcoreinfo so that
           the stack can be unwound by tools such as kdump.
      
         - Simplification of key initialisation during CPU bringup.
      
        BPF backend:
      
         - Improve immediate generation for logical and add/sub instructions.
      
        vDSO:
      
         - Minor fixes to the linker flags for consistency with other
           architectures and support for LLVM's unwinder.
      
         - Clean up logic to initialise and map the vDSO into userspace.
      
        ACPI:
      
         - Work around for an ambiguity in the IORT specification relating to
           the "num_ids" field.
      
         - Support _DMA method for all named components rather than only PCIe
           root complexes.
      
         - Minor other IORT-related fixes.
      
        Miscellaneous:
      
         - Initialise debug traps early for KGDB and fix KDB cacheflushing
           deadlock.
      
         - Minor tweaks to early boot state (documentation update, set
           TEXT_OFFSET to 0x0, increase alignment of PE/COFF sections).
      
         - Refactoring and cleanup"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (148 commits)
        KVM: arm64: Move __load_guest_stage2 to kvm_mmu.h
        KVM: arm64: Check advertised Stage-2 page size capability
        arm64/cpufeature: Add get_arm64_ftr_reg_nowarn()
        ACPI/IORT: Remove the unused __get_pci_rid()
        arm64/cpuinfo: Add ID_MMFR4_EL1 into the cpuinfo_arm64 context
        arm64/cpufeature: Add remaining feature bits in ID_AA64PFR1 register
        arm64/cpufeature: Add remaining feature bits in ID_AA64PFR0 register
        arm64/cpufeature: Add remaining feature bits in ID_AA64ISAR0 register
        arm64/cpufeature: Add remaining feature bits in ID_MMFR4 register
        arm64/cpufeature: Add remaining feature bits in ID_PFR0 register
        arm64/cpufeature: Introduce ID_MMFR5 CPU register
        arm64/cpufeature: Introduce ID_DFR1 CPU register
        arm64/cpufeature: Introduce ID_PFR2 CPU register
        arm64/cpufeature: Make doublelock a signed feature in ID_AA64DFR0
        arm64/cpufeature: Drop TraceFilt feature exposure from ID_DFR0 register
        arm64/cpufeature: Add explicit ftr_id_isar0[] for ID_ISAR0 register
        arm64: mm: Add asid_gen_match() helper
        firmware: smccc: Fix missing prototype warning for arm_smccc_version_init
        arm64: vdso: Fix CFI directives in sigreturn trampoline
        arm64: vdso: Don't prefix sigreturn trampoline with a BTI C instruction
        ...
      533b220f
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 3ee3723b
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - several Mac fixes
      
       - defconfig updates
      
       - minor cleanups and fixes
      
      * tag 'm68k-for-v5.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: tools: Replace zero-length array with flexible-array member
        m68k: Add missing __user annotation in get_user()
        m68k: mac: Avoid stuck ISM IOP interrupt on Quadra 900/950
        m68k: mac: Remove misleading comment
        m68k: mac: Don't call via_flush_cache() on Mac IIfx
        m68k: defconfig: Update defconfigs for v5.7-rc1
        m68k: amiga: config: Replace zero-length array with flexible-array member
        m68k: amiga: config: Mark expected switch fall-through
      3ee3723b
    • Linus Torvalds's avatar
      Merge tag 'x86-vdso-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4e909124
      Linus Torvalds authored
      Pull x86 vdso updates from Ingo Molnar:
       "Clean up various aspects of the vDSO code, no change in functionality
        intended"
      
      * tag 'x86-vdso-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso/Makefile: Add vobjs32
        x86/vdso/vdso2c: Convert iterators to unsigned
        x86/vdso/vdso2c: Correct error messages on file open
      4e909124
    • Linus Torvalds's avatar
      Merge tag 'x86-platform-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 88bc1de1
      Linus Torvalds authored
      Pull x86 platform updates from Ingo Molnar:
       "This tree cleans up various aspects of the UV platform support code,
        it removes unnecessary functions and cleans up the rest"
      
      * tag 'x86-platform-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic/uv: Remove code for unused distributed GRU mode
        x86/platform/uv: Remove the unused _uv_cpu_blade_processor_id() macro
        x86/platform/uv: Unexport uv_apicid_hibits
        x86/platform/uv: Remove _uv_hub_info_check()
        x86/platform/uv: Simplify uv_send_IPI_one()
        x86/platform/uv: Mark uv_min_hub_revision_id static
        x86/platform/uv: Mark is_uv_hubless() static
        x86/platform/uv: Remove the UV*_HUB_IS_SUPPORTED macros
        x86/platform/uv: Unexport symbols only used by x2apic_uv_x.c
        x86/platform/uv: Unexport sn_coherency_id
        x86/platform/uv: Remove the uv_partition_coherence_id() macro
        x86/platform/uv: Mark uv_bios_call() and uv_bios_call_irqsave() static
      88bc1de1
    • Linus Torvalds's avatar
      Merge tag 'x86-fpu-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a319ef7
      Linus Torvalds authored
      Pull x86 FPU updates from Ingo Molnar:
       "Most of the changes here related to 'XSAVES supervisor state' support,
        which is a feature that allows kernel-only data to be automatically
        saved/restored by the FPU context switching code.
      
        CPU features that can be supported this way are Intel PT, 'PASID' and
        CET features"
      
      * tag 'x86-fpu-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu/xstate: Restore supervisor states for signal return
        x86/fpu/xstate: Preserve supervisor states for the slow path in __fpu__restore_sig()
        x86/fpu: Introduce copy_supervisor_to_kernel()
        x86/fpu/xstate: Update copy_kernel_to_xregs_err() for supervisor states
        x86/fpu/xstate: Update sanitize_restored_xstate() for supervisor xstates
        x86/fpu/xstate: Define new functions for clearing fpregs and xstates
        x86/fpu/xstate: Introduce XSAVES supervisor states
        x86/fpu/xstate: Separate user and supervisor xfeatures mask
        x86/fpu/xstate: Define new macros for supervisor and user xstates
        x86/fpu/xstate: Rename validate_xstate_header() to validate_user_xstate_header()
      0a319ef7
    • Linus Torvalds's avatar
      Merge tag 'x86-cpu-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · eff5ddad
      Linus Torvalds authored
      Pull x86 cpu updates from Ingo Molnar:
       "Misc updates:
      
         - Extend the x86 family/model macros with a steppings dimension,
           because x86 life isn't complex enough and Intel uses steppings to
           differentiate between different CPUs. :-/
      
         - Convert the TSC deadline timer quirks to the steppings macros.
      
         - Clean up asm mnemonics.
      
         - Fix the handling of an AMD erratum, or in other words, fix a kernel
           erratum"
      
      * tag 'x86-cpu-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Use RDRAND and RDSEED mnemonics in archrandom.h
        x86/cpu: Use INVPCID mnemonic in invpcid.h
        x86/cpu/amd: Make erratum #1054 a legacy erratum
        x86/apic: Convert the TSC deadline timer matching to steppings macro
        x86/cpu: Add a X86_MATCH_INTEL_FAM6_MODEL_STEPPINGS() macro
        x86/cpu: Add a steppings field to struct x86_cpu_id
      eff5ddad
    • Linus Torvalds's avatar
      Merge tag 'x86-cleanups-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 17e0a7cb
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Misc cleanups, with an emphasis on removing obsolete/dead code"
      
      * tag 'x86-cleanups-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/spinlock: Remove obsolete ticket spinlock macros and types
        x86/mm: Drop deprecated DISCONTIGMEM support for 32-bit
        x86/apb_timer: Drop unused declaration and macro
        x86/apb_timer: Drop unused TSC calibration
        x86/io_apic: Remove unused function mp_init_irq_at_boot()
        x86/mm: Stop printing BRK addresses
        x86/audit: Fix a -Wmissing-prototypes warning for ia32_classify_syscall()
        x86/nmi: Remove edac.h include leftover
        mm: Remove MPX leftovers
        x86/mm/mmap: Fix -Wmissing-prototypes warnings
        x86/early_printk: Remove unused includes
        crash_dump: Remove no longer used saved_max_pfn
        x86/smpboot: Remove the last ICPU() macro
      17e0a7cb
    • Linus Torvalds's avatar
      Merge tag 'x86-build-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bb548bed
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
       "Misc dependency fixes, plus a documentation update about memory
        protection keys support"
      
      * tag 'x86-build-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/Kconfig: Update config and kernel doc for MPK feature on AMD
        x86/boot: Discard .discard.unreachable for arch/x86/boot/compressed/vmlinux
        x86/boot/build: Add phony targets in arch/x86/boot/Makefile to PHONY
        x86/boot/build: Make 'make bzlilo' not depend on vmlinux or $(obj)/bzImage
        x86/boot/build: Add cpustr.h to targets and remove clean-files
      bb548bed
    • Linus Torvalds's avatar
      Merge tag 'x86-boot-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ae1a4113
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
       "Misc updates:
      
         - Add the initrdmem= boot option to specify an initrd embedded in RAM
           (flash most likely)
      
         - Sanitize the CS value earlier during boot, which also fixes SEV-ES
      
         - Various fixes and smaller cleanups"
      
      * tag 'x86-boot-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: Correct relocation destination on old linkers
        x86/boot/compressed/64: Switch to __KERNEL_CS after GDT is loaded
        x86/boot: Fix -Wint-to-pointer-cast build warning
        x86/boot: Add kstrtoul() from lib/
        x86/tboot: Mark tboot static
        x86/setup: Add an initrdmem= option to specify initrd physical address
      ae1a4113
    • Linus Torvalds's avatar
      Merge tag 'smp-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d861f6e6
      Linus Torvalds authored
      Pull SMP updates from Ingo Molnar:
       "Misc cleanups in the SMP hotplug and cross-call code"
      
      * tag 'smp-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Remove __freeze_secondary_cpus()
        cpu/hotplug: Remove disable_nonboot_cpus()
        cpu/hotplug: Fix a typo in comment "broadacasted"->"broadcasted"
        smp: Use smp_call_func_t in on_each_cpu()
      d861f6e6
    • Linus Torvalds's avatar
      Merge tag 'efi-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 58ff3b76
      Linus Torvalds authored
      Pull EFI updates from Ingo Molnar:
       "The EFI changes for this cycle are:
      
         - preliminary changes for RISC-V
      
         - Add support for setting the resolution on the EFI framebuffer
      
         - Simplify kernel image loading for arm64
      
         - Move .bss into .data via the linker script instead of relying on
           symbol annotations.
      
         - Get rid of __pure getters to access global variables
      
         - Clean up the config table matching arrays
      
         - Rename pr_efi/pr_efi_err to efi_info/efi_err, and use them
           consistently
      
         - Simplify and unify initrd loading
      
         - Parse the builtin command line on x86 (if provided)
      
         - Implement printk() support, including support for wide character
           strings
      
         - Simplify GDT handling in early mixed mode thunking code
      
         - Some other minor fixes and cleanups"
      
      * tag 'efi-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (79 commits)
        efi/x86: Don't blow away existing initrd
        efi/x86: Drop the special GDT for the EFI thunk
        efi/libstub: Add missing prototype for PE/COFF entry point
        efi/efivars: Add missing kobject_put() in sysfs entry creation error path
        efi/libstub: Use pool allocation for the command line
        efi/libstub: Don't parse overlong command lines
        efi/libstub: Use snprintf with %ls to convert the command line
        efi/libstub: Get the exact UTF-8 length
        efi/libstub: Use %ls for filename
        efi/libstub: Add UTF-8 decoding to efi_puts
        efi/printf: Add support for wchar_t (UTF-16)
        efi/gop: Add an option to list out the available GOP modes
        efi/libstub: Add definitions for console input and events
        efi/libstub: Implement printk-style logging
        efi/printf: Turn vsprintf into vsnprintf
        efi/printf: Abort on invalid format
        efi/printf: Refactor code to consolidate padding and output
        efi/printf: Handle null string input
        efi/printf: Factor out integer argument retrieval
        efi/printf: Factor out width/precision parsing
        ...
      58ff3b76
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a7092c82
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Kernel side changes:
      
         - Add AMD Fam17h RAPL support
      
         - Introduce CAP_PERFMON to kernel and user space
      
         - Add Zhaoxin CPU support
      
         - Misc fixes and cleanups
      
        Tooling changes:
      
         - perf record:
      
           Introduce '--switch-output-event' to use arbitrary events to be
           setup and read from a side band thread and, when they take place a
           signal be sent to the main 'perf record' thread, reusing the core
           for '--switch-output' to take perf.data snapshots from the ring
           buffer used for '--overwrite', e.g.:
      
      	# perf record --overwrite -e sched:* \
      		      --switch-output-event syscalls:*connect* \
      		      workload
      
           will take perf.data.YYYYMMDDHHMMSS snapshots up to around the
           connect syscalls.
      
           Add '--num-synthesize-threads' option to control degree of
           parallelism of the synthesize_mmap() code which is scanning
           /proc/PID/task/PID/maps and can be time consuming. This mimics
           pre-existing behaviour in 'perf top'.
      
         - perf bench:
      
           Add a multi-threaded synthesize benchmark and kallsyms parsing
           benchmark.
      
         - Intel PT support:
      
           Stitch LBR records from multiple samples to get deeper backtraces,
           there are caveats, see the csets for details.
      
           Allow using Intel PT to synthesize callchains for regular events.
      
           Add support for synthesizing branch stacks for regular events
           (cycles, instructions, etc) from Intel PT data.
      
        Misc changes:
      
         - Updated perf vendor events for power9 and Coresight.
      
         - Add flamegraph.py script via 'perf flamegraph'
      
         - Misc other changes, fixes and cleanups - see the Git log for details
      
        Also, since over the last couple of years perf tooling has matured and
        decoupled from the kernel perf changes to a large degree, going
        forward Arnaldo is going to send perf tooling changes via direct pull
        requests"
      
      * tag 'perf-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (163 commits)
        perf/x86/rapl: Add AMD Fam17h RAPL support
        perf/x86/rapl: Make perf_probe_msr() more robust and flexible
        perf/x86/rapl: Flip logic on default events visibility
        perf/x86/rapl: Refactor to share the RAPL code between Intel and AMD CPUs
        perf/x86/rapl: Move RAPL support to common x86 code
        perf/core: Replace zero-length array with flexible-array
        perf/x86: Replace zero-length array with flexible-array
        perf/x86/intel: Add more available bits for OFFCORE_RESPONSE of Intel Tremont
        perf/x86/rapl: Add Ice Lake RAPL support
        perf flamegraph: Use /bin/bash for report and record scripts
        perf cs-etm: Move definition of 'traceid_list' global variable from header file
        libsymbols kallsyms: Move hex2u64 out of header
        libsymbols kallsyms: Parse using io api
        perf bench: Add kallsyms parsing
        perf: cs-etm: Update to build with latest opencsd version.
        perf symbol: Fix kernel symbol address display
        perf inject: Rename perf_evsel__*() operating on 'struct evsel *' to evsel__*()
        perf annotate: Rename perf_evsel__*() operating on 'struct evsel *' to evsel__*()
        perf trace: Rename perf_evsel__*() operating on 'struct evsel *' to evsel__*()
        perf script: Rename perf_evsel__*() operating on 'struct evsel *' to evsel__*()
        ...
      a7092c82
    • Linus Torvalds's avatar
      Merge tag 'objtool-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 69fc06f7
      Linus Torvalds authored
      Pull objtool updates from Ingo Molnar:
       "There are a lot of objtool changes in this cycle, all across the map:
      
         - Speed up objtool significantly, especially when there are large
           number of sections
      
         - Improve objtool's understanding of special instructions such as
           IRET, to reduce the number of annotations required
      
         - Implement 'noinstr' validation
      
         - Do baby steps for non-x86 objtool use
      
         - Simplify/fix retpoline decoding
      
         - Add vmlinux validation
      
         - Improve documentation
      
         - Fix various bugs and apply smaller cleanups"
      
      * tag 'objtool-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (54 commits)
        objtool: Enable compilation of objtool for all architectures
        objtool: Move struct objtool_file into arch-independent header
        objtool: Exit successfully when requesting help
        objtool: Add check_kcov_mode() to the uaccess safelist
        samples/ftrace: Fix asm function ELF annotations
        objtool: optimize add_dead_ends for split sections
        objtool: use gelf_getsymshndx to handle >64k sections
        objtool: Allow no-op CFI ops in alternatives
        x86/retpoline: Fix retpoline unwind
        x86: Change {JMP,CALL}_NOSPEC argument
        x86: Simplify retpoline declaration
        x86/speculation: Change FILL_RETURN_BUFFER to work with objtool
        objtool: Add support for intra-function calls
        objtool: Move the IRET hack into the arch decoder
        objtool: Remove INSN_STACK
        objtool: Make handle_insn_ops() unconditional
        objtool: Rework allocating stack_ops on decode
        objtool: UNWIND_HINT_RET_OFFSET should not check registers
        objtool: is_fentry_call() crashes if call has no destination
        x86,smap: Fix smap_{save,restore}() alternatives
        ...
      69fc06f7
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 60056060
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "The biggest change to core locking facilities in this cycle is the
        introduction of local_lock_t - this primitive comes from the -rt
        project and identifies CPU-local locking dependencies normally handled
        opaquely beind preempt_disable() or local_irq_save/disable() critical
        sections.
      
        The generated code on mainline kernels doesn't change as a result, but
        still there are benefits: improved debugging and better documentation
        of data structure accesses.
      
        The new local_lock_t primitives are introduced and then utilized in a
        couple of kernel subsystems. No change in functionality is intended.
      
        There's also other smaller changes and cleanups"
      
      * tag 'locking-core-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        zram: Use local lock to protect per-CPU data
        zram: Allocate struct zcomp_strm as per-CPU memory
        connector/cn_proc: Protect send_msg() with a local lock
        squashfs: Make use of local lock in multi_cpu decompressor
        mm/swap: Use local_lock for protection
        radix-tree: Use local_lock for protection
        locking: Introduce local_lock()
        locking/lockdep: Replace zero-length array with flexible-array
        locking/rtmutex: Remove unused rt_mutex_cmpxchg_relaxed()
      60056060
    • Linus Torvalds's avatar
      Merge tag 'core-rcu-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2227e5b2
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "The RCU updates for this cycle were:
      
         - RCU-tasks update, including addition of RCU Tasks Trace for BPF use
           and TASKS_RUDE_RCU
      
         - kfree_rcu() updates.
      
         - Remove scheduler locking restriction
      
         - RCU CPU stall warning updates.
      
         - Torture-test updates.
      
         - Miscellaneous fixes and other updates"
      
      * tag 'core-rcu-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (103 commits)
        rcu: Allow for smp_call_function() running callbacks from idle
        rcu: Provide rcu_irq_exit_check_preempt()
        rcu: Abstract out rcu_irq_enter_check_tick() from rcu_nmi_enter()
        rcu: Provide __rcu_is_watching()
        rcu: Provide rcu_irq_exit_preempt()
        rcu: Make RCU IRQ enter/exit functions rely on in_nmi()
        rcu/tree: Mark the idle relevant functions noinstr
        x86: Replace ist_enter() with nmi_enter()
        x86/mce: Send #MC singal from task work
        x86/entry: Get rid of ist_begin/end_non_atomic()
        sched,rcu,tracing: Avoid tracing before in_nmi() is correct
        sh/ftrace: Move arch_ftrace_nmi_{enter,exit} into nmi exception
        lockdep: Always inline lockdep_{off,on}()
        hardirq/nmi: Allow nested nmi_enter()
        arm64: Prepare arch_nmi_enter() for recursion
        printk: Disallow instrumenting print_nmi_enter()
        printk: Prepare for nested printk_nmi_enter()
        rcutorture: Convert ULONG_CMP_LT() to time_before()
        torture: Add a --kasan argument
        torture: Save a few lines by using config_override_param initially
        ...
      2227e5b2
    • Linus Torvalds's avatar
      Merge tag 'core-kprobes-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0bd957eb
      Linus Torvalds authored
      Pull kprobes updates from Ingo Molnar:
       "Various kprobes updates, mostly centered around cleaning up the
        no-instrumentation logic.
      
        Instead of the current per debug facility blacklist, use the more
        generic .noinstr.text approach, combined with a 'noinstr' marker for
        functions.
      
        Also add instrumentation_begin()/end() to better manage the exact
        place in entry code where instrumentation may be used.
      
        And add a kprobes blacklist for modules"
      
      * tag 'core-kprobes-2020-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        kprobes: Prevent probes in .noinstr.text section
        vmlinux.lds.h: Create section for protection against instrumentation
        samples/kprobes: Add __kprobes and NOKPROBE_SYMBOL() for handlers.
        kprobes: Support NOKPROBE_SYMBOL() in modules
        kprobes: Support __kprobes blacklist in modules
        kprobes: Lock kprobe_mutex while showing kprobe_blacklist
      0bd957eb
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_updates_for_5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9bf9511e
      Linus Torvalds authored
      Pull x86 cache resource control updates from Borislav Petkov:
       "Add support for wider Memory Bandwidth Monitoring counters by querying
        their width from CPUID.
      
        As a prerequsite for that, streamline and unify the CPUID detection of
        the respective resource control attributes.
      
        By Reinette Chatre"
      
      * tag 'x86_cache_updates_for_5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/resctrl: Support wider MBM counters
        x86/resctrl: Support CPUID enumeration of MBM counter width
        x86/resctrl: Maintain MBM counter width per resource
        x86/resctrl: Query LLC monitoring properties once during boot
        x86/resctrl: Remove unnecessary RMID checks
        x86/cpu: Move resctrl CPUID code to resctrl/
        x86/resctrl: Rename asm/resctrl_sched.h to asm/resctrl.h
      9bf9511e
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ef34ba6d
      Linus Torvalds authored
      Pull x86 microcode update from Borislav Petkov:
       "A single fix for late microcode loading to handle the correct return
        value from stop_machine(), from Mihai Carabas"
      
      * tag 'x86_microcode_for_5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode: Fix return value for microcode late loading
      ef34ba6d
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 8b11dd54
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Fix i10nm_edac loading on some Ice Lake and Tremont/Jacobsville
         steppings due to the offset change of the bus number configuration
         register, by Qiuxu Zhuo.
      
       - The usual cleanups and fixes all over the place.
      
      * tag 'edac_updates_for_5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/amd64: Remove redundant assignment to variable ret in hw_info_get()
        EDAC/skx: Use the mcmtr register to retrieve close_pg/bank_xor_enable
        EDAC/i10nm: Update driver to support different bus number config register offsets
        EDAC, {skx,i10nm}: Make some configurations CPU model specific
        EDAC/amd8131: Remove defined but not used bridge_str
        EDAC/thunderx: Make symbols static
        MAINTAINERS: Remove sifive_l2_cache.c from EDAC-SIFIVE pattern
        EDAC/xgene: Remove set but not used address local var
        EDAC/armada_xp: Fix some log messages
      8b11dd54
    • Linus Torvalds's avatar
      Merge tag 'printk-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · ca1f5df2
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Benjamin Herrenschmidt solved a problem with non-matched console
         aliases by first checking consoles defined on the command line. It is
         a more conservative approach than the previous attempts.
      
       - Benjamin also made sure that the console accessible via /dev/console
         always has CON_CONSDEV flag.
      
       - Andy Shevchenko added the %ptT modifier for printing struct time64_t.
         It extends the existing %ptR handling for struct rtc_time.
      
       - Bruno Meneguele fixed /dev/kmsg error value returned by unsupported
         SEEK_CUR.
      
       - Tetsuo Handa removed unused pr_cont_once().
      
      ... and a few small fixes.
      
      * tag 'printk-for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        printk: Remove pr_cont_once()
        printk: handle blank console arguments passed in.
        kernel/printk: add kmsg SEEK_CUR handling
        printk: Fix a typo in comment "interator"->"iterator"
        usb: pulse8-cec: Switch to use %ptT
        ARM: bcm2835: Switch to use %ptT
        lib/vsprintf: Print time64_t in human readable format
        lib/vsprintf: update comment about simple_strto<foo>() functions
        printk: Correctly set CON_CONSDEV even when preferred console was not registered
        printk: Fix preferred console selection with multiple matches
        printk: Move console matching logic into a separate function
        printk: Convert a use of sprintf to snprintf in console_unlock
      ca1f5df2
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 4d67829e
      Linus Torvalds authored
      Pull fsverity updates from Eric Biggers:
       "Fix kerneldoc warnings and some coding style inconsistencies.
      
        This mirrors the similar cleanups being done in fs/crypto/"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fs-verity: remove unnecessary extern keywords
        fs-verity: fix all kerneldoc warnings
      4d67829e
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · afdb0f2e
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
      
       - Add the IV_INO_LBLK_32 encryption policy flag which modifies the
         encryption to be optimized for eMMC inline encryption hardware.
      
       - Make the test_dummy_encryption mount option for ext4 and f2fs support
         v2 encryption policies.
      
       - Fix kerneldoc warnings and some coding style inconsistencies.
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fscrypt: add support for IV_INO_LBLK_32 policies
        fscrypt: make test_dummy_encryption use v2 by default
        fscrypt: support test_dummy_encryption=v2
        fscrypt: add fscrypt_add_test_dummy_key()
        linux/parser.h: add include guards
        fscrypt: remove unnecessary extern keywords
        fscrypt: name all function parameters
        fscrypt: fix all kerneldoc warnings
      afdb0f2e
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 829f3b94
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
       "Fixes and new features for pstore.
      
        This is a pretty big set of changes (relative to past pstore pulls),
        but it has been in -next for a while. The biggest change here is the
        ability to support a block device as a pstore backend, which has been
        desired for a while. A lot of additional fixes and refactorings are
        also included, mostly in support of the new features.
      
         - refactor pstore locking for safer module unloading (Kees Cook)
      
         - remove orphaned records from pstorefs when backend unloaded (Kees
           Cook)
      
         - refactor dump_oops parameter into max_reason (Pavel Tatashin)
      
         - introduce pstore/zone for common code for contiguous storage
           (WeiXiong Liao)
      
         - introduce pstore/blk for block device backend (WeiXiong Liao)
      
         - introduce mtd backend (WeiXiong Liao)"
      
      * tag 'pstore-v5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (35 commits)
        mtd: Support kmsg dumper based on pstore/blk
        pstore/blk: Introduce "best_effort" mode
        pstore/blk: Support non-block storage devices
        pstore/blk: Provide way to query pstore configuration
        pstore/zone: Provide way to skip "broken" zone for MTD devices
        Documentation: Add details for pstore/blk
        pstore/zone,blk: Add ftrace frontend support
        pstore/zone,blk: Add console frontend support
        pstore/zone,blk: Add support for pmsg frontend
        pstore/blk: Introduce backend for block devices
        pstore/zone: Introduce common layer to manage storage zones
        ramoops: Add "max-reason" optional field to ramoops DT node
        pstore/ram: Introduce max_reason and convert dump_oops
        pstore/platform: Pass max_reason to kmesg dump
        printk: Introduce kmsg_dump_reason_str()
        printk: honor the max_reason field in kmsg_dumper
        printk: Collapse shutdown types into a single dump reason
        pstore/ftrace: Provide ftrace log merging routine
        pstore/ram: Refactor ftrace buffer merging
        pstore/ram: Refactor DT size parsing
        ...
      829f3b94
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · 81e8c10d
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Introduce crypto_shash_tfm_digest() and use it wherever possible.
         - Fix use-after-free and race in crypto_spawn_alg.
         - Add support for parallel and batch requests to crypto_engine.
      
        Algorithms:
         - Update jitter RNG for SP800-90B compliance.
         - Always use jitter RNG as seed in drbg.
      
        Drivers:
         - Add Arm CryptoCell driver cctrng.
         - Add support for SEV-ES to the PSP driver in ccp"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (114 commits)
        crypto: hisilicon - fix driver compatibility issue with different versions of devices
        crypto: engine - do not requeue in case of fatal error
        crypto: cavium/nitrox - Fix a typo in a comment
        crypto: hisilicon/qm - change debugfs file name from qm_regs to regs
        crypto: hisilicon/qm - add DebugFS for xQC and xQE dump
        crypto: hisilicon/zip - add debugfs for Hisilicon ZIP
        crypto: hisilicon/hpre - add debugfs for Hisilicon HPRE
        crypto: hisilicon/sec2 - add debugfs for Hisilicon SEC
        crypto: hisilicon/qm - add debugfs to the QM state machine
        crypto: hisilicon/qm - add debugfs for QM
        crypto: stm32/crc32 - protect from concurrent accesses
        crypto: stm32/crc32 - don't sleep in runtime pm
        crypto: stm32/crc32 - fix multi-instance
        crypto: stm32/crc32 - fix run-time self test issue.
        crypto: stm32/crc32 - fix ext4 chksum BUG_ON()
        crypto: hisilicon/zip - Use temporary sqe when doing work
        crypto: hisilicon - add device error report through abnormal irq
        crypto: hisilicon - remove codes of directly report device errors through MSI
        crypto: hisilicon - QM memory management optimization
        crypto: hisilicon - unify initial value assignment into QM
        ...
      81e8c10d
    • Linus Torvalds's avatar
      Merge tag 'i3c/for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux · 729ea4e0
      Linus Torvalds authored
      Pull i3c update from Boris Brezillon:
       "Fix GETMRL's logic"
      
      * tag 'i3c/for-5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux:
        i3c master: GETMRL's 3rd byte is optional even with BCR_IBI_PAYLOAD
      729ea4e0
    • Linus Torvalds's avatar
      Merge tag 'regulator-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · d30fc97c
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "The big change in this release is that Matti Vaittinen has factored
        out the linear ranges support into a separate library in lib/ since it
        is also useful for at least the power subsystem (and most likely
        others too), it helps subsystems which need to map register values
        into more useful real world values do so with minimal per-driver code.
      
         - Factoring out of the linear ranges support into a library in lib/
           from Matti Vaittinen.
      
         - Trace points for bypass mode.
      
         - Use the consumer name in debugfs to make it easier to understand.
      
         - New drivers for Maxim MAX77826 and MAX8998"
      
      * tag 'regulator-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (23 commits)
        regulator: max8998: max8998_set_current_limit() can be static
        dt-bindings: regulator: Convert anatop regulator to json-schema
        regulator: core: Add regulator bypass trace points
        regulator: extract voltage balancing code to the separate function
        regulator/mfd: max8998: Document charger regulator
        regulator: max8998: Add charger regulator
        MAINTAINERS: Add maintainer entry for linear ranges helper
        regulator: bd718x7: remove voltage change restriction from BD71847 LDOs
        lib: linear_ranges: Add missing MODULE_LICENSE()
        regulator: use linear_ranges helper
        power: supply: bd70528: rename linear_range to avoid collision
        lib/test_linear_ranges: add a test for the 'linear_ranges'
        lib: add linear ranges helpers
        regulator: db8500-prcmu: Use true,false for bool variable
        regulator: bd718x7: remove voltage change restriction from BD71847
        regulator: max77826: Remove erroneous additionalProperties
        regulator: qcom-rpmh: Fix typos in pm8150 and pm8150l
        regulator: Document bindings for max77826
        regulator: max77826: Add max77826 regulator driver
        regulator: tps80031: remove redundant assignment to variables ret and val
        ...
      d30fc97c
    • Linus Torvalds's avatar
      Merge tag 'spi-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · a36de5eb
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "This has been a very active release for the DesignWare driver in
        particular - after a long period of inactivity we have had a lot of
        people actively working on it for unrelated reasons this cycle with
        some of that work still not landed.
      
        Otherwise it's been fairly quiet for the subsystem.
      
        Highlights include:
      
         - Lots of performance improvements and fixes for the DesignWare
           driver from Serge Semin, Andy Shevchenko, Wan Ahmad Zainie, Clement
           Leger, Dinh Nguyen and Jarkko Nikula.
      
         - Support for octal mode transfers in spidev.
      
         - Slave mode support for the Rockchip drivers.
      
         - Support for AMD controllers, Broadcom mspi and Raspberry Pi 4, and
           Intel Elkhart Lake"
      
      * tag 'spi-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (125 commits)
        spi: spi-fsl-dspi: fix native data copy
        spi: Convert DW SPI binding to DT schema
        spi: dw: Refactor mid_spi_dma_setup() to separate DMA and IRQ config
        spi: dw: Make DMA request line assignments explicit for Intel Medfield
        spi: bcm2835: Remove shared interrupt support
        dt-bindings: snps,dw-apb-ssi: add optional reset property
        spi: dw: add reset control
        spi: bcm2835: Enable shared interrupt support
        spi: bcm2835: Implement shutdown callback
        spi: dw: Use regset32 DebugFS method to create regdump file
        spi: dw: Add DMA support to the DW SPI MMIO driver
        spi: dw: Cleanup generic DW DMA code namings
        spi: dw: Add DW SPI DMA/PCI/MMIO dependency on the DW SPI core
        spi: dw: Remove DW DMA code dependency from DW_DMAC_PCI
        spi: dw: Move Non-DMA code to the DW PCIe-SPI driver
        spi: dw: Add core suffix to the DW APB SSI core source file
        spi: dw: Fix Rx-only DMA transfers
        spi: dw: Use DMA max burst to set the request thresholds
        spi: dw: Parameterize the DMA Rx/Tx burst length
        spi: dw: Add SPI Rx-done wait method to DMA-based transfer
        ...
      a36de5eb
    • Linus Torvalds's avatar
      Merge tag 'regmap-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 213fd09e
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "This has been a very active release for the regmap API for some
        reason, a lot of it due to new devices with odd requirements that can
        sensibly be handled here.
      
         - Add support for buses implementing a custom reg_update_bits()
           method in case the bus has a native operation for this.
      
         - Support 16 bit register addresses in SMBus.
      
         - Allow customization of the device attached to regmap-irq.
      
         - Helpers for bitfield operations and per-port field initializations"
      
      * tag 'regmap-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: provide helpers for simple bit operations
        regmap: add helper for per-port regfield initialization
        regmap-i2c: add 16-bit width registers support
        regmap: Simplify implementation of the regmap_field_read_poll_timeout() macro
        regmap: Simplify implementation of the regmap_read_poll_timeout() macro
        regmap: add reg_sequence helpers
        regmap-irq: make it possible to add irq_chip do a specific device node
        regmap: Add bus reg_update_bits() support
        regmap: debugfs: check count when read regmap file
      213fd09e
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 129b9a5c
      Linus Torvalds authored
      Pull hwmon updates from Guenter Roeck:
       "Infrastructure:
         - Add notification support
      
        New drivers:
         - Baikal-T1 PVT sensor driver
         - amd_energy driver to report energy counters
         - Driver for Maxim MAX16601
         - Gateworks System Controller
      
        Various:
         - applesmc: avoid overlong udelay()
         - dell-smm: Use one DMI match for all XPS models
         - ina2xx: Implement alert functions
         - lm70: Add support for ACPI
         - lm75: Fix coding-style warnings
         - lm90: Add max6654 support to lm90 driver
         - nct7802: Replace container_of() API
         - nct7904: Set default timeout
         - nct7904: Add watchdog function
         - pmbus: Improve initialization of 'currpage' and 'currphase'"
      
      * tag 'hwmon-for-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (24 commits)
        hwmon: Add Baikal-T1 PVT sensor driver
        hwmon: Add notification support
        dt-bindings: hwmon: Add Baikal-T1 PVT sensor binding
        hwmon: (applesmc) avoid overlong udelay()
        hwmon: (nct7904) Set default timeout
        hwmon: (amd_energy) Missing platform_driver_unregister() on error in amd_energy_init()
        MAINTAINERS: add entry for AMD energy driver
        hwmon: (amd_energy) Add documentation
        hwmon: Add amd_energy driver to report energy counters
        hwmon: (nct7802) Replace container_of() API
        hwmon: (lm90) Add max6654 support to lm90 driver
        hwmon : (nct6775) Use kobj_to_dev() API
        hwmon: (pmbus) Driver for Maxim MAX16601
        hwmon: (pmbus) Improve initialization of 'currpage' and 'currphase'
        hwmon: (adt7411) update contact email
        hwmon: (lm75) Fix all coding-style warnings on lm75 driver
        hwmon: Reduce indentation level in __hwmon_device_register()
        hwmon: (ina2xx) Implement alert functions
        hwmon: (lm70) Add support for ACPI
        hwmon: (dell-smm) Use one DMI match for all XPS models
        ...
      129b9a5c