1. 24 May, 2022 37 commits
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 51518aa6
      Linus Torvalds authored
      Pull fsverity updates from Eric Biggers:
       "A couple small cleanups for fs/verity/"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fs-verity: Use struct_size() helper in enable_verity()
        fs-verity: remove unused parameter desc_size in fsverity_create_info()
      51518aa6
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · c1f4cfdb
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "Some cleanups for fs/crypto/:
      
         - Split up the misleadingly-named FS_CRYPTO_BLOCK_SIZE constant.
      
         - Consistently report the encryption implementation that is being
           used.
      
         - Add helper functions for the test_dummy_encryption mount option
           that work properly with the new mount API. ext4 and f2fs will use
           these"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fscrypt: add new helper functions for test_dummy_encryption
        fscrypt: factor out fscrypt_policy_to_key_spec()
        fscrypt: log when starting to use inline encryption
        fscrypt: split up FS_CRYPTO_BLOCK_SIZE
      c1f4cfdb
    • Linus Torvalds's avatar
      Merge tag 'random-5.19-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random · ac2ab990
      Linus Torvalds authored
      Pull random number generator updates from Jason Donenfeld:
       "These updates continue to refine the work began in 5.17 and 5.18 of
        modernizing the RNG's crypto and streamlining and documenting its
        code.
      
        New for 5.19, the updates aim to improve entropy collection methods
        and make some initial decisions regarding the "premature next" problem
        and our threat model. The cloc utility now reports that random.c is
        931 lines of code and 466 lines of comments, not that basic metrics
        like that mean all that much, but at the very least it tells you that
        this is very much a manageable driver now.
      
        Here's a summary of the various updates:
      
         - The random_get_entropy() function now always returns something at
           least minimally useful. This is the primary entropy source in most
           collectors, which in the best case expands to something like RDTSC,
           but prior to this change, in the worst case it would just return 0,
           contributing nothing. For 5.19, additional architectures are wired
           up, and architectures that are entirely missing a cycle counter now
           have a generic fallback path, which uses the highest resolution
           clock available from the timekeeping subsystem.
      
           Some of those clocks can actually be quite good, despite the CPU
           not having a cycle counter of its own, and going off-core for a
           stamp is generally thought to increase jitter, something positive
           from the perspective of entropy gathering. Done very early on in
           the development cycle, this has been sitting in next getting some
           testing for a while now and has relevant acks from the archs, so it
           should be pretty well tested and fine, but is nonetheless the thing
           I'll be keeping my eye on most closely.
      
         - Of particular note with the random_get_entropy() improvements is
           MIPS, which, on CPUs that lack the c0 count register, will now
           combine the high-speed but short-cycle c0 random register with the
           lower-speed but long-cycle generic fallback path.
      
         - With random_get_entropy() now always returning something useful,
           the interrupt handler now collects entropy in a consistent
           construction.
      
         - Rather than comparing two samples of random_get_entropy() for the
           jitter dance, the algorithm now tests many samples, and uses the
           amount of differing ones to determine whether or not jitter entropy
           is usable and how laborious it must be. The problem with comparing
           only two samples was that if the cycle counter was extremely slow,
           but just so happened to be on the cusp of a change, the slowness
           wouldn't be detected. Taking many samples fixes that to some
           degree.
      
           This, combined with the other improvements to random_get_entropy(),
           should make future unification of /dev/random and /dev/urandom
           maybe more possible. At the very least, were we to attempt it again
           today (we're not), it wouldn't break any of Guenter's test rigs
           that broke when we tried it with 5.18. So, not today, but perhaps
           down the road, that's something we can revisit.
      
         - We attempt to reseed the RNG immediately upon waking up from system
           suspend or hibernation, making use of the various timestamps about
           suspend time and such available, as well as the usual inputs such
           as RDRAND when available.
      
         - Batched randomness now falls back to ordinary randomness before the
           RNG is initialized. This provides more consistent guarantees to the
           types of random numbers being returned by the various accessors.
      
         - The "pre-init injection" code is now gone for good. I suspect you
           in particular will be happy to read that, as I recall you
           expressing your distaste for it a few months ago. Instead, to avoid
           a "premature first" issue, while still allowing for maximal amount
           of entropy availability during system boot, the first 128 bits of
           estimated entropy are used immediately as it arrives, with the next
           128 bits being buffered. And, as before, after the RNG has been
           fully initialized, it winds up reseeding anyway a few seconds later
           in most cases. This resulted in a pretty big simplification of the
           initialization code and let us remove various ad-hoc mechanisms
           like the ugly crng_pre_init_inject().
      
         - The RNG no longer pretends to handle the "premature next" security
           model, something that various academics and other RNG designs have
           tried to care about in the past. After an interesting mailing list
           thread, these issues are thought to be a) mainly academic and not
           practical at all, and b) actively harming the real security of the
           RNG by delaying new entropy additions after a potential compromise,
           making a potentially bad situation even worse. As well, in the
           first place, our RNG never even properly handled the premature next
           issue, so removing an incomplete solution to a fake problem was
           particularly nice.
      
           This allowed for numerous other simplifications in the code, which
           is a lot cleaner as a consequence. If you didn't see it before,
           https://lore.kernel.org/lkml/YmlMGx6+uigkGiZ0@zx2c4.com/ may be a
           thread worth skimming through.
      
         - While the interrupt handler received a separate code path years ago
           that avoids locks by using per-cpu data structures and a faster
           mixing algorithm, in order to reduce interrupt latency, input and
           disk events that are triggered in hardirq handlers were still
           hitting locks and more expensive algorithms. Those are now
           redirected to use the faster per-cpu data structures.
      
         - Rather than having the fake-crypto almost-siphash-based random32
           implementation be used right and left, and in many places where
           cryptographically secure randomness is desirable, the batched
           entropy code is now fast enough to replace that.
      
         - As usual, numerous code quality and documentation cleanups. For
           example, the initialization state machine now uses enum symbolic
           constants instead of just hard coding numbers everywhere.
      
         - Since the RNG initializes once, and then is always initialized
           thereafter, a pretty heavy amount of code used during that
           initialization is never used again. It is now completely cordoned
           off using static branches and it winds up in the .text.unlikely
           section so that it doesn't reduce cache compactness after the RNG
           is ready.
      
         - A variety of functions meant for waiting on the RNG to be
           initialized were only used by vsprintf, and in not a particularly
           optimal way. Replacing that usage with a more ordinary setup made
           it possible to remove those functions.
      
         - A cleanup of how we warn userspace about the use of uninitialized
           /dev/urandom and uninitialized get_random_bytes() usage.
           Interestingly, with the change you merged for 5.18 that attempts to
           use jitter (but does not block if it can't), the majority of users
           should never see those warnings for /dev/urandom at all now, and
           the one for in-kernel usage is mainly a debug thing.
      
         - The file_operations struct for /dev/[u]random now implements
           .read_iter and .write_iter instead of .read and .write, allowing it
           to also implement .splice_read and .splice_write, which makes
           splice(2) work again after it was broken here (and in many other
           places in the tree) during the set_fs() removal. This was a bit of
           a last minute arrival from Jens that hasn't had as much time to
           bake, so I'll be keeping my eye on this as well, but it seems
           fairly ordinary. Unfortunately, read_iter() is around 3% slower
           than read() in my tests, which I'm not thrilled about. But Jens and
           Al, spurred by this observation, seem to be making progress in
           removing the bottlenecks on the iter paths in the VFS layer in
           general, which should remove the performance gap for all drivers.
      
         - Assorted other bug fixes, cleanups, and optimizations.
      
         - A small SipHash cleanup"
      
      * tag 'random-5.19-rc1-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random: (49 commits)
        random: check for signals after page of pool writes
        random: wire up fops->splice_{read,write}_iter()
        random: convert to using fops->write_iter()
        random: convert to using fops->read_iter()
        random: unify batched entropy implementations
        random: move randomize_page() into mm where it belongs
        random: remove mostly unused async readiness notifier
        random: remove get_random_bytes_arch() and add rng_has_arch_random()
        random: move initialization functions out of hot pages
        random: make consistent use of buf and len
        random: use proper return types on get_random_{int,long}_wait()
        random: remove extern from functions in header
        random: use static branch for crng_ready()
        random: credit architectural init the exact amount
        random: handle latent entropy and command line from random_init()
        random: use proper jiffies comparison macro
        random: remove ratelimiting for in-kernel unseeded randomness
        random: move initialization out of reseeding hot path
        random: avoid initializing twice in credit race
        random: use symbolic constants for crng_init states
        ...
      ac2ab990
    • Daniel Thompson's avatar
      lockdown: also lock down previous kgdb use · eadb2f47
      Daniel Thompson authored
      KGDB and KDB allow read and write access to kernel memory, and thus
      should be restricted during lockdown.  An attacker with access to a
      serial port (for example, via a hypervisor console, which some cloud
      vendors provide over the network) could trigger the debugger so it is
      important that the debugger respect the lockdown mode when/if it is
      triggered.
      
      Fix this by integrating lockdown into kdb's existing permissions
      mechanism.  Unfortunately kgdb does not have any permissions mechanism
      (although it certainly could be added later) so, for now, kgdb is simply
      and brutally disabled by immediately exiting the gdb stub without taking
      any action.
      
      For lockdowns established early in the boot (e.g. the normal case) then
      this should be fine but on systems where kgdb has set breakpoints before
      the lockdown is enacted than "bad things" will happen.
      
      CVE: CVE-2022-21499
      Co-developed-by: default avatarStephen Brennan <stephen.s.brennan@oracle.com>
      Signed-off-by: default avatarStephen Brennan <stephen.s.brennan@oracle.com>
      Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
      Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eadb2f47
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6f3f04c1
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
      
       - Updates to scheduler metrics:
           - PELT fixes & enhancements
           - PSI fixes & enhancements
           - Refactor cpu_util_without()
      
       - Updates to instrumentation/debugging:
           - Remove sched_trace_*() helper functions - can be done via debug
             info
           - Fix double update_rq_clock() warnings
      
       - Introduce & use "preemption model accessors" to simplify some of the
         Kconfig complexity.
      
       - Make softirq handling RT-safe.
      
       - Misc smaller fixes & cleanups.
      
      * tag 'sched-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        topology: Remove unused cpu_cluster_mask()
        sched: Reverse sched_class layout
        sched/deadline: Remove superfluous rq clock update in push_dl_task()
        sched/core: Avoid obvious double update_rq_clock warning
        smp: Make softirq handling RT safe in flush_smp_call_function_queue()
        smp: Rename flush_smp_call_function_from_idle()
        sched: Fix missing prototype warnings
        sched/fair: Remove cfs_rq_tg_path()
        sched/fair: Remove sched_trace_*() helper functions
        sched/fair: Refactor cpu_util_without()
        sched/fair: Revise comment about lb decision matrix
        sched/psi: report zeroes for CPU full at the system level
        sched/fair: Delete useless condition in tg_unthrottle_up()
        sched/fair: Fix cfs_rq_clock_pelt() for throttled cfs_rq
        sched/fair: Move calculate of avg_load to a better location
        mailmap: Update my email address to @redhat.com
        MAINTAINERS: Add myself as scheduler topology reviewer
        psi: Fix trigger being fired unexpectedly at initial
        ftrace: Use preemption model accessors for trace header printout
        kcsan: Use preemption model accessors
      6f3f04c1
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cfeb2522
      Linus Torvalds authored
      Pull perf events updates from Ingo Molnar:
       "Platform PMU changes:
      
         - x86/intel:
            - Add new Intel Alder Lake and Raptor Lake support
      
         - x86/amd:
            - AMD Zen4 IBS extensions support
            - Add AMD PerfMonV2 support
            - Add AMD Fam19h Branch Sampling support
      
        Generic changes:
      
         - signal: Deliver SIGTRAP on perf event asynchronously if blocked
      
           Perf instrumentation can be driven via SIGTRAP, but this causes a
           problem when SIGTRAP is blocked by a task & terminate the task.
      
           Allow user-space to request these signals asynchronously (after
           they get unblocked) & also give the information to the signal
           handler when this happens:
      
             "To give user space the ability to clearly distinguish
              synchronous from asynchronous signals, introduce
              siginfo_t::si_perf_flags and TRAP_PERF_FLAG_ASYNC (opted for
              flags in case more binary information is required in future).
      
              The resolution to the problem is then to (a) no longer force the
              signal (avoiding the terminations), but (b) tell user space via
              si_perf_flags if the signal was synchronous or not, so that such
              signals can be handled differently (e.g. let user space decide
              to ignore or consider the data imprecise). "
      
         - Unify/standardize the /sys/devices/cpu/events/* output format.
      
         - Misc fixes & cleanups"
      
      * tag 'perf-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        perf/x86/amd/core: Fix reloading events for SVM
        perf/x86/amd: Run AMD BRS code only on supported hw
        perf/x86/amd: Fix AMD BRS period adjustment
        perf/x86/amd: Remove unused variable 'hwc'
        perf/ibs: Fix comment
        perf/amd/ibs: Advertise zen4_ibs_extensions as pmu capability attribute
        perf/amd/ibs: Add support for L3 miss filtering
        perf/amd/ibs: Use ->is_visible callback for dynamic attributes
        perf/amd/ibs: Cascade pmu init functions' return value
        perf/x86/uncore: Add new Alder Lake and Raptor Lake support
        perf/x86/uncore: Clean up uncore_pci_ids[]
        perf/x86/cstate: Add new Alder Lake and Raptor Lake support
        perf/x86/msr: Add new Alder Lake and Raptor Lake support
        perf/x86: Add new Alder Lake and Raptor Lake support
        perf/amd/ibs: Use interrupt regs ip for stack unwinding
        perf/x86/amd/core: Add PerfMonV2 overflow handling
        perf/x86/amd/core: Add PerfMonV2 counter control
        perf/x86/amd/core: Detect available counters
        perf/x86/amd/core: Detect PerfMonV2 support
        x86/msr: Add PerfCntrGlobal* registers
        ...
      cfeb2522
    • Linus Torvalds's avatar
      Merge tag 'objtool-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 22922dea
      Linus Torvalds authored
      Pull objtool updates from Ingo Molnar:
      
       - Comprehensive interface overhaul:
         =================================
      
         Objtool's interface has some issues:
      
           - Several features are done unconditionally, without any way to
             turn them off. Some of them might be surprising. This makes
             objtool tricky to use, and prevents porting individual features
             to other arches.
      
           - The config dependencies are too coarse-grained. Objtool
             enablement is tied to CONFIG_STACK_VALIDATION, but it has several
             other features independent of that.
      
           - The objtool subcmds ("check" and "orc") are clumsy: "check" is
             really a subset of "orc", so it has all the same options.
      
             The subcmd model has never really worked for objtool, as it only
             has a single purpose: "do some combination of things on an object
             file".
      
           - The '--lto' and '--vmlinux' options are nonsensical and have
             surprising behavior.
      
         Overhaul the interface:
      
            - get rid of subcmds
      
            - make all features individually selectable
      
            - remove and/or clarify confusing/obsolete options
      
            - update the documentation
      
            - fix some bugs found along the way
      
       - Fix x32 regression
      
       - Fix Kbuild cleanup bugs
      
       - Add scripts/objdump-func helper script to disassemble a single
         function from an object file.
      
       - Rewrite scripts/faddr2line to be section-aware, by basing it on
         'readelf', moving it away from 'nm', which doesn't handle multiple
         sections well, which can result in decoding failure.
      
       - Rewrite & fix symbol handling - which had a number of bugs wrt.
         object files that don't have global symbols - which is rare but
         possible. Also fix a bunch of symbol handling bugs found along the
         way.
      
      * tag 'objtool-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)
        objtool: Fix objtool regression on x32 systems
        objtool: Fix symbol creation
        scripts/faddr2line: Fix overlapping text section failures
        scripts: Create objdump-func helper script
        objtool: Remove libsubcmd.a when make clean
        objtool: Remove inat-tables.c when make clean
        objtool: Update documentation
        objtool: Remove --lto and --vmlinux in favor of --link
        objtool: Add HAVE_NOINSTR_VALIDATION
        objtool: Rename "VMLINUX_VALIDATION" -> "NOINSTR_VALIDATION"
        objtool: Make noinstr hacks optional
        objtool: Make jump label hack optional
        objtool: Make static call annotation optional
        objtool: Make stack validation frame-pointer-specific
        objtool: Add CONFIG_OBJTOOL
        objtool: Extricate sls from stack validation
        objtool: Rework ibt and extricate from stack validation
        objtool: Make stack validation optional
        objtool: Add option to print section addresses
        objtool: Don't print parentheses in function addresses
        ...
      22922dea
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2319be13
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
      
       - rwsem cleanups & optimizations/fixes:
          - Conditionally wake waiters in reader/writer slowpaths
          - Always try to wake waiters in out_nolock path
      
       - Add try_cmpxchg64() implementation, with arch optimizations - and use
         it to micro-optimize sched_clock_{local,remote}()
      
       - Various force-inlining fixes to address objdump instrumentation-check
         warnings
      
       - Add lock contention tracepoints:
      
          lock:contention_begin
          lock:contention_end
      
       - Misc smaller fixes & cleanups
      
      * tag 'locking-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/clock: Use try_cmpxchg64 in sched_clock_{local,remote}
        locking/atomic/x86: Introduce arch_try_cmpxchg64
        locking/atomic: Add generic try_cmpxchg64 support
        futex: Remove a PREEMPT_RT_FULL reference.
        locking/qrwlock: Change "queue rwlock" to "queued rwlock"
        lockdep: Delete local_irq_enable_in_hardirq()
        locking/mutex: Make contention tracepoints more consistent wrt adaptive spinning
        locking: Apply contention tracepoints in the slow path
        locking: Add lock contention tracepoints
        locking/rwsem: Always try to wake waiters in out_nolock path
        locking/rwsem: Conditionally wake waiters in reader/writer slowpaths
        locking/rwsem: No need to check for handoff bit if wait queue empty
        lockdep: Fix -Wunused-parameter for _THIS_IP_
        x86/mm: Force-inline __phys_addr_nodebug()
        x86/kvm/svm: Force-inline GHCB accessors
        task_stack, x86/cea: Force-inline stack helpers
      2319be13
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 143a6252
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
      
       - Initial support for the ARMv9 Scalable Matrix Extension (SME).
      
         SME takes the approach used for vectors in SVE and extends this to
         provide architectural support for matrix operations. No KVM support
         yet, SME is disabled in guests.
      
       - Support for crashkernel reservations above ZONE_DMA via the
         'crashkernel=X,high' command line option.
      
       - btrfs search_ioctl() fix for live-lock with sub-page faults.
      
       - arm64 perf updates: support for the Hisilicon "CPA" PMU for
         monitoring coherent I/O traffic, support for Arm's CMN-650 and
         CMN-700 interconnect PMUs, minor driver fixes, kerneldoc cleanup.
      
       - Kselftest updates for SME, BTI, MTE.
      
       - Automatic generation of the system register macros from a 'sysreg'
         file describing the register bitfields.
      
       - Update the type of the function argument holding the ESR_ELx register
         value to unsigned long to match the architecture register size
         (originally 32-bit but extended since ARMv8.0).
      
       - stacktrace cleanups.
      
       - ftrace cleanups.
      
       - Miscellaneous updates, most notably: arm64-specific huge_ptep_get(),
         avoid executable mappings in kexec/hibernate code, drop TLB flushing
         from get_clear_flush() (and rename it to get_clear_contig()),
         ARCH_NR_GPIO bumped to 2048 for ARCH_APPLE.
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (145 commits)
        arm64/sysreg: Generate definitions for FAR_ELx
        arm64/sysreg: Generate definitions for DACR32_EL2
        arm64/sysreg: Generate definitions for CSSELR_EL1
        arm64/sysreg: Generate definitions for CPACR_ELx
        arm64/sysreg: Generate definitions for CONTEXTIDR_ELx
        arm64/sysreg: Generate definitions for CLIDR_EL1
        arm64/sve: Move sve_free() into SVE code section
        arm64: Kconfig.platforms: Add comments
        arm64: Kconfig: Fix indentation and add comments
        arm64: mm: avoid writable executable mappings in kexec/hibernate code
        arm64: lds: move special code sections out of kernel exec segment
        arm64/hugetlb: Implement arm64 specific huge_ptep_get()
        arm64/hugetlb: Use ptep_get() to get the pte value of a huge page
        arm64: kdump: Do not allocate crash low memory if not needed
        arm64/sve: Generate ZCR definitions
        arm64/sme: Generate defintions for SVCR
        arm64/sme: Generate SMPRI_EL1 definitions
        arm64/sme: Automatically generate SMPRIMAP_EL2 definitions
        arm64/sme: Automatically generate SMIDR_EL1 defines
        arm64/sme: Automatically generate defines for SMCR
        ...
      143a6252
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · d6edf951
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - amba bus updates
      
       - simplify ldr_this_cpu assembler macro for uniprocessor builds
      
       - avoid explicit assembler literal loads
      
       - more spectre-bhb improvements
      
       - add Cortex-A9 Errata 764319 workaround
      
       - add all unwind tables for modules
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 9204/2: module: Add all unwind tables when load module
        ARM: 9206/1: A9: Add ARM ERRATA 764319 workaround (Updated)
        ARM: 9201/1: spectre-bhb: rely on linker to emit cross-section literal loads
        ARM: 9200/1: spectre-bhb: avoid cross-subsection jump using a numbered label
        ARM: 9199/1: spectre-bhb: use local DSB and elide ISB in loop8 sequence
        ARM: 9198/1: spectre-bhb: simplify BPIALL vector macro
        ARM: 9195/1: entry: avoid explicit literal loads
        ARM: 9194/1: assembler: simplify ldr_this_cpu for !SMP builds
        ARM: 9192/1: amba: fix memory leak in amba_device_try_add()
        ARM: 9193/1: amba: Add amba_read_periphid() helper
      d6edf951
    • Linus Torvalds's avatar
      Merge tag 's390-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 95fbef17
      Linus Torvalds authored
      Pull s390 updates from Heiko Carstens:
      
       - Make use of the IBM z16 processor activity instrumentation facility
         to count cryptography operations: add a new PMU device driver so that
         perf can make use of this.
      
       - Add new IBM z16 extended counter set to cpumf support.
      
       - Add vdso randomization support.
      
       - Add missing KCSAN instrumentation to barriers and spinlocks, which
         should make s390's KCSAN support complete.
      
       - Add support for IPL-complete-control facility: notify the hypervisor
         that kexec finished work and the kernel starts.
      
       - Improve error logging for PCI.
      
       - Various small changes to workaround llvm's integrated assembler
         limitations, and one bug, to make it finally possible to compile the
         kernel with llvm's integrated assembler. This also requires to raise
         the minimum clang version to 14.0.0.
      
       - Various other small enhancements, bug fixes, and cleanups all over
         the place.
      
      * tag 's390-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (48 commits)
        s390/head: get rid of 31 bit leftovers
        scripts/min-tool-version.sh: raise minimum clang version to 14.0.0 for s390
        s390/boot: do not emit debug info for assembly with llvm's IAS
        s390/boot: workaround llvm IAS bug
        s390/purgatory: workaround llvm's IAS limitations
        s390/entry: workaround llvm's IAS limitations
        s390/alternatives: remove padding generation code
        s390/alternatives: provide identical sized orginal/alternative sequences
        s390/cpumf: add new extended counter set for IBM z16
        s390/preempt: disable __preempt_count_add() optimization for PROFILE_ALL_BRANCHES
        s390/stp: clock_delta should be signed
        s390/stp: fix todoff size
        s390/pai: add support for cryptography counters
        entry: Rename arch_check_user_regs() to arch_enter_from_user_mode()
        s390/compat: cleanup compat_linux.h header file
        s390/entry: remove broken and not needed code
        s390/boot: convert parmarea to C
        s390/boot: convert initial lowcore to C
        s390/ptrace: move short psw definitions to ptrace header file
        s390/head: initialize all new psws
        ...
      95fbef17
    • Linus Torvalds's avatar
      Merge tag 'csky-for-linus-5.19-rc1' of https://github.com/c-sky/csky-linux · 67c642e0
      Linus Torvalds authored
      Pull arch/csky updates from Guo Ren:
      
       - Three atomic optimizations
      
       - memcpy/memcpy_io optimization
      
       - Some coding conventions for Kbuild, removing warnings
      
      * tag 'csky-for-linus-5.19-rc1' of https://github.com/c-sky/csky-linux:
        csky: Move $(core-y) into arch/csky/Kbuild
        csky: Remove unused core-y for dts
        csky: Remove unused $(dtb-y) from boot/Makefile
        csky: atomic: Add conditional atomic operations' optimization
        csky: atomic: Add custom atomic.h implementation
        csky: atomic: Optimize cmpxchg with acquire & release
        csky: optimize memcpy_{from,to}io() and memset_io()
        csky: Add C based string functions
        csky: Fix versioncheck warnings
        csky: patch_text: Fixup last cpu should be master
        csky: fix typos in comments
      67c642e0
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.19-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · fdd8f658
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
        - Introduce virtual m68k machine based on Android Goldfish devices
      
        - defconfig updates
      
        - Minor fixes and improvements
      
      * tag 'm68k-for-v5.19-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: atari: Make Atari ROM port I/O write macros return void
        m68k: math-emu: Fix dependencies of math emulation support
        m68k: math-emu: Fix typos in comments
        m68k: Wire up syscall_trace_enter/leave for m68k
        m68k: defconfig: Update defconfigs for v5.18-rc1
        m68k: Introduce a virtual m68k machine
        clocksource/drivers: Add a goldfish-timer clocksource
        rtc: goldfish: Use gf_ioread32()/gf_iowrite32()
        tty: goldfish: Introduce gf_ioread32()/gf_iowrite32()
      fdd8f658
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20220523' of https://github.com/jcmvbkbc/linux-xtensa · 17a05c8f
      Linus Torvalds authored
      Pull xtensa architecture updates from Max Filippov:
      
       - support coprocessors on SMP
      
       - support KCSAN
      
       - support handling protection faults in noMMU configurations
      
       - support using coprocessors in the kernel mode
      
       - support hibernation
      
       - enable context tracking
      
       - enable HAVE_VIRT_CPU_ACCOUNTING_GEN
      
       - support division by 0 exception on cores without HW division option
      
       - clean up locking in the ISS network driver
      
       - clean up kernel entry assemly code
      
       - various minor fixes
      
      * tag 'xtensa-20220523' of https://github.com/jcmvbkbc/linux-xtensa: (36 commits)
        xtensa: Return true/false (not 1/0) from bool function
        xtensa: improve call0 ABI probing
        xtensa: support artificial division by 0 exception
        xtensa: add trap handler for division by zero
        xtensa/simdisk: fix proc_read_simdisk()
        xtensa: no need to initialise statics to 0
        xtensa: clean up labels in the kernel entry assembly
        xtensa: don't leave invalid TLB entry in fast_store_prohibited
        xtensa: fix declaration of _SecondaryResetVector_text_*
        irqchip: irq-xtensa-mx: fix initial IRQ affinity
        xtensa: enable ARCH_HAS_DEBUG_VM_PGTABLE
        xtensa: add hibernation support
        xtensa: support coprocessors on SMP
        xtensa: get rid of stack frame in coprocessor_flush
        xtensa: merge SAVE_CP_REGS_TAB and LOAD_CP_REGS_TAB
        xtensa: add xtensa_xsr macro
        xtensa: handle coprocessor exceptions in kernel mode
        xtensa: use callx0 opcode in fast_coprocessor
        xtensa: clean up excsave1 initialization
        xtensa: clean up declarations in coprocessor.h
        ...
      17a05c8f
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.19-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · d6130604
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - decouple the PV interface from kernel internals in the Xen
         scsifront/scsiback pv drivers
      
       - harden the Xen scsifront PV driver against a malicious backend driver
      
       - simplify Xen PV frontend driver ring page setup
      
       - support Xen setups with multiple domains created at boot time to
         tolerate Xenstore coming up late
      
       - two small cleanup patches
      
      * tag 'for-linus-5.19-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: (29 commits)
        xen: add support for initializing xenstore later as HVM domain
        xen: sync xs_wire.h header with upstream xen
        x86: xen: remove STACK_FRAME_NON_STANDARD from xen_cpuid
        xen-blk{back,front}: Update contact points for buffer_squeeze_duration_ms and feature_persistent
        xen/xenbus: eliminate xenbus_grant_ring()
        xen/sndfront: use xenbus_setup_ring() and xenbus_teardown_ring()
        xen/usbfront: use xenbus_setup_ring() and xenbus_teardown_ring()
        xen/scsifront: use xenbus_setup_ring() and xenbus_teardown_ring()
        xen/pcifront: use xenbus_setup_ring() and xenbus_teardown_ring()
        xen/drmfront: use xenbus_setup_ring() and xenbus_teardown_ring()
        xen/tpmfront: use xenbus_setup_ring() and xenbus_teardown_ring()
        xen/netfront: use xenbus_setup_ring() and xenbus_teardown_ring()
        xen/blkfront: use xenbus_setup_ring() and xenbus_teardown_ring()
        xen/xenbus: add xenbus_setup_ring() service function
        xen: update ring.h
        xen/shbuf: switch xen-front-pgdir-shbuf to use INVALID_GRANT_REF
        xen/dmabuf: switch gntdev-dmabuf to use INVALID_GRANT_REF
        xen/sound: switch xen_snd_front to use INVALID_GRANT_REF
        xen/drm: switch xen_drm_front to use INVALID_GRANT_REF
        xen/usb: switch xen-hcd to use INVALID_GRANT_REF
        ...
      d6130604
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.19-1' of... · 8443516d
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver updates from Hans de Goede:
       "This includes some small changes to kernel/stop_machine.c and arch/x86
        which are deps of the new Intel IFS support.
      
        Highlights:
      
         - New drivers:
             - Intel "In Field Scan" (IFS) support
             - Winmate FM07/FM07P buttons
             - Mellanox SN2201 support
      
         -  AMD PMC driver enhancements
      
         -  Lots of various other small fixes and hardware-id additions"
      
      * tag 'platform-drivers-x86-v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86: (54 commits)
        platform/x86/intel/ifs: Add CPU_SUP_INTEL dependency
        platform/x86: intel_cht_int33fe: Set driver data
        platform/x86: intel-hid: fix _DSM function index handling
        platform/x86: toshiba_acpi: use kobj_to_dev()
        platform/x86: samsung-laptop: use kobj_to_dev()
        platform/x86: gigabyte-wmi: Add support for Z490 AORUS ELITE AC and X570 AORUS ELITE WIFI
        tools/power/x86/intel-speed-select: Fix warning for perf_cap.cpu
        tools/power/x86/intel-speed-select: Display error on turbo mode disabled
        Documentation: In-Field Scan
        platform/x86/intel/ifs: add ABI documentation for IFS
        trace: platform/x86/intel/ifs: Add trace point to track Intel IFS operations
        platform/x86/intel/ifs: Add IFS sysfs interface
        platform/x86/intel/ifs: Add scan test support
        platform/x86/intel/ifs: Authenticate and copy to secured memory
        platform/x86/intel/ifs: Check IFS Image sanity
        platform/x86/intel/ifs: Read IFS firmware image
        platform/x86/intel/ifs: Add stub driver for In-Field Scan
        stop_machine: Add stop_core_cpuslocked() for per-core operations
        x86/msr-index: Define INTEGRITY_CAPABILITIES MSR
        x86/microcode/intel: Expose collect_cpu_info_early() for IFS
        ...
      8443516d
    • Linus Torvalds's avatar
      Merge tag 'x86_sgx_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · cfe1cb01
      Linus Torvalds authored
      Pull x86 SGX updates from Dave Hansen:
       "A set of patches to prevent crashes in SGX enclaves under heavy memory
        pressure:
      
        SGX uses normal RAM allocated from special shmem files as backing
        storage when it runs out of SGX memory (EPC). The code was overly
        aggressive when freeing shmem pages and was inadvertently freeing
        perfectly good data. This resulted in failures in the SGX instructions
        used to swap data back into SGX memory.
      
        This turned out to be really hard to trigger in mainline. It was
        originally encountered testing the out-of-tree "SGX2" patches, but
        later reproduced on mainline.
      
        Fix the data loss by being more careful about truncating pages out of
        the backing storage and more judiciously setting pages dirty"
      
      * tag 'x86_sgx_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sgx: Ensure no data in PCMD page after truncate
        x86/sgx: Fix race between reclaimer and page fault handler
        x86/sgx: Obtain backing storage page with enclave mutex held
        x86/sgx: Mark PCMD page as dirty when modifying contents
        x86/sgx: Disconnect backing page references from dirty status
      cfe1cb01
    • Linus Torvalds's avatar
      Merge tag 'x86_vdso_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d6ecaa00
      Linus Torvalds authored
      Pull x86 vdso update from Borislav Petkov:
      
       - Get rid of CONFIG_LEGACY_VSYSCALL_EMULATE as nothing should be using
         it anymore
      
      * tag 'x86_vdso_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vsyscall: Remove CONFIG_LEGACY_VSYSCALL_EMULATE
      d6ecaa00
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 88699f8f
      Linus Torvalds authored
      Pull x86 microcode loader update from Borislav Petkov:
      
       - Make CPU vendor dependency explicit against random config build
         failures
      
      * tag 'x86_microcode_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode: Add explicit CPU vendor dependency
      88699f8f
    • Linus Torvalds's avatar
      Merge tag 'x86_misc_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · abc8babe
      Linus Torvalds authored
      Pull misc x86 updates from Borislav Petkov:
       "A variety of fixes which don't fit any other tip bucket:
      
         - Remove unnecessary function export
      
         - Correct asm constraint
      
         - Fix __setup handlers retval"
      
      * tag 'x86_misc_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Cleanup the control_va_addr_alignment() __setup handler
        x86: Fix return value of __setup handlers
        x86/delay: Fix the wrong asm constraint in delay_loop()
        x86/amd_nb: Unexport amd_cache_northbridges()
      abc8babe
    • Linus Torvalds's avatar
      Merge tag 'x86_splitlock_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3e2cbc01
      Linus Torvalds authored
      Pull x86 splitlock updates from Borislav Petkov:
      
       - Add Raptor Lake to the set of CPU models which support splitlock
      
       - Make life miserable for apps using split locks by slowing them down
         considerably while the rest of the system remains responsive. The
         hope is it will hurt more and people will really fix their misaligned
         locks apps. As a result, free a TIF bit.
      
      * tag 'x86_splitlock_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/split_lock: Enable the split lock feature on Raptor Lake
        x86/split-lock: Remove unused TIF_SLD bit
        x86/split_lock: Make life miserable for split lockers
      3e2cbc01
    • Linus Torvalds's avatar
      Merge tag 'x86_apic_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 91665420
      Linus Torvalds authored
      Pull x86 APIC updates from Borislav Petkov:
      
       - Always do default APIC routing setup so that cpumasks are properly
         allocated and are present when later accessed ("nosmp" and x2APIC)
      
       - Clarify the bit overlap between an old APIC and a modern, integrated
         one
      
      * tag 'x86_apic_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic: Do apic driver probe for "nosmp" use case
        x86/apic: Clarify i82489DX bit overlap in APIC_LVT0
      91665420
    • Linus Torvalds's avatar
      Merge tag 'x86_kdump_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e3228a86
      Linus Torvalds authored
      Pull x86 kdump fixlet from Borislav Petkov:
      
       - A single debug message fix
      
      * tag 'x86_kdump_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/crash: Fix minor typo/bug in debug message
      e3228a86
    • Linus Torvalds's avatar
      Merge tag 'x86_platform_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1abcb10d
      Linus Torvalds authored
      Pull x86 platform updates from Borislav Petkov:
      
       - A couple of changes enabling SGI UV5 support
      
      * tag 'x86_platform_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/uv: Log gap hole end size
        x86/platform/uv: Update TSC sync state for UV5
        x86/platform/uv: Update NMI Handler for UV5
      1abcb10d
    • Linus Torvalds's avatar
      Merge tag 'x86_mm_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c415b53a
      Linus Torvalds authored
      Pull x86 mm fixlet from Borislav Petkov:
      
       - A sparse address space annotation fix
      
      * tag 'x86_mm_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fault: Cast an argument to the proper address space in prefetch()
      c415b53a
    • Linus Torvalds's avatar
      Merge tag 'x86_fpu_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e36ae229
      Linus Torvalds authored
      Pull x86 fpu updates from Borislav Petkov:
      
       - Add support for XSAVEC - the Compacted XSTATE saving variant - and
         thus allow for guests to use this compacted XSTATE variant when the
         hypervisor exports that support
      
       - A variable shadowing cleanup
      
      * tag 'x86_fpu_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu: Cleanup variable shadowing
        x86/fpu/xsave: Support XSAVEC in the kernel
      e36ae229
    • Linus Torvalds's avatar
      Merge tag 'x86_core_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · de8ac817
      Linus Torvalds authored
      Pull core x86 updates from Borislav Petkov:
      
       - Remove all the code around GS switching on 32-bit now that it is not
         needed anymore
      
       - Other misc improvements
      
      * tag 'x86_core_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        bug: Use normal relative pointers in 'struct bug_entry'
        x86/nmi: Make register_nmi_handler() more robust
        x86/asm: Merge load_gs_index()
        x86/32: Remove lazy GS macros
        ELF: Remove elf_core_copy_kernel_regs()
        x86/32: Simplify ELF_CORE_COPY_REGS
      de8ac817
    • Linus Torvalds's avatar
      Merge tag 'x86_cleanups_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a13dc4d4
      Linus Torvalds authored
      Pull x86 cleanups from Borislav Petkov:
      
       - Serious sanitization and cleanup of the whole APERF/MPERF and
         frequency invariance code along with removing the need for
         unnecessary IPIs
      
       - Finally remove a.out support
      
       - The usual trivial cleanups and fixes all over x86
      
      * tag 'x86_cleanups_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
        x86: Remove empty files
        x86/speculation: Add missing srbds=off to the mitigations= help text
        x86/prctl: Remove pointless task argument
        x86/aperfperf: Make it correct on 32bit and UP kernels
        x86/aperfmperf: Integrate the fallback code from show_cpuinfo()
        x86/aperfmperf: Replace arch_freq_get_on_cpu()
        x86/aperfmperf: Replace aperfmperf_get_khz()
        x86/aperfmperf: Store aperf/mperf data for cpu frequency reads
        x86/aperfmperf: Make parts of the frequency invariance code unconditional
        x86/aperfmperf: Restructure arch_scale_freq_tick()
        x86/aperfmperf: Put frequency invariance aperf/mperf data into a struct
        x86/aperfmperf: Untangle Intel and AMD frequency invariance init
        x86/aperfmperf: Separate AP/BP frequency invariance init
        x86/smp: Move APERF/MPERF code where it belongs
        x86/aperfmperf: Dont wake idle CPUs in arch_freq_get_on_cpu()
        x86/process: Fix kernel-doc warning due to a changed function name
        x86: Remove a.out support
        x86/mm: Replace nodes_weight() with nodes_empty() where appropriate
        x86: Replace cpumask_weight() with cpumask_empty() where appropriate
        x86/pkeys: Remove __arch_set_user_pkey_access() declaration
        ...
      a13dc4d4
    • Linus Torvalds's avatar
      Merge tag 'x86_build_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1de564b8
      Linus Torvalds authored
      Pull x86 build updates from Borislav Petkov:
      
       - Add a "make x86_debug.config" target which enables a bunch of useful
         config debug options when trying to debug an issue
      
       - A gcc-12 build warnings fix
      
      * tag 'x86_build_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: Wrap literal addresses in absolute_pointer()
        x86/configs: Add x86 debugging Kconfig fragment plus docs
      1de564b8
    • Linus Torvalds's avatar
      Merge tag 'x86_asm_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 42b682a3
      Linus Torvalds authored
      Pull x86 asm updates from Borislav Petkov:
      
       - A bunch of changes towards streamlining low level asm helpers'
         calling conventions so that former can be converted to C eventually
      
       - Simplify PUSH_AND_CLEAR_REGS so that it can be used at the system
         call entry paths instead of having opencoded, slightly different
         variants of it everywhere
      
       - Misc other fixes
      
      * tag 'x86_asm_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/entry: Fix register corruption in compat syscall
        objtool: Fix STACK_FRAME_NON_STANDARD reloc type
        linkage: Fix issue with missing symbol size
        x86/entry: Remove skip_r11rcx
        x86/entry: Use PUSH_AND_CLEAR_REGS for compat
        x86/entry: Simplify entry_INT80_compat()
        x86/mm: Simplify RESERVE_BRK()
        x86/entry: Convert SWAPGS to swapgs and remove the definition of SWAPGS
        x86/entry: Don't call error_entry() for XENPV
        x86/entry: Move CLD to the start of the idtentry macro
        x86/entry: Move PUSH_AND_CLEAR_REGS out of error_entry()
        x86/entry: Switch the stack after error_entry() returns
        x86/traps: Use pt_regs directly in fixup_bad_iret()
      42b682a3
    • Linus Torvalds's avatar
      Merge tag 'x86_cpu_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c5a3d3c0
      Linus Torvalds authored
      Pull x86 CPU feature updates from Borislav Petkov:
      
       - Remove a bunch of chicken bit options to turn off CPU features which
         are not really needed anymore
      
       - Misc fixes and cleanups
      
      * tag 'x86_cpu_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/speculation: Add missing prototype for unpriv_ebpf_notify()
        x86/pm: Fix false positive kmemleak report in msr_build_context()
        x86/speculation/srbds: Do not try to turn mitigation off when not supported
        x86/cpu: Remove "noclflush"
        x86/cpu: Remove "noexec"
        x86/cpu: Remove "nosmep"
        x86/cpu: Remove CONFIG_X86_SMAP and "nosmap"
        x86/cpu: Remove "nosep"
        x86/cpu: Allow feature bit names from /proc/cpuinfo in clearcpuid=
      c5a3d3c0
    • Linus Torvalds's avatar
      Merge tag 'x86_tdx_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3a755ebc
      Linus Torvalds authored
      Pull Intel TDX support from Borislav Petkov:
       "Intel Trust Domain Extensions (TDX) support.
      
        This is the Intel version of a confidential computing solution called
        Trust Domain Extensions (TDX). This series adds support to run the
        kernel as part of a TDX guest. It provides similar guest protections
        to AMD's SEV-SNP like guest memory and register state encryption,
        memory integrity protection and a lot more.
      
        Design-wise, it differs from AMD's solution considerably: it uses a
        software module which runs in a special CPU mode called (Secure
        Arbitration Mode) SEAM. As the name suggests, this module serves as
        sort of an arbiter which the confidential guest calls for services it
        needs during its lifetime.
      
        Just like AMD's SNP set, this series reworks and streamlines certain
        parts of x86 arch code so that this feature can be properly
        accomodated"
      
      * tag 'x86_tdx_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits)
        x86/tdx: Fix RETs in TDX asm
        x86/tdx: Annotate a noreturn function
        x86/mm: Fix spacing within memory encryption features message
        x86/kaslr: Fix build warning in KASLR code in boot stub
        Documentation/x86: Document TDX kernel architecture
        ACPICA: Avoid cache flush inside virtual machines
        x86/tdx/ioapic: Add shared bit for IOAPIC base address
        x86/mm: Make DMA memory shared for TD guest
        x86/mm/cpa: Add support for TDX shared memory
        x86/tdx: Make pages shared in ioremap()
        x86/topology: Disable CPU online/offline control for TDX guests
        x86/boot: Avoid #VE during boot for TDX platforms
        x86/boot: Set CR0.NE early and keep it set during the boot
        x86/acpi/x86/boot: Add multiprocessor wake-up support
        x86/boot: Add a trampoline for booting APs via firmware handoff
        x86/tdx: Wire up KVM hypercalls
        x86/tdx: Port I/O: Add early boot support
        x86/tdx: Port I/O: Add runtime hypercalls
        x86/boot: Port I/O: Add decompression-time support for TDX
        x86/boot: Port I/O: Allow to hook up alternative helpers
        ...
      3a755ebc
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5b828263
      Linus Torvalds authored
      Pull x86 RAS updates from Borislav Petkov:
      
       - Simplification of the AMD MCE error severity grading logic along with
         supplying critical panic MCEs with accompanying error messages for
         more human-friendly diagnostics.
      
       - Misc fixes
      
      * tag 'ras_core_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Add messages for panic errors in AMD's MCE grading
        x86/mce: Simplify AMD severity grading logic
        x86/MCE/AMD: Fix memory leak when threshold_create_bank() fails
        x86/mce: Avoid unnecessary padding in struct mce_bank
      5b828263
    • Linus Torvalds's avatar
      Merge tag 'x86_sev_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · eb39e37d
      Linus Torvalds authored
      Pull AMD SEV-SNP support from Borislav Petkov:
       "The third AMD confidential computing feature called Secure Nested
        Paging.
      
        Add to confidential guests the necessary memory integrity protection
        against malicious hypervisor-based attacks like data replay, memory
        remapping and others, thus achieving a stronger isolation from the
        hypervisor.
      
        At the core of the functionality is a new structure called a reverse
        map table (RMP) with which the guest has a say in which pages get
        assigned to it and gets notified when a page which it owns, gets
        accessed/modified under the covers so that the guest can take an
        appropriate action.
      
        In addition, add support for the whole machinery needed to launch a
        SNP guest, details of which is properly explained in each patch.
      
        And last but not least, the series refactors and improves parts of the
        previous SEV support so that the new code is accomodated properly and
        not just bolted on"
      
      * tag 'x86_sev_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (60 commits)
        x86/entry: Fixup objtool/ibt validation
        x86/sev: Mark the code returning to user space as syscall gap
        x86/sev: Annotate stack change in the #VC handler
        x86/sev: Remove duplicated assignment to variable info
        x86/sev: Fix address space sparse warning
        x86/sev: Get the AP jump table address from secrets page
        x86/sev: Add missing __init annotations to SEV init routines
        virt: sevguest: Rename the sevguest dir and files to sev-guest
        virt: sevguest: Change driver name to reflect generic SEV support
        x86/boot: Put globals that are accessed early into the .data section
        x86/boot: Add an efi.h header for the decompressor
        virt: sevguest: Fix bool function returning negative value
        virt: sevguest: Fix return value check in alloc_shared_pages()
        x86/sev-es: Replace open-coded hlt-loop with sev_es_terminate()
        virt: sevguest: Add documentation for SEV-SNP CPUID Enforcement
        virt: sevguest: Add support to get extended report
        virt: sevguest: Add support to derive key
        virt: Add SEV-SNP guest driver
        x86/sev: Register SEV-SNP guest request platform device
        x86/sev: Provide support for SNP guest request NAEs
        ...
      eb39e37d
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 0be3ff0c
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Switch ghes_edac to use the CPER error reporting routines and
         simplify the code considerably this way
      
       - Rip out the silly edac_align_ptr() contraption which was computing
         the size of the private structures of each driver and thus allowing
         for a one-shot memory allocation. This was clearly unnecessary and
         confusing so switch to simple and boring kmalloc* calls.
      
       - Last but not least, the usual garden variety of fixes, cleanups and
         improvements all over EDAC land
      
      * tag 'edac_updates_for_v5.19_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/xgene: Fix typo processsors -> processors
        EDAC/i5100: Remove unused inline function i5100_nrecmema_dm_buf_id()
        EDAC: Use kcalloc()
        EDAC/ghes: Change ghes_hw from global to static
        EDAC/armada_xp: Use devm_platform_ioremap_resource()
        EDAC/synopsys: Add a SPDX identifier
        EDAC/synopsys: Add driver support for i.MX platforms
        EDAC/dmc520: Don't print an error for each unconfigured interrupt line
        EDAC/mc: Get rid of edac_align_ptr()
        EDAC/device: Sanitize edac_device_alloc_ctl_info() definition
        EDAC/device: Get rid of the silly one-shot memory allocation in edac_device_alloc_ctl_info()
        EDAC/pci: Get rid of the silly one-shot memory allocation in edac_pci_alloc_ctl_info()
        EDAC/mc: Get rid of silly one-shot struct allocation in edac_mc_alloc()
        efi/cper: Reformat CPER memory error location to more readable
        EDAC/ghes: Unify CPER memory error location reporting
        efi/cper: Add a cper_mem_err_status_str() to decode error description
        powerpc/85xx: Remove fsl,85... bindings
      0be3ff0c
    • Linus Torvalds's avatar
      Merge tag 'x86-irq-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 03e1ccd4
      Linus Torvalds authored
      Pull x86 PCI irq routing updates from Thomas Gleixner:
      
       - Cleanup and robustify the PCI interrupt routing table handling
         including proper range checks
      
       - Add support for Intel 82378ZB/82379AB, SiS85C497 PIRQ routers
      
       - Fix the ALi M1487 router handling
      
       - Handle the IRT routing table format in AMI BIOSes correctly
      
      * tag 'x86-irq-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/PCI: Fix coding style in PIRQ table verification
        x86/PCI: Fix ALi M1487 (IBC) PIRQ router link value interpretation
        x86/PCI: Add $IRT PIRQ routing table support
        x86/PCI: Handle PIRQ routing tables with no router device given
        x86/PCI: Add PIRQ routing table range checks
        x86/PCI: Add support for the SiS85C497 PIRQ router
        x86/PCI: Disambiguate SiS85C503 PIRQ router code entities
        x86/PCI: Handle IRQ swizzling with PIRQ routers
        x86/PCI: Also match function number in $PIR table
        x86/PCI: Include function number in $PIR table dump
        x86/PCI: Show the physical address of the $PIR table
      03e1ccd4
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6e01f86f
      Linus Torvalds authored
      Pull timer and timekeeping updates from Thomas Gleixner:
      
       - Expose CLOCK_TAI to instrumentation to aid with TSN debugging.
      
       - Ensure that the clockevent is stopped when there is no timer armed to
         avoid pointless wakeups.
      
       - Make the sched clock frequency handling and rounding consistent.
      
       - Provide a better debugobject hint for delayed works. The timer
         callback is always the same, which makes it difficult to identify the
         underlying work. Use the work function as a hint instead.
      
       - Move the timer specific sysctl code into the timer subsystem.
      
       - The usual set of improvements and cleanups
      
      * tag 'timers-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timers: Provide a better debugobjects hint for delayed works
        time/sched_clock: Fix formatting of frequency reporting code
        time/sched_clock: Use Hz as the unit for clock rate reporting below 4kHz
        time/sched_clock: Round the frequency reported to nearest rather than down
        timekeeping: Consolidate fast timekeeper
        timekeeping: Annotate ktime_get_boot_fast_ns() with data_race()
        timers/nohz: Switch to ONESHOT_STOPPED in the low-res handler when the tick is stopped
        timekeeping: Introduce fast accessor to clock tai
        tracing/timer: Add missing argument documentation of trace points
        clocksource: Replace cpumask_weight() with cpumask_empty()
        timers: Move timer sysctl into the timer code
        clockevents: Use dedicated list iterator variable
        timers: Simplify calc_index()
        timers: Initialize base::next_expiry_recalc in timers_prepare_cpu()
      6e01f86f
  2. 23 May, 2022 3 commits
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fcfde8a7
      Linus Torvalds authored
      Pull interrupt handling updates from Thomas Gleixner:
       "Core code:
      
         - Make the managed interrupts more robust by shutting them down in
           the core code when the assigned affinity mask does not contain
           online CPUs.
      
         - Make the irq simulator chip work on RT
      
         - A small set of cpumask and power manageent cleanups
      
        Drivers:
      
         - A set of changes which mark GPIO interrupt chips immutable to
           prevent the GPIO subsystem from modifying it under the hood. This
           provides the necessary infrastructure and converts a set of GPIO
           and pinctrl drivers over.
      
         - A set of changes to make the pseudo-NMI handling for GICv3 more
           robust: a missing barrier and consistent handling of the priority
           mask.
      
         - Another set of GICv3 improvements and fixes, but nothing
           outstanding
      
         - The usual set of improvements and cleanups all over the place
      
         - No new irqchip drivers and not even a new device tree binding!
           100+ interrupt chips are truly enough"
      
      * tag 'irq-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
        irqchip: Add Kconfig symbols for sunxi drivers
        irqchip/gic-v3: Fix priority mask handling
        irqchip/gic-v3: Refactor ISB + EOIR at ack time
        irqchip/gic-v3: Ensure pseudo-NMIs have an ISB between ack and handling
        genirq/irq_sim: Make the irq_work always run in hard irq context
        irqchip/armada-370-xp: Do not touch Performance Counter Overflow on A375, A38x, A39x
        irqchip/gic: Improved warning about incorrect type
        irqchip/csky: Return true/false (not 1/0) from bool functions
        irqchip/imx-irqsteer: Add runtime PM support
        irqchip/imx-irqsteer: Constify irq_chip struct
        irqchip/armada-370-xp: Enable MSI affinity configuration
        irqchip/aspeed-scu-ic: Fix irq_of_parse_and_map() return value
        irqchip/aspeed-i2c-ic: Fix irq_of_parse_and_map() return value
        irqchip/sun6i-r: Use NULL for chip_data
        irqchip/xtensa-mx: Fix initial IRQ affinity in non-SMP setup
        irqchip/exiu: Fix acknowledgment of edge triggered interrupts
        irqchip/gic-v3: Claim iomem resources
        dt-bindings: interrupt-controller: arm,gic-v3: Make the v2 compat requirements explicit
        irqchip/gic-v3: Relax polling of GIC{R,D}_CTLR.RWP
        irqchip/gic-v3: Detect LPI invalidation MMIO registers
        ...
      fcfde8a7
    • Linus Torvalds's avatar
      Merge tag 'smp-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 28c8f9fe
      Linus Torvalds authored
      Pull CPU hotplug updates from Thomas Gleixner:
      
       - Initialize the per-CPU structures during early boot so that the state
         is consistent from the very beginning.
      
       - Make the virtualization hotplug state handling more robust and let
         the core bringup CPUs which timed out in an earlier attempt again.
      
       - Make the x86/xen CPU state tracking consistent on a failed online
         attempt, so a consecutive bringup does not fall over the inconsistent
         state.
      
      * tag 'smp-core-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Initialise all cpuhp_cpu_state structs earlier
        cpu/hotplug: Allow the CPU in CPU_UP_PREPARE state to be brought up again.
        x86/xen: Allow to retry if cpu_initialize_context() failed.
      28c8f9fe
    • Linus Torvalds's avatar
      Merge tag 'core-debugobjects-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 985564eb
      Linus Torvalds authored
      Pull debugobjects fixlet from Thomas Gleixner:
       "Trivial licensing cleanup in debugobjects"
      
      * tag 'core-debugobjects-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Convert to SPDX license identifier
      985564eb