1. 05 Aug, 2020 1 commit
  2. 04 Aug, 2020 35 commits
    • Linus Torvalds's avatar
      Merge tag 'close-range-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 4f30a60a
      Linus Torvalds authored
      Pull close_range() implementation from Christian Brauner:
       "This adds the close_range() syscall. It allows to efficiently close a
        range of file descriptors up to all file descriptors of a calling
        task.
      
        This is coordinated with the FreeBSD folks which have copied our
        version of this syscall and in the meantime have already merged it in
        April 2019:
      
          https://reviews.freebsd.org/D21627
          https://svnweb.freebsd.org/base?view=revision&revision=359836
      
        The syscall originally came up in a discussion around the new mount
        API and making new file descriptor types cloexec by default. During
        this discussion, Al suggested the close_range() syscall.
      
        First, it helps to close all file descriptors of an exec()ing task.
        This can be done safely via (quoting Al's example from [1] verbatim):
      
              /* that exec is sensitive */
              unshare(CLONE_FILES);
              /* we don't want anything past stderr here */
              close_range(3, ~0U);
              execve(....);
      
        The code snippet above is one way of working around the problem that
        file descriptors are not cloexec by default. This is aggravated by the
        fact that we can't just switch them over without massively regressing
        userspace. For a whole class of programs having an in-kernel method of
        closing all file descriptors is very helpful (e.g. demons, service
        managers, programming language standard libraries, container managers
        etc.).
      
        Second, it allows userspace to avoid implementing closing all file
        descriptors by parsing through /proc/<pid>/fd/* and calling close() on
        each file descriptor and other hacks. From looking at various
        large(ish) userspace code bases this or similar patterns are very
        common in service managers, container runtimes, and programming
        language runtimes/standard libraries such as Python or Rust.
      
        In addition, the syscall will also work for tasks that do not have
        procfs mounted and on kernels that do not have procfs support compiled
        in. In such situations the only way to make sure that all file
        descriptors are closed is to call close() on each file descriptor up
        to UINT_MAX or RLIMIT_NOFILE, OPEN_MAX trickery.
      
        Based on Linus' suggestion close_range() also comes with a new flag
        CLOSE_RANGE_UNSHARE to more elegantly handle file descriptor dropping
        right before exec. This would usually be expressed in the sequence:
      
              unshare(CLONE_FILES);
              close_range(3, ~0U);
      
        as pointed out by Linus it might be desirable to have this be a part
        of close_range() itself under a new flag CLOSE_RANGE_UNSHARE which
        gets especially handy when we're closing all file descriptors above a
        certain threshold.
      
        Test-suite as always included"
      
      * tag 'close-range-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        tests: add CLOSE_RANGE_UNSHARE tests
        close_range: add CLOSE_RANGE_UNSHARE
        tests: add close_range() tests
        arch: wire-up close_range()
        open: add close_range()
      4f30a60a
    • Linus Torvalds's avatar
      Merge tag 'cap-checkpoint-restore-v5.9' of... · 74858abb
      Linus Torvalds authored
      Merge tag 'cap-checkpoint-restore-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
      
      Pull checkpoint-restore updates from Christian Brauner:
       "This enables unprivileged checkpoint/restore of processes.
      
        Given that this work has been going on for quite some time the first
        sentence in this summary is hopefully more exciting than the actual
        final code changes required. Unprivileged checkpoint/restore has seen
        a frequent increase in interest over the last two years and has thus
        been one of the main topics for the combined containers &
        checkpoint/restore microconference since at least 2018 (cf. [1]).
      
        Here are just the three most frequent use-cases that were brought forward:
      
         - The JVM developers are integrating checkpoint/restore into a Java
           VM to significantly decrease the startup time.
      
         - In high-performance computing environment a resource manager will
           typically be distributing jobs where users are always running as
           non-root. Long-running and "large" processes with significant
           startup times are supposed to be checkpointed and restored with
           CRIU.
      
         - Container migration as a non-root user.
      
        In all of these scenarios it is either desirable or required to run
        without CAP_SYS_ADMIN. The userspace implementation of
        checkpoint/restore CRIU already has the pull request for supporting
        unprivileged checkpoint/restore up (cf. [2]).
      
        To enable unprivileged checkpoint/restore a new dedicated capability
        CAP_CHECKPOINT_RESTORE is introduced. This solution has last been
        discussed in 2019 in a talk by Google at Linux Plumbers (cf. [1]
        "Update on Task Migration at Google Using CRIU") with Adrian and
        Nicolas providing the implementation now over the last months. In
        essence, this allows the CRIU binary to be installed with the
        CAP_CHECKPOINT_RESTORE vfs capability set thereby enabling
        unprivileged users to restore processes.
      
        To make this possible the following permissions are altered:
      
         - Selecting a specific PID via clone3() set_tid relaxed from userns
           CAP_SYS_ADMIN to CAP_CHECKPOINT_RESTORE.
      
         - Selecting a specific PID via /proc/sys/kernel/ns_last_pid relaxed
           from userns CAP_SYS_ADMIN to CAP_CHECKPOINT_RESTORE.
      
         - Accessing /proc/pid/map_files relaxed from init userns
           CAP_SYS_ADMIN to init userns CAP_CHECKPOINT_RESTORE.
      
         - Changing /proc/self/exe from userns CAP_SYS_ADMIN to userns
           CAP_CHECKPOINT_RESTORE.
      
        Of these four changes the /proc/self/exe change deserves a few words
        because the reasoning behind even restricting /proc/self/exe changes
        in the first place is just full of historical quirks and tracking this
        down was a questionable version of fun that I'd like to spare others.
      
        In short, it is trivial to change /proc/self/exe as an unprivileged
        user, i.e. without userns CAP_SYS_ADMIN right now. Either via ptrace()
        or by simply intercepting the elf loader in userspace during exec.
        Nicolas was nice enough to even provide a POC for the latter (cf. [3])
        to illustrate this fact.
      
        The original patchset which introduced PR_SET_MM_MAP had no
        permissions around changing the exe link. They too argued that it is
        trivial to spoof the exe link already which is true. The argument
        brought up against this was that the Tomoyo LSM uses the exe link in
        tomoyo_manager() to detect whether the calling process is a policy
        manager. This caused changing the exe links to be guarded by userns
        CAP_SYS_ADMIN.
      
        All in all this rather seems like a "better guard it with something
        rather than nothing" argument which imho doesn't qualify as a great
        security policy. Again, because spoofing the exe link is possible for
        the calling process so even if this were security relevant it was
        broken back then and would be broken today. So technically, dropping
        all permissions around changing the exe link would probably be
        possible and would send a clearer message to any userspace that relies
        on /proc/self/exe for security reasons that they should stop doing
        this but for now we're only relaxing the exe link permissions from
        userns CAP_SYS_ADMIN to userns CAP_CHECKPOINT_RESTORE.
      
        There's a final uapi change in here. Changing the exe link used to
        accidently return EINVAL when the caller lacked the necessary
        permissions instead of the more correct EPERM. This pr contains a
        commit fixing this. I assume that userspace won't notice or care and
        if they do I will revert this commit. But since we are changing the
        permissions anyway it seems like a good opportunity to try this fix.
      
        With these changes merged unprivileged checkpoint/restore will be
        possible and has already been tested by various users"
      
      [1] LPC 2018
           1. "Task Migration at Google Using CRIU"
              https://www.youtube.com/watch?v=yI_1cuhoDgA&t=12095
           2. "Securely Migrating Untrusted Workloads with CRIU"
              https://www.youtube.com/watch?v=yI_1cuhoDgA&t=14400
           LPC 2019
           1. "CRIU and the PID dance"
               https://www.youtube.com/watch?v=LN2CUgp8deo&list=PLVsQ_xZBEyN30ZA3Pc9MZMFzdjwyz26dO&index=9&t=2m48s
           2. "Update on Task Migration at Google Using CRIU"
              https://www.youtube.com/watch?v=LN2CUgp8deo&list=PLVsQ_xZBEyN30ZA3Pc9MZMFzdjwyz26dO&index=9&t=1h2m8s
      
      [2] https://github.com/checkpoint-restore/criu/pull/1155
      
      [3] https://github.com/nviennot/run_as_exe
      
      * tag 'cap-checkpoint-restore-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        selftests: add clone3() CAP_CHECKPOINT_RESTORE test
        prctl: exe link permission error changed from -EINVAL to -EPERM
        prctl: Allow local CAP_CHECKPOINT_RESTORE to change /proc/self/exe
        proc: allow access in init userns for map_files with CAP_CHECKPOINT_RESTORE
        pid_namespace: use checkpoint_restore_ns_capable() for ns_last_pid
        pid: use checkpoint_restore_ns_capable() for set_tid
        capabilities: Introduce CAP_CHECKPOINT_RESTORE
      74858abb
    • Linus Torvalds's avatar
      Merge tag 'fork-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 9ba27414
      Linus Torvalds authored
      Pull fork cleanups from Christian Brauner:
       "This is cleanup series from when we reworked a chunk of the process
        creation paths in the kernel and switched to struct
        {kernel_}clone_args.
      
        High-level this does two main things:
      
         - Remove the double export of both do_fork() and _do_fork() where
           do_fork() used the incosistent legacy clone calling convention.
      
           Now we only export _do_fork() which is based on struct
           kernel_clone_args.
      
         - Remove the copy_thread_tls()/copy_thread() split making the
           architecture specific HAVE_COYP_THREAD_TLS config option obsolete.
      
        This switches all remaining architectures to select
        HAVE_COPY_THREAD_TLS and thus to the copy_thread_tls() calling
        convention. The current split makes the process creation codepaths
        more convoluted than they need to be. Each architecture has their own
        copy_thread() function unless it selects HAVE_COPY_THREAD_TLS then it
        has a copy_thread_tls() function.
      
        The split is not needed anymore nowadays, all architectures support
        CLONE_SETTLS but quite a few of them never bothered to select
        HAVE_COPY_THREAD_TLS and instead simply continued to use copy_thread()
        and use the old calling convention. Removing this split cleans up the
        process creation codepaths and paves the way for implementing clone3()
        on such architectures since it requires the copy_thread_tls() calling
        convention.
      
        After having made each architectures support copy_thread_tls() this
        series simply renames that function back to copy_thread(). It also
        switches all architectures that call do_fork() directly over to
        _do_fork() and the struct kernel_clone_args calling convention. This
        is a corollary of switching the architectures that did not yet support
        it over to copy_thread_tls() since do_fork() is conditional on not
        supporting copy_thread_tls() (Mostly because it lacks a separate
        argument for tls which is trivial to fix but there's no need for this
        function to exist.).
      
        The do_fork() removal is in itself already useful as it allows to to
        remove the export of both do_fork() and _do_fork() we currently have
        in favor of only _do_fork(). This has already been discussed back when
        we added clone3(). The legacy clone() calling convention is - as is
        probably well-known - somewhat odd:
      
          #
          # ABI hall of shame
          #
          config CLONE_BACKWARDS
          config CLONE_BACKWARDS2
          config CLONE_BACKWARDS3
      
        that is aggravated by the fact that some architectures such as sparc
        follow the CLONE_BACKWARDSx calling convention but don't really select
        the corresponding config option since they call do_fork() directly.
      
        So do_fork() enforces a somewhat arbitrary calling convention in the
        first place that doesn't really help the individual architectures that
        deviate from it. They can thus simply be switched to _do_fork()
        enforcing a single calling convention. (I really hope that any new
        architectures will __not__ try to implement their own calling
        conventions...)
      
        Most architectures already have made a similar switch (m68k comes to
        mind).
      
        Overall this removes more code than it adds even with a good portion
        of added comments. It simplifies a chunk of arch specific assembly
        either by moving the code into C or by simply rewriting the assembly.
      
        Architectures that have been touched in non-trivial ways have all been
        actually boot and stress tested: sparc and ia64 have been tested with
        Debian 9 images. They are the two architectures which have been
        touched the most. All non-trivial changes to architectures have seen
        acks from the relevant maintainers. nios2 with a custom built
        buildroot image. h8300 I couldn't get something bootable to test on
        but the changes have been fairly automatic and I'm sure we'll hear
        people yell if I broke something there.
      
        All other architectures that have been touched in trivial ways have
        been compile tested for each single patch of the series via git rebase
        -x "make ..." v5.8-rc2. arm{64} and x86{_64} have been boot tested
        even though they have just been trivially touched (removal of the
        HAVE_COPY_THREAD_TLS macro from their Kconfig) because well they are
        basically "core architectures" and since it is trivial to get your
        hands on a useable image"
      
      * tag 'fork-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        arch: rename copy_thread_tls() back to copy_thread()
        arch: remove HAVE_COPY_THREAD_TLS
        unicore: switch to copy_thread_tls()
        sh: switch to copy_thread_tls()
        nds32: switch to copy_thread_tls()
        microblaze: switch to copy_thread_tls()
        hexagon: switch to copy_thread_tls()
        c6x: switch to copy_thread_tls()
        alpha: switch to copy_thread_tls()
        fork: remove do_fork()
        h8300: select HAVE_COPY_THREAD_TLS, switch to kernel_clone_args
        nios2: enable HAVE_COPY_THREAD_TLS, switch to kernel_clone_args
        ia64: enable HAVE_COPY_THREAD_TLS, switch to kernel_clone_args
        sparc: unconditionally enable HAVE_COPY_THREAD_TLS
        sparc: share process creation helpers between sparc and sparc64
        sparc64: enable HAVE_COPY_THREAD_TLS
        fork: fold legacy_clone_args_valid() into _do_fork()
      9ba27414
    • Linus Torvalds's avatar
      Merge tag 'threads-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 0a72761b
      Linus Torvalds authored
      Pull thread updates from Christian Brauner:
       "This contains the changes to add the missing support for attaching to
        time namespaces via pidfds.
      
        Last cycle setns() was changed to support attaching to multiple
        namespaces atomically. This requires all namespaces to have a point of
        no return where they can't fail anymore.
      
        Specifically, <namespace-type>_install() is allowed to perform
        permission checks and install the namespace into the new struct nsset
        that it has been given but it is not allowed to make visible changes
        to the affected task. Once <namespace-type>_install() returns,
        anything that the given namespace type additionally requires to be
        setup needs to ideally be done in a function that can't fail or if it
        fails the failure must be non-fatal.
      
        For time namespaces the relevant functions that fell into this
        category were timens_set_vvar_page() and vdso_join_timens(). The
        latter could still fail although it didn't need to. This function is
        only implemented for vdso_join_timens() in current mainline. As
        discussed on-list (cf. [1]), in order to make setns() support time
        namespaces when attaching to multiple namespaces at once properly we
        changed vdso_join_timens() to always succeed. So vdso_join_timens()
        replaces the mmap_write_lock_killable() with mmap_read_lock().
      
        Please note that arm is about to grow vdso support for time namespaces
        (possibly this merge window). We've synced on this change and arm64
        also uses mmap_read_lock(), i.e. makes vdso_join_timens() a function
        that can't fail. Once the changes here and the arm64 changes have
        landed, vdso_join_timens() should be turned into a void function so
        it's obvious to callers and implementers on other architectures that
        the expectation is that it can't fail.
      
        We didn't do this right away because it would've introduced
        unnecessary merge conflicts between the two trees for no major gain.
      
        As always, tests included"
      
      [1]: https://lore.kernel.org/lkml/20200611110221.pgd3r5qkjrjmfqa2@wittgenstein
      
      * tag 'threads-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        tests: add CLONE_NEWTIME setns tests
        nsproxy: support CLONE_NEWTIME with setns()
        timens: add timens_commit() helper
        timens: make vdso_join_timens() always succeed
      0a72761b
    • Linus Torvalds's avatar
      Merge branch 'exec-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace · 3950e975
      Linus Torvalds authored
      Pull execve updates from Eric Biederman:
       "During the development of v5.7 I ran into bugs and quality of
        implementation issues related to exec that could not be easily fixed
        because of the way exec is implemented. So I have been diggin into
        exec and cleaning up what I can.
      
        This cycle I have been looking at different ideas and different
        implementations to see what is possible to improve exec, and cleaning
        the way exec interfaces with in kernel users. Only cleaning up the
        interfaces of exec with rest of the kernel has managed to stabalize
        and make it through review in time for v5.9-rc1 resulting in 2 sets of
        changes this cycle.
      
         - Implement kernel_execve
      
         - Make the user mode driver code a better citizen
      
        With kernel_execve the code size got a little larger as the copying of
        parameters from userspace and copying of parameters from userspace is
        now separate. The good news is kernel threads no longer need to play
        games with set_fs to use exec. Which when combined with the rest of
        Christophs set_fs changes should security bugs with set_fs much more
        difficult"
      
      * 'exec-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (23 commits)
        exec: Implement kernel_execve
        exec: Factor bprm_stack_limits out of prepare_arg_pages
        exec: Factor bprm_execve out of do_execve_common
        exec: Move bprm_mm_init into alloc_bprm
        exec: Move initialization of bprm->filename into alloc_bprm
        exec: Factor out alloc_bprm
        exec: Remove unnecessary spaces from binfmts.h
        umd: Stop using split_argv
        umd: Remove exit_umh
        bpfilter: Take advantage of the facilities of struct pid
        exit: Factor thread_group_exited out of pidfd_poll
        umd: Track user space drivers with struct pid
        bpfilter: Move bpfilter_umh back into init data
        exec: Remove do_execve_file
        umh: Stop calling do_execve_file
        umd: Transform fork_usermode_blob into fork_usermode_driver
        umd: Rename umd_info.cmdline umd_info.driver_name
        umd: For clarity rename umh_info umd_info
        umh: Separate the user mode driver and the user mode helper support
        umh: Remove call_usermodehelper_setup_file.
        ...
      3950e975
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20200803' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · fd76a74d
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Aside from some smaller bug fixes, here are the highlights:
      
         - add a new backlog wait metric to the audit status message, this is
           intended to help admins determine how long processes have been
           waiting for the audit backlog queue to clear
      
         - generate audit records for nftables configuration changes
      
         - generate CWD audit records for for the relevant LSM audit records"
      
      * tag 'audit-pr-20200803' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: report audit wait metric in audit status reply
        audit: purge audit_log_string from the intra-kernel audit API
        audit: issue CWD record to accompany LSM_AUDIT_DATA_* records
        audit: use the proper gfp flags in the audit_log_nfcfg() calls
        audit: remove unused !CONFIG_AUDITSYSCALL __audit_inode* stubs
        audit: add gfp parameter to audit_log_nfcfg
        audit: log nftables configuration change events
        audit: Use struct_size() helper in alloc_chunk
      fd76a74d
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20200803' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 49e917de
      Linus Torvalds authored
      Pull selinux updates from Paul Moore:
       "Beyond the usual smattering of bug fixes, we've got three small
        improvements worth highlighting:
      
         - improved SELinux policy symbol table performance due to a reworking
           of the insert and search functions
      
         - allow reading of SELinux labels before the policy is loaded,
           allowing for some more "exotic" initramfs approaches
      
         - improved checking an error reporting about process
           class/permissions during SELinux policy load"
      
      * tag 'selinux-pr-20200803' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: complete the inlining of hashtab functions
        selinux: prepare for inlining of hashtab functions
        selinux: specialize symtab insert and search functions
        selinux: Fix spelling mistakes in the comments
        selinux: fixed a checkpatch warning with the sizeof macro
        selinux: log error messages on required process class / permissions
        scripts/selinux/mdp: fix initial SID handling
        selinux: allow reading labels before policy is loaded
      49e917de
    • Linus Torvalds's avatar
      Merge tag 'seccomp-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 9ecc6ea4
      Linus Torvalds authored
      Pull seccomp updates from Kees Cook:
       "There are a bunch of clean ups and selftest improvements along with
        two major updates to the SECCOMP_RET_USER_NOTIF filter return:
        EPOLLHUP support to more easily detect the death of a monitored
        process, and being able to inject fds when intercepting syscalls that
        expect an fd-opening side-effect (needed by both container folks and
        Chrome). The latter continued the refactoring of __scm_install_fd()
        started by Christoph, and in the process found and fixed a handful of
        bugs in various callers.
      
         - Improved selftest coverage, timeouts, and reporting
      
         - Add EPOLLHUP support for SECCOMP_RET_USER_NOTIF (Christian Brauner)
      
         - Refactor __scm_install_fd() into __receive_fd() and fix buggy
           callers
      
         - Introduce 'addfd' command for SECCOMP_RET_USER_NOTIF (Sargun
           Dhillon)"
      
      * tag 'seccomp-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (30 commits)
        selftests/seccomp: Test SECCOMP_IOCTL_NOTIF_ADDFD
        seccomp: Introduce addfd ioctl to seccomp user notifier
        fs: Expand __receive_fd() to accept existing fd
        pidfd: Replace open-coded receive_fd()
        fs: Add receive_fd() wrapper for __receive_fd()
        fs: Move __scm_install_fd() to __receive_fd()
        net/scm: Regularize compat handling of scm_detach_fds()
        pidfd: Add missing sock updates for pidfd_getfd()
        net/compat: Add missing sock updates for SCM_RIGHTS
        selftests/seccomp: Check ENOSYS under tracing
        selftests/seccomp: Refactor to use fixture variants
        selftests/harness: Clean up kern-doc for fixtures
        seccomp: Use -1 marker for end of mode 1 syscall list
        seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID
        selftests/seccomp: Rename user_trap_syscall() to user_notif_syscall()
        selftests/seccomp: Make kcmp() less required
        seccomp: Use pr_fmt
        selftests/seccomp: Improve calibration loop
        selftests/seccomp: use 90s as timeout
        selftests/seccomp: Expand benchmark to per-filter measurements
        ...
      9ecc6ea4
    • Linus Torvalds's avatar
      Merge tag 'uninit-macro-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 99ea1521
      Linus Torvalds authored
      Pull uninitialized_var() macro removal from Kees Cook:
       "This is long overdue, and has hidden too many bugs over the years. The
        series has several "by hand" fixes, and then a trivial treewide
        replacement.
      
         - Clean up non-trivial uses of uninitialized_var()
      
         - Update documentation and checkpatch for uninitialized_var() removal
      
         - Treewide removal of uninitialized_var()"
      
      * tag 'uninit-macro-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        compiler: Remove uninitialized_var() macro
        treewide: Remove uninitialized_var() usage
        checkpatch: Remove awareness of uninitialized_var() macro
        mm/debug_vm_pgtable: Remove uninitialized_var() usage
        f2fs: Eliminate usage of uninitialized_var() macro
        media: sur40: Remove uninitialized_var() usage
        KVM: PPC: Book3S PR: Remove uninitialized_var() usage
        clk: spear: Remove uninitialized_var() usage
        clk: st: Remove uninitialized_var() usage
        spi: davinci: Remove uninitialized_var() usage
        ide: Remove uninitialized_var() usage
        rtlwifi: rtl8192cu: Remove uninitialized_var() usage
        b43: Remove uninitialized_var() usage
        drbd: Remove uninitialized_var() usage
        x86/mm/numa: Remove uninitialized_var() usage
        docs: deprecated.rst: Add uninitialized_var()
      99ea1521
    • Linus Torvalds's avatar
      Merge tag 'tasklets-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 427714f2
      Linus Torvalds authored
      Pull tasklets API update from Kees Cook:
       "These are the infrastructure updates needed to support converting the
        tasklet API to something more modern (and hopefully for removal
        further down the road).
      
        There is a 300-patch series waiting in the wings to get set out to
        subsystem maintainers, but these changes need to be present in the
        kernel first. Since this has some treewide changes, I carried this
        series for -next instead of paining Thomas with it in -tip, but it's
        got his Ack.
      
        This is similar to the timer_struct modernization from a while back,
        but not nearly as messy (I hope). :)
      
         - Prepare for tasklet API modernization (Romain Perier, Allen Pais,
           Kees Cook)"
      
      * tag 'tasklets-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        tasklet: Introduce new initialization API
        treewide: Replace DECLARE_TASKLET() with DECLARE_TASKLET_OLD()
        usb: gadget: udc: Avoid tasklet passing a global
      427714f2
    • Linus Torvalds's avatar
      Merge tag 'var-init-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 5b5d3be5
      Linus Torvalds authored
      Pull automatic variable initialization updates from Kees Cook:
       "This adds the "zero" init option from Clang, which is being used
        widely in production builds of Android and Chrome OS (though it also
        keeps the "pattern" init, which is better for debug builds).
      
         - Introduce CONFIG_INIT_STACK_ALL_ZERO (Alexander Potapenko)"
      
      * tag 'var-init-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        security: allow using Clang's zero initialization for stack variables
      5b5d3be5
    • Linus Torvalds's avatar
      Merge tag 'gcc-plugins-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 3e4a12a1
      Linus Torvalds authored
      Pull gcc plugin updates from Kees Cook:
       "Primarily improvements to STACKLEAK from Alexander Popov, along with
        some additional cleanups.
      
          - Update URLs for HTTPS scheme where available (Alexander A. Klimov)
      
         - Improve STACKLEAK code generation on x86 (Alexander Popov)"
      
      * tag 'gcc-plugins-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        gcc-plugins: Replace HTTP links with HTTPS ones
        gcc-plugins/stackleak: Add 'verbose' plugin parameter
        gcc-plugins/stackleak: Use asm instrumentation to avoid useless register saving
        ARM: vdso: Don't use gcc plugins for building vgettimeofday.c
        gcc-plugins/stackleak: Don't instrument itself
      3e4a12a1
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 19a93823
      Linus Torvalds authored
      Pull pstore update from Kees Cook:
       "A tiny pstore update which fixes a very corner-case build failure:
      
         - Fix linking when crypto API disabled (Matteo Croce)"
      
      * tag 'pstore-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore: Fix linking when crypto API disabled
      19a93823
    • Linus Torvalds's avatar
      random32: move the pseudo-random 32-bit definitions to prandom.h · c0842fbc
      Linus Torvalds authored
      The addition of percpu.h to the list of includes in random.h revealed
      some circular dependencies on arm64 and possibly other platforms.  This
      include was added solely for the pseudo-random definitions, which have
      nothing to do with the rest of the definitions in this file but are
      still there for legacy reasons.
      
      This patch moves the pseudo-random parts to linux/prandom.h and the
      percpu.h include with it, which is now guarded by _LINUX_PRANDOM_H and
      protected against recursive inclusion.
      
      A further cleanup step would be to remove this from <linux/random.h>
      entirely, and make people who use the prandom infrastructure include
      just the new header file.  That's a bit of a churn patch, but grepping
      for "prandom_" and "next_pseudo_random32" "struct rnd_state" should
      catch most users.
      
      But it turns out that that nice cleanup step is fairly painful, because
      a _lot_ of code currently seems to depend on the implicit include of
      <linux/random.h>, which can currently come in a lot of ways, including
      such fairly core headfers as <linux/net.h>.
      
      So the "nice cleanup" part may or may never happen.
      
      Fixes: 1c9df907 ("random: fix circular include dependency on arm64 after addition of percpu.h")
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Acked-by: default avatarWilly Tarreau <w@1wt.eu>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c0842fbc
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2baa85d6
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These eliminate significant AML processing overhead related to using
        operation regions in system memory, update the ACPICA code in the
        kernel to upstream revision 20200717 (including a fix to prevent
        operation region reference counts from overflowing in some cases),
        remove the last bits of the (long deprecated) ACPI procfs interface
        and do some assorted cleanups.
      
        Specifics:
      
         - Eliminate significant AML processing overhead related to using
           operation regions in system memory by reworking the management of
           memory mappings in the ACPI code to defer unmap operations (to do
           them outside of the ACPICA locks, among other things) and making
           the memory operation reagion handler avoid releasing memory
           mappings created by it too early (Rafael Wysocki).
      
         - Update the ACPICA code in the kernel to upstream revision 20200717:
      
             * Prevent operation region reference counts from overflowing in
               some cases (Erik Kaneda).
      
             * Replace one-element array with flexible-array (Gustavo A. R.
               Silva).
      
         - Fix ACPI PCI hotplug reference counting (Rafael Wysocki).
      
         - Drop last bits of the ACPI procfs interface (Thomas Renninger).
      
         - Drop some redundant checks from the code parsing ACPI tables
           related to NUMA (Hanjun Guo).
      
         - Avoid redundant object evaluation in the ACPI device properties
           handling code (Heikki Krogerus).
      
         - Avoid unecessary memory overhead related to storing the signatures
           of the ACPI tables recognized by the kernel (Ard Biesheuvel).
      
         - Add missing newline characters when printing module parameter
           values in some places (Xiongfeng Wang).
      
         - Update the link to the ACPI specifications in some places (Tiezhu
           Yang).
      
         - Use the fallthrough pseudo-keyword in the ACPI code (Gustavo A. R.
           Silva).
      
         - Drop redundant variable initialization from the APEI code (Colin
           Ian King).
      
         - Drop uninitialized_var() from the ACPI PAD driver (Jason Yan).
      
         - Replace HTTP links with HTTPS ones in the ACPI code (Alexander A.
           Klimov)"
      
      * tag 'acpi-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (22 commits)
        ACPI: APEI: remove redundant assignment to variable rc
        ACPI: NUMA: Remove the useless 'node >= MAX_NUMNODES' check
        ACPI: NUMA: Remove the useless sub table pointer check
        ACPI: tables: Remove the duplicated checks for acpi_parse_entries_array()
        ACPICA: Update version to 20200717
        ACPICA: Do not increment operation_region reference counts for field units
        ACPICA: Replace one-element array with flexible-array
        ACPI: Replace HTTP links with HTTPS ones
        ACPI: Use valid link to the ACPI specification
        ACPI: OSL: Clean up the removal of unused memory mappings
        ACPI: OSL: Use deferred unmapping in acpi_os_unmap_iomem()
        ACPI: OSL: Use deferred unmapping in acpi_os_unmap_generic_address()
        ACPICA: Preserve memory opregion mappings
        ACPI: OSL: Implement deferred unmapping of ACPI memory
        ACPI: Use fallthrough pseudo-keyword
        PCI: hotplug: ACPI: Fix context refcounting in acpiphp_grab_context()
        ACPI: tables: avoid relocations for table signature array
        ACPI: PAD: Eliminate usage of uninitialized_var() macro
        ACPI: sysfs: add newlines when printing module parameters
        ACPI: EC: add newline when printing 'ec_event_clearing' module parameter
        ...
      2baa85d6
    • Linus Torvalds's avatar
      Merge tag 'pm-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 04084978
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "The most significant change here is the extension of the Energy Model
        to cover non-CPU devices (as well as CPUs) from Lukasz Luba.
      
        There is also some new hardware support (Ice Lake server idle states
        table for intel_idle, Sapphire Rapids and Power Limit 4 support in the
        RAPL driver), some new functionality in the existing drivers (eg. a
        new switch to disable/enable CPU energy-efficiency optimizations in
        intel_pstate, delayed timers in devfreq), some assorted fixes (cpufreq
        core, intel_pstate, intel_idle) and cleanups (eg. cpuidle-psci,
        devfreq), including the elimination of W=1 build warnings from cpufreq
        done by Lee Jones.
      
        Specifics:
      
         - Make the Energy Model cover non-CPU devices (Lukasz Luba).
      
         - Add Ice Lake server idle states table to the intel_idle driver and
           eliminate a redundant static variable from it (Chen Yu, Rafael
           Wysocki).
      
         - Eliminate all W=1 build warnings from cpufreq (Lee Jones).
      
         - Add support for Sapphire Rapids and for Power Limit 4 to the Intel
           RAPL power capping driver (Sumeet Pawnikar, Zhang Rui).
      
         - Fix function name in kerneldoc comments in the idle_inject power
           capping driver (Yangtao Li).
      
         - Fix locking issues with cpufreq governors and drop a redundant
           "weak" function definition from cpufreq (Viresh Kumar).
      
         - Rearrange cpufreq to register non-modular governors at the
           core_initcall level and allow the default cpufreq governor to be
           specified in the kernel command line (Quentin Perret).
      
         - Extend, fix and clean up the intel_pstate driver (Srinivas
           Pandruvada, Rafael Wysocki):
      
             * Add a new sysfs attribute for disabling/enabling CPU
               energy-efficiency optimizations in the processor.
      
             * Make the driver avoid enabling HWP if EPP is not supported.
      
             * Allow the driver to handle numeric EPP values in the sysfs
               interface and fix the setting of EPP via sysfs in the active
               mode.
      
             * Eliminate a static checker warning and clean up a kerneldoc
               comment.
      
         - Clean up some variable declarations in the powernv cpufreq driver
           (Wei Yongjun).
      
         - Fix up the ->enter_s2idle callback definition to cover the case
           when it points to the same function as ->idle correctly (Neal Liu).
      
         - Rearrange and clean up the PSCI cpuidle driver (Ulf Hansson).
      
         - Make the PM core emit "changed" uevent when adding/removing the
           "wakeup" sysfs attribute of devices (Abhishek Pandit-Subedi).
      
         - Add a helper macro for declaring PM callbacks and use it in the MMC
           jz4740 driver (Paul Cercueil).
      
         - Fix white space in some places in the hibernate code and make the
           system-wide PM code use "const char *" where appropriate (Xiang
           Chen, Alexey Dobriyan).
      
         - Add one more "unsafe" helper macro to the freezer to cover the NFS
           use case (He Zhe).
      
         - Change the language in the generic PM domains framework to use
           parent/child terminology and clean up a typo and some comment
           fromatting in that code (Kees Cook, Geert Uytterhoeven).
      
         - Update the operating performance points OPP framework (Lukasz Luba,
           Andrew-sh.Cheng, Valdis Kletnieks):
      
             * Refactor dev_pm_opp_of_register_em() and update related drivers.
      
             * Add a missing function export.
      
             * Allow disabled OPPs in dev_pm_opp_get_freq().
      
         - Update devfreq core and drivers (Chanwoo Choi, Lukasz Luba, Enric
           Balletbo i Serra, Dmitry Osipenko, Kieran Bingham, Marc Zyngier):
      
             * Add support for delayed timers to the devfreq core and make the
               Samsung exynos5422-dmc driver use it.
      
             * Unify sysfs interface to use "df-" as a prefix in instance
               names consistently.
      
             * Fix devfreq_summary debugfs node indentation.
      
             * Add the rockchip,pmu phandle to the rk3399_dmc driver DT
               bindings.
      
             * List Dmitry Osipenko as the Tegra devfreq driver maintainer.
      
             * Fix typos in the core devfreq code.
      
         - Update the pm-graph utility to version 5.7 including a number of
           fixes related to suspend-to-idle (Todd Brandt).
      
         - Fix coccicheck errors and warnings in the cpupower utility (Shuah
           Khan).
      
         - Replace HTTP links with HTTPs ones in multiple places (Alexander A.
           Klimov)"
      
      * tag 'pm-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (71 commits)
        cpuidle: ACPI: fix 'return' with no value build warning
        cpufreq: intel_pstate: Fix EPP setting via sysfs in active mode
        cpufreq: intel_pstate: Rearrange the storing of new EPP values
        intel_idle: Customize IceLake server support
        PM / devfreq: Fix the wrong end with semicolon
        PM / devfreq: Fix indentaion of devfreq_summary debugfs node
        PM / devfreq: Clean up the devfreq instance name in sysfs attr
        memory: samsung: exynos5422-dmc: Add module param to control IRQ mode
        memory: samsung: exynos5422-dmc: Adjust polling interval and uptreshold
        memory: samsung: exynos5422-dmc: Use delayed timer as default
        PM / devfreq: Add support delayed timer for polling mode
        dt-bindings: devfreq: rk3399_dmc: Add rockchip,pmu phandle
        PM / devfreq: tegra: Add Dmitry as a maintainer
        PM / devfreq: event: Fix trivial spelling
        PM / devfreq: rk3399_dmc: Fix kernel oops when rockchip,pmu is absent
        cpuidle: change enter_s2idle() prototype
        cpuidle: psci: Prevent domain idlestates until consumers are ready
        cpuidle: psci: Convert PM domain to platform driver
        cpuidle: psci: Fix error path via converting to a platform driver
        cpuidle: psci: Fail cpuidle registration if set OSI mode failed
        ...
      04084978
    • Linus Torvalds's avatar
      Merge tag 'regmap-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · d5168406
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "This release we've seen a couple of updates to make some DT based APIs
        use fwnode instead, allowing their use with ACPI systems, and a few
        cleanups"
      
      * tag 'regmap-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: fix duplicated word in <linux/regmap.h>
        regmap: Switch to use fwnode instead of OF one
        regmap-irq: use fwnode instead of device node in add_irq_chip()
        regmap: remove stray space
        regmap: convert all regmap_update_bits() and co. macros to static inlines
      d5168406
    • Linus Torvalds's avatar
      Merge tag 'spi-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · b1713739
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "A fairly quiet release for SPI, nothing really going on in the core
        although there's been quite a bit of driver related activity.
      
        This includes the addition of some shared code in drivers/memory for
        the Renesas RPC-IF which is used by a newly added SPI driver, the
        memory subsystem doesn't seem to have a fixed maintainer at the minute
        and this seemed like the most sensible way to get that hardware
        supported.
      
         - Quite a few cleanups and optimizations for the Altera, Qualcomm
           GENI, sun6i and lantiq drivers.
      
         - Several more GPIO descriptor conversions.
      
         - Move the Cadence QuadSPI driver from drivers/mtd to drivers/spi.
      
         - New support for Mediatek MT8192 and Renesas RPC-IF, R8A7742 and
           R8A774e1"
      
      * tag 'spi-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (119 commits)
        dt-bindings: lpspi: New property in document DT bindings for LPSPI
        spi: lpspi: fix using CS discontinuously on i.MX8DXLEVK
        spi: lpspi: remove unused fsl_lpspi->chipselect
        spi: lpspi: Fix kernel warning dump when probe fail after calling spi_register
        spi: rockchip: Fix error in SPI slave pio read
        spi: rockchip: Support 64-location deep FIFOs
        spi: rockchip: Config spi rx dma burst size depend on xfer length
        spi: spi-topcliff-pch: drop call to wakeup-disable
        spi: spidev: Align buffers for DMA
        spi: correct kernel-doc inconsistency
        spi: sun4i: update max transfer size reported
        spi: imx: enable runtime pm support
        spi: update bindings for MT8192 SoC
        spi: mediatek: add spi support for mt8192 IC
        spi: Add bindings for Lightning Mountain SoC
        spi: lantiq: Add support to Lightning Mountain SoC
        spi: lantiq: Move interrupt configuration to SoC specific data structure
        spi: lantiq: Add fifo size bit mask in SoC specific data structure
        spi: lantiq: Add support to acknowledge interrupt
        spi: lantiq: Move interrupt control register offesets to SoC specific data structure
        ...
      b1713739
    • Linus Torvalds's avatar
      Merge tag 'regulator-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · bbb83990
      Linus Torvalds authored
      Pull regulator updates from Mark Brown:
       "This time around the bulk of the work on the regulator API has been
        cleanups of various kinds, partly but not entirely inspired by the W=1
        stuff that 0day turned on.
      
        There's also been a fairly large crop of new drivers, and a few
        bugfixes for existing drivers.
      
         - Mode setting support for MT6397 and DA9211.
      
         - New drivers for ChromeOS embedded controllers, Fairchild FAN53880,
           NXP PCA9450, Qualcomm LABIBB, MP5496, and VBUS booster, and Silergy
           SY8827N"
      
      * tag 'regulator-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (67 commits)
        regulator: add the sub node names for the MP5496 PMIC
        regulator: cros-ec-regulator: Fix double free of desc->name.
        platform/chrome: cros_ec: Fix host command for regulator control.
        regulator: pca9450: Convert to use module_i2c_driver
        regulator: fix memory leak on error path of regulator_register()
        regulator: Replace HTTP links with HTTPS ones
        regulator: convert QCOM SMD-RPM regulator document to YAML schema
        regulator: gpio: Honor regulator-boot-on property
        regulator: core: Add destroy_regulator()
        regulator: Correct kernel-doc inconsistency
        regulator: Add labibb regulator binding
        regulator: qcom: Add labibb driver
        regulator: Allow regulators to verify enabled during enable()
        regulator: cros-ec: Constify cros_ec_regulator_voltage_ops
        regulator: devres: Standardise on function documentation headers
        regulator: of_regulator: Add missing colon for rdev kerneldoc argument
        regulator: devres: Fix issues with kerneldoc headers
        regulator: fan53880: Add support for COMPILE_TEST
        regulator: fan53880: Add missing .owner field in regulator_desc
        dt-bindings: regulator: add pca9450 regulator yaml
        ...
      bbb83990
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · f8851cb2
      Linus Torvalds authored
      Pull EDAC updates from Tony Luck:
       "Boris is on vacation and aske me to send you the EDAC changes"
      
      * tag 'edac_updates_for_5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC: Fix reference count leaks
        EDAC: Remove edac_get_dimm_by_index()
        EDAC/ghes: Scan the system once on driver init
        EDAC/ghes: Remove unused members of struct ghes_edac_pvt, rename it to ghes_pvt
        EDAC/ghes: Setup DIMM label from DMI and use it in error reports
        EDAC, {skx,i10nm}: Use CPU stepping macro to pass configurations
        EDAC/mc: Call edac_inc_ue_error() before panic
        EDAC, pnd2: Set MCE_PRIO_EDAC priority for pnd2_mce_dec notifier
      f8851cb2
    • Linus Torvalds's avatar
      Merge tag 'arm-newsoc-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · d4db4e55
      Linus Torvalds authored
      Pull new ARM SoC support from Arnd Bergmann:
       "There are three SoC families newly dded to the 32-bit and 64-bit Arm
        architecture code in the kernel this time:
      
         - Daniel Palmer adds initial support for two chips made by MStar, a
           taiwanese SoC manufacturer that became part of Mediatek in 2012.
      
           For now, the added support is fairly minimal, with just two of its
           Cortex-A7 based 32-bit camera chips getting support for a limited
           set of on-chip peripherals.
      
         - Lars Povlsen from Microchip adds support for their new Sparx5
           family of ethernet switch chips using 64-bit Cortex-A53 cores.
      
           These are descended from earlier VSC7xxx SparX and Ocelot chips
           using 32-bit MIPS cores.
      
         - Daniele Alessandrelli from Intel adds support for the new Keem Bay
           SoC for computer vision, built around a Movidius VPU with Linux
           running on Arm Cortex-A53 cores"
      
      * tag 'arm-newsoc-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (38 commits)
        ARM: mstar: Correct the compatible string for pmsleep
        dt-bindings: arm: mstar: remove the binding description for mstar,pmsleep
        dt-bindings: mfd: syscon: add compatible string for mstar,msc313-pmsleep
        ARM: mstar: Add reboot support
        ARM: mstar: Add "pmsleep" node to base dtsi
        ARM: mstar: Add PMU
        ARM: mstar: Adjust IMI size for infinity3
        ARM: mstar: Adjust IMI size for mercury5
        ARM: mstar: Adjust IMI size of infinity
        ARM: mstar: Add IMI SRAM region
        dt-bindings: arm: mstar: Move existing MStar binding descriptions
        dt-bindings: arm: mstar: Add binding details for mstar, pmsleep
        ARM: mstar: Fix dts filename for 70mai midrive d08
        ARM: mstar: Add dts for 70mai midrive d08
        ARM: mstar: Add dts for msc313(e) based BreadBee boards
        ARM: mstar: Add mercury5 series dtsis
        ARM: mstar: Add infinity/infinity3 family dtsis
        ARM: mstar: Add Armv7 base dtsi
        ARM: mstar: Add binding details for mstar,l3bridge
        ARM: mstar: Add machine for MStar/Sigmastar Armv7 SoCs
        ...
      d4db4e55
    • Linus Torvalds's avatar
      Merge tag 'arm-drivers-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 822ef14e
      Linus Torvalds authored
      Pull ARM SoC driver updates from Arnd Bergmann:
       "A couple of subsystems have their own subsystem maintainers but choose
        to have the code merged through the soc tree as upstream, as the code
        tends to be used across multiple SoCs or has SoC specific drivers
        itself:
      
         - memory controllers:
      
           Krzysztof Kozlowski takes ownership of the drivers/memory subsystem
           and its drivers, starting out with a set of cleanup patches.
      
           A larger driver for the Tegra memory controller that was
           accidentally missed for v5.8 is now added.
      
         - reset controllers:
      
           Only minor updates to drivers/reset this time
      
         - firmware:
      
           The "turris mox" firmware driver gains support for signed firmware
           blobs The tegra firmware driver gets extended to export some debug
           information Various updates to i.MX firmware drivers, mostly
           cosmetic
      
         - ARM SCMI/SCPI:
      
           A new mechanism for platform notifications is added, among a number
           of minor changes.
      
         - optee:
      
           Probing of the TEE bus is rewritten to better support detection of
           devices that depend on the tee-supplicant user space. A new
           firmware based trusted platform module (fTPM) driver is added based
           on OP-TEE
      
         - SoC attributes:
      
           A new driver is added to provide a generic soc_device for
           identifying a machine through the SMCCC ARCH_SOC_ID firmware
           interface rather than by probing SoC family specific registers.
      
           The series also contains some cleanups to the common soc_device
           code.
      
        There are also a number of updates to SoC specific drivers, the main
        ones are:
      
         - Mediatek cmdq driver gains a few in-kernel interfaces
      
         - Minor updates to Qualcomm RPMh, socinfo, rpm drivers, mostly adding
           support for additional SoC variants
      
         - The Qualcomm GENI core code gains interconnect path voting and
           performance level support, and integrating this into a number of
           device drivers.
      
         - A new driver for Samsung Exynos5800 voltage coupler for
      
         - Renesas RZ/G2H (R8A774E1) SoC support gets added to a couple of SoC
           specific device drivers
      
         - Updates to the TI K3 Ring Accelerator driver"
      
      * tag 'arm-drivers-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (164 commits)
        soc: qcom: geni: Fix unused label warning
        soc: qcom: smd-rpm: Fix kerneldoc
        memory: jz4780_nemc: Only request IO memory the driver will use
        soc: qcom: pdr: Reorder the PD state indication ack
        MAINTAINERS: Add Git repository for memory controller drivers
        memory: brcmstb_dpfe: Fix language typo
        memory: samsung: exynos5422-dmc: Correct white space issues
        memory: samsung: exynos-srom: Correct alignment
        memory: pl172: Enclose macro argument usage in parenthesis
        memory: of: Correct kerneldoc
        memory: omap-gpmc: Fix language typo
        memory: omap-gpmc: Correct white space issues
        memory: omap-gpmc: Use 'unsigned int' for consistency
        memory: omap-gpmc: Enclose macro argument usage in parenthesis
        memory: omap-gpmc: Correct kerneldoc
        memory: mvebu-devbus: Align with open parenthesis
        memory: mvebu-devbus: Add missing braces to all arms of if statement
        memory: bt1-l2-ctl: Add blank lines after declarations
        soc: TI knav_qmss: make symbol 'knav_acc_range_ops' static
        firmware: ti_sci: Replace HTTP links with HTTPS ones
        ...
      822ef14e
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 6ce076f4
      Linus Torvalds authored
      Pull ARM SoC updates from Arnd Bergmann:
       "These are mostly cosmetic changes and minor bugfixes for the SoC
        specific code, across the 32-bit at91, mvebu, davinci, samsung, and
        omap platforms.
      
        The main notable changes are for the Samsung Exynos platform, which
        sees a rewrite of gpio handling and a change to restore and adds a
        workaround for a problem with cpuidle support"
      
      * tag 'arm-soc-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        ARM: socfpga: PM: add missing put_device() call in socfpga_setup_ocram_self_refresh()
        MAINTAINERS: arm/amlogic: add designated reviewers
        ARM: davinci: dm646x-evm: Simplify error handling in 'evm_sw_setup()'
        ARM: davinci: Fix trivial spelling
        ARM: davinci: Replace HTTP links with HTTPS ones
        ARM: s3c24xx: Replace HTTP links with HTTPS ones
        ARM: orion/gpio: Make use of for_each_requested_gpio()
        ARM: at91: Replace HTTP links with HTTPS ones
        ARM: at91: pm: add missing put_device() call in at91_pm_sram_init()
        ARM: rpc: Change blacklist to quirklist in ecode.c file
        ARM: OMAP: Replace HTTP links with HTTPS ones
        ARM: s3c24xx: leds: Convert to use GPIO descriptors
        udc: lpc32xx: mark local function static
        ARM: exynos: MCPM: Restore big.LITTLE cpuidle support
        ARM: exynos: clear L310_AUX_CTRL_FULL_LINE_ZERO in default l2c_aux_val
      6ce076f4
    • Linus Torvalds's avatar
      Merge tag 'arm-dt-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 2f3fbfda
      Linus Torvalds authored
      Pull ARM SoC DT updates from Arnd Bergmann:
       "As usual, there are many patches addressing minor issues in existing
        DTS files, such as DTC warnings, or adding support for additional
        peripherals.
      
        There are three added SoCs in existing product families:
      
         - Amazon:
      
           Alpine v3 is a 16-core Cortex-A72 SoC from Amazon's Annapurna Labs,
           otherwise known as AL73400 or first-generation Graviton, and
           following the already supported Cortex-A1`5 and Cortex-A57 based
           Alpine chips. This one is added together with the official
           Evaluation platform.
      
         - Qualcomm:
      
           The Snapdragon SDM630 platform is a family of mid-range mobile
           phone chips from 2017 based on Cortex-A53 or Kryo 260 CPUs. A total
           of five end-user products are added based on these, all Android
           phones from Sony: Xperia 10, 10 Plus, XA2, XA2 Plus and XA2 Ultra.
      
         - Renesas:
      
           RZ/G2H (r8a774e1) is currently the top model in the Renesas RZ/G
           family, and apparently closely related to the RZ/G2N and RZ/G2M
           models we already support but has a faster GPU and additional
           on-chip peripherals. It is added along with the HopeRun HiHope
           RZ/G2H development board
      
        A small number of new boards for already supported SoCs also debut:
      
         - Allwinner sunxi:
      
           Only one new machine, revision v1.2 of the Pine64 PinePhone
           (non-Android) smartphone, containing minor changes compared to
           earlier versions.
      
         - Amlogic Meson:
      
           WeTek Core2 is an Amlogic S912 (GXM) based Set-top-box
      
         - Aspeed:
      
           EthanolX is AMD's EPYC data center rerence platform, using an
           ASpeed AST2600 baseboard management controller.
      
         - Mediatek:
      
           Lenovo IdeaPad Duet 10.1" (kukui/krane) is a new Chromebook based
           on the MT8183 (Helio P60t) SoC.
      
         - Nvidia Tegra:
      
           ASUS Google Nexus 7 and Acer Iconia Tab A500 are two Android
           tablets from around 2012 using Tegra 3 and Tegra 2, respectively.
           Thanks to PostmarketOS, these can now run mainline kernels and
           become useful again.
      
           The Jetson Xavier NX Developer Kit uses a SoM and carrier board for
           the Tegra194, their latest 64-bit chip based on Carmel CPU cores
           and Volta graphics.
      
         - NXP i.MX:
      
           Five new boards based on the 32-bit i.MX6 series are added: The
           MYiR MYS-6ULX single-board computer, and four different models of
           industrial computers from Protonic.
      
         - Qualcomm:
      
           MikroTik RouterBoard 3011 is a rackmounted router based on the
           32-bit IPQ8064 networking SoC
      
           Three older phones get added, the Snapdragon 808 (msm8992) based
           Xiaomi Libra (Mi 4C) and Microsoft Lumia 950, originally running
           Windows Phone, and the Snapdragon 810 (msm8994) based Sony Xperia
           Z5.
      
         - Renesas:
      
           In addition to the HiHope RZ/G2H board mentioned above, we gain
           support for board versions 3.0 and 4.0 of the earlier RZ/G2M and
           RZ/G2N reference boards. Beacon EmbeddedWorks adds another
           SoM+Carrier development board for RZ/G2M.
      
         - Rockchips:
      
           Radxa Rock Pi N8 development board and the VMARC RK3288 SoM it is
           based on, using the high-end 32-bit rk3288 SoC.
      
        Notable updates to existing platforms are usually for added on-chip
        peripherals, including:
      
         - ASpeed AST2xxx (various)
      
         - Allwinner (cpufreq, thermal, Pinephone touchscreen)
      
         - Amlogic Meson (audio, gpu dvdfs, board updates)
      
         - Arm Versatile
      
         - Broadcom (board updates for switch ports, Raspberry pi clock updates)
      
         - Hisilicon (various)
      
         - Intel/Altera SoCFPGA (various)
      
         - Marvell Armada 7xxx/8xxx (smmu)
      
         - Marvell MMP (GPU on mmp2/mmp3)
      
         - Mediatek mt8183 (USB, pericfg)
      
         - NXP Layerscape (VPU, thermal, DSPI)
      
         - NXP i.MX (VPU, bindings, board updates)
      
         - Nvidia Tegra194 (GPU)
      
         - Qualcomm (GPU, Interconnect, ...)
      
         - Renesas R-Car (SPI, IPMMU, board updates)
      
         - STMicroelectronics STM32 (various)
      
         - Samsung Exynos (various)
      
         - Socionext Uniphier (updates to serial, and pcie)
      
         - TI K3 (serdes, usb3, audio, sd, chipid)
      
         - TI OMAP (IPU/DSP remoteproc changes, dropping platform data)"
      
      * tag 'arm-dt-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (605 commits)
        arm64: dts: meson: odroid-n2: add jack audio output support
        arm64: dts: meson: odroid-n2: enable audio loopback
        ARM: dts: berlin: Align L2 cache-controller nodename with dtschema
        arm64: dts: qcom: Add Microsoft Lumia 950 (Talkman) device tree
        arm64: dts: qcom: Add Xiaomi Libra (Mi 4C) device tree
        arm64: dts: qcom: msm8992: Add RPMCC node
        arm64: dts: qcom: msm8992: Add PSCI support.
        arm64: dts: qcom: msm8992: Add PMU node
        arm64: dts: qcom: msm8992: Add BLSP2_UART2 and I2C nodes
        arm64: dts: qcom: msm8992: Add SPMI PMIC arbiter device
        arm64: dts: qcom: msm8992: Add a SCM node
        arm64: dts: qcom: msm8992: Add a proper CPU map
        arm64: dts: qcom: bullhead: Move UART pinctrl to SoC
        arm64: dts: qcom: bullhead: Add qcom,msm-id
        arm64: dts: qcom: msm8992: Fix SDHCI1
        arm64: dts: qcom: msm8992: Modernize the DTS style
        arm64: dts: qcom: Add support for Sony Xperia Z5 (SoMC Sumire-RoW)
        arm64: dts: qcom: Move msm8994-smd-rpm contents to lg-bullhead.
        arm64: dts: qcom: msm8994: Add support for SMD RPM
        arm64: dts: qcom: msm8992: Add a label to rpm-requests
        ...
      2f3fbfda
    • Linus Torvalds's avatar
      Merge tag 'arm-defconfig-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 92c59e12
      Linus Torvalds authored
      Pull ARM defconfig updates from Arnd Bergmann:
       "These are the usual updates to arm/arm64 defconfig files, enabling
        newly added drivers and addressing changes to Kconfig files"
      
      * tag 'arm-defconfig-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (38 commits)
        ARM: configs: at91: sama5: enable CAN PLATFORM driver
        ARM: configs: at91: sama5: enable bridge and VLAN filtering
        ARM: configs: at91: sama5: add support for KSZ ethernet switches
        arm64: defconfig: Enable AM654x SDHCI controller
        arm64: arch_k3: enable chipid driver
        arm/arm64: defconfig: Update configs to use the new CROS_EC options
        ARM: tegra_defconfig: Enable options useful for Nexus 7 and Acer A500
        ARM: tegra: Enable CPUFREQ userspace governor
        arm64: defconfig: enable CONFIG_FSL_ENETC_QOS
        arm64: defconfig: enable TSN features for ENETC and similiar hardware
        ARM: imx_v6_v7_defconfig: Support i.MX8MM
        arm64: defconfig: enable RTC and audio support on Kontron sl28 boards
        arm64: defconfig: add pca9450 pmic driver
        ARM: configs: sunxi: Enable crypto related options
        ARM: sunxi: configs: Enable the Mailbox driver
        ARM: configs: sunxi: Enable the PS/2 controller
        ARM: configs: sunxi: Enable Lima
        ARM: configs: sunxi: Add DRM output-related options
        ARM: configs: sunxi: Enable ASoC options
        ARM: configs: sunxi: Enable Cedrus
        ...
      92c59e12
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.9-1' of git://git.infradead.org/linux-platform-drivers-x86 · 09a0bd07
      Linus Torvalds authored
      Pull x86 platform driver updates from Andy Shevchenko:
      
       - ASUS WMI driver honors BAT1 name of the battery (quite a few new
         laptops are using it)
      
       - Dell WMI driver supports new key codes and backlight events
      
       - ThinkPad ACPI driver now may use standard charge threshold interface,
         it also has been updated to provide Laptop or Desktop mode to the
         user
      
       - Intel Speed Select Technology gained support on Sapphire Rapids
         platform
      
       - Regular update of Speed Select Technology tools
      
       - Mellanox has been updated to support complex attributes
      
       - PMC core driver has been fixed to show correct names for LPM0
         register
      
       - HTTP links were replaced by HTTPS ones where it applies
      
       - Miscellaneous fixes and cleanups here and there
      
      * tag 'platform-drivers-x86-v5.9-1' of git://git.infradead.org/linux-platform-drivers-x86: (42 commits)
        platform/x86: asus-nb-wmi: Drop duplicate DMI quirk structures
        platform/x86: thinkpad_acpi: Make some symbols static
        platform/x86: thinkpad_acpi: add documentation for battery charge control
        platform/x86: thinkpad_acpi: use standard charge control attribute names
        platform/x86: thinkpad_acpi: remove unused defines
        platform/x86: ISST: drop a duplicated word in isst_if.h
        tools/power/x86/intel-speed-select: Update version for v5.9
        tools/power/x86/intel-speed-select: Add retries for mail box commands
        tools/power/x86/intel-speed-select: Add option to delay mbox commands
        tools/power/x86/intel-speed-select: Ignore -o option processing on error
        tools/power/x86/intel-speed-select: Change path for caching topology info
        platform/x86: acerhdf: Replace HTTP links with HTTPS ones
        platform/x86: apple-gmux: Replace HTTP links with HTTPS ones
        platform/x86: pcengines-apuv2: revert wiring up simswitch GPIO as LED
        platform/x86: mlx-platform: Extend FAN platform data description
        platform_data/mlxreg: Add presence register field for FAN devices
        Documentation/ABI: Add new attribute for mlxreg-io sysfs interfaces
        platform/mellanox: mlxreg-io: Add support for complex attributes
        platform/x86: mlx-platform: Add more definitions for system attributes
        platform_data/mlxreg: Add support for complex attributes
        ...
      09a0bd07
    • Linus Torvalds's avatar
      Merge tag 'ras-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e53bc3ff
      Linus Torvalds authored
      Pull x86 RAS updates from Ingo Molnar:
       "Boris is on vacation and he asked us to send you the pending RAS bits:
      
         - Print the PPIN field on CPUs that fill them out
      
         - Fix an MCE injection bug
      
         - Simplify a kzalloc in dev_mcelog_init_device()"
      
      * tag 'ras-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce, EDAC/mce_amd: Print PPIN in machine check records
        x86/mce/dev-mcelog: Use struct_size() helper in kzalloc()
        x86/mce/inject: Fix a wrong assignment of i_mce.status
      e53bc3ff
    • Linus Torvalds's avatar
      Merge tag 'x86-timers-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a92ad11f
      Linus Torvalds authored
      Pull x86 timer update from Ingo Molnar:
       "Set the X86_FEATURE_TSC_KNOWN_FREQ flag for Xen guests, to avoid
        recalibration"
      
      * tag 'x86-timers-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/xen/time: Set the X86_FEATURE_TSC_KNOWN_FREQ flag in xen_tsc_khz()
      a92ad11f
    • Linus Torvalds's avatar
      Merge tag 'x86-platform-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5183a617
      Linus Torvalds authored
      Pull x86 platform updates from Ingo Molnar:
       "The biggest change is the removal of SGI UV1 support, which allowed
        the removal of the legacy EFI old_mmap code as well.
      
        This removes quite a bunch of old code & quirks"
      
      * tag 'x86-platform-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/efi: Remove unused EFI_UV1_MEMMAP code
        x86/platform/uv: Remove uv bios and efi code related to EFI_UV1_MEMMAP
        x86/efi: Remove references to no-longer-used efi_have_uv1_memmap()
        x86/efi: Delete SGI UV1 detection.
        x86/platform/uv: Remove efi=old_map command line option
        x86/platform/uv: Remove vestigial mention of UV1 platform from bios header
        x86/platform/uv: Remove support for UV1 platform from uv
        x86/platform/uv: Remove support for uv1 platform from uv_hub
        x86/platform/uv: Remove support for UV1 platform from uv_bau
        x86/platform/uv: Remove support for UV1 platform from uv_mmrs
        x86/platform/uv: Remove support for UV1 platform from x2apic_uv_x
        x86/platform/uv: Remove support for UV1 platform from uv_tlb
        x86/platform/uv: Remove support for UV1 platform from uv_time
      5183a617
    • Linus Torvalds's avatar
      Merge tag 'x86-mm-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e96ec8cf
      Linus Torvalds authored
      Pull x86 mmm update from Ingo Molnar:
       "The biggest change is to not sync the vmalloc and ioremap ranges for
        x86-64 anymore"
      
      * tag 'x86-mm-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm/64: Make sync_global_pgds() static
        x86/mm/64: Do not sync vmalloc/ioremap mappings
        x86/mm: Pre-allocate P4D/PUD pages for vmalloc area
      e96ec8cf
    • Linus Torvalds's avatar
      Merge tag 'x86-misc-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c813e8c9
      Linus Torvalds authored
      Pull x86 MSR filtering from Ingo Molnar:
       "Filter MSR writes from user-space by default, and print a syslog entry
        if they happen outside the allowed set of MSRs, which is a single one
        for now, MSR_IA32_ENERGY_PERF_BIAS.
      
        The plan is to eventually disable MSR writes by default (they can
        still be enabled via allow_writes=on)"
      
      * tag 'x86-misc-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/msr: Filter MSR writes
      c813e8c9
    • Linus Torvalds's avatar
      Merge tag 'x86-microcode-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 69094c20
      Linus Torvalds authored
      Pull x86 microcode update from Ingo Molnar:
       "Remove the microcode loader's FW_LOADER coupling"
      
      * tag 'x86-microcode-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode: Do not select FW_LOADER
      69094c20
    • Linus Torvalds's avatar
      Merge tag 'x86-fpu-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a897743
      Linus Torvalds authored
      Pull x86 FPU selftest from Ingo Molnar:
       "Add the /sys/kernel/debug/selftest_helpers/test_fpu FPU self-test"
      
      * tag 'x86-fpu-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        selftests/fpu: Add an FPU selftest
      0a897743
    • Linus Torvalds's avatar
      Merge tag 'x86-cpu-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 335ad94c
      Linus Torvalds authored
      Pull x86 cpu updates from Ingo Molar:
      
       - prepare for Intel's new SERIALIZE instruction
      
       - enable split-lock debugging on more CPUs
      
       - add more Intel CPU models
      
       - optimize stack canary initialization a bit
      
       - simplify the Spectre logic a bit
      
      * tag 'x86-cpu-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Refactor sync_core() for readability
        x86/cpu: Relocate sync_core() to sync_core.h
        x86/cpufeatures: Add enumeration for SERIALIZE instruction
        x86/split_lock: Enable the split lock feature on Sapphire Rapids and Alder Lake CPUs
        x86/cpu: Add Lakefield, Alder Lake and Rocket Lake models to the to Intel CPU family
        x86/stackprotector: Pre-initialize canary for secondary CPUs
        x86/speculation: Merge one test in spectre_v2_user_select_mitigation()
      335ad94c
    • Linus Torvalds's avatar
      Merge tag 'x86-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4ee48103
      Linus Torvalds authored
      Pull x86 debug fixlets from Ingo Molnar:
       "Improve x86 debuggability: print registers with the same log level as
        the backtrace"
      
      * tag 'x86-core-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/dumpstack: Show registers dump with trace's log level
        x86/dumpstack: Add log_lvl to __show_regs()
        x86/dumpstack: Add log_lvl to show_iret_regs()
      4ee48103
  3. 03 Aug, 2020 4 commits
    • Linus Torvalds's avatar
      Merge tag 'x86-cleanups-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 37e88224
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Misc cleanups all around the place"
      
      * tag 'x86-cleanups-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ioperm: Initialize pointer bitmap with NULL rather than 0
        x86: uv: uv_hub.h: Delete duplicated word
        x86: cmpxchg_32.h: Delete duplicated word
        x86: bootparam.h: Delete duplicated word
        x86/mm: Remove the unused mk_kernel_pgd() #define
        x86/tsc: Remove unused "US_SCALE" and "NS_SCALE" leftover macros
        x86/ioapic: Remove unused "IOAPIC_AUTO" define
        x86/mm: Drop unused MAX_PHYSADDR_BITS
        x86/msr: Move the F15h MSRs where they belong
        x86/idt: Make idt_descr static
        initrd: Remove erroneous comment
        x86/mm/32: Fix -Wmissing prototypes warnings for init.c
        cpu/speculation: Add prototype for cpu_show_srbds()
        x86/mm: Fix -Wmissing-prototypes warnings for arch/x86/mm/init.c
        x86/asm: Unify __ASSEMBLY__ blocks
        x86/cpufeatures: Mark two free bits in word 3
        x86/msr: Lift AMD family 0x15 power-specific MSRs
      37e88224
    • Linus Torvalds's avatar
      Merge tag 'x86-build-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1ff9b20b
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
       "Misc changes: refresh defconfigs and simplify the boot image link
        stage"
      
      * tag 'x86-build-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/defconfigs: Refresh defconfig files
        x86/build: Move max-page-size option to LDFLAGS_vmlinux
        x86/defconfigs: Remove CONFIG_CRYPTO_AES_586 from i386_defconfig
      1ff9b20b
    • Linus Torvalds's avatar
      Merge tag 'x86-boot-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c0dfadfe
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
       "The main change in this cycle was to add support for ZSTD-compressed
        kernel and initrd images.
      
        ZSTD has a very fast decompressor, yet it compresses better than gzip"
      
      * tag 'x86-boot-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Documentation: dontdiff: Add zstd compressed files
        .gitignore: Add ZSTD-compressed files
        x86: Add support for ZSTD compressed kernel
        x86: Bump ZO_z_extra_bytes margin for zstd
        usr: Add support for zstd compressed initramfs
        init: Add support for zstd compressed kernel
        lib: Add zstd support to decompress
        lib: Prepare zstd for preboot environment, improve performance
      c0dfadfe
    • Linus Torvalds's avatar
      Merge tag 'x86-asm-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ba77c568
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
       "A couple of changes, concentrated into the percpu code, to enable
        Clang support on i386 kernels too"
      
      [ And cleans up the macros to generate percpu ops a lot too  - Linus ]
      
      * tag 'x86-asm-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/uaccess: Make __get_user_size() Clang compliant on 32-bit
        x86/percpu: Remove unused PER_CPU() macro
        x86/percpu: Clean up percpu_stable_op()
        x86/percpu: Clean up percpu_cmpxchg_op()
        x86/percpu: Clean up percpu_xchg_op()
        x86/percpu: Clean up percpu_add_return_op()
        x86/percpu: Remove "e" constraint from XADD
        x86/percpu: Clean up percpu_add_op()
        x86/percpu: Clean up percpu_from_op()
        x86/percpu: Clean up percpu_to_op()
        x86/percpu: Introduce size abstraction macros
      ba77c568