1. 27 Jun, 2023 27 commits
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.5-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 18eb3b6d
      Linus Torvalds authored
      Pull xen updates from Juergen Gross:
      
       - three patches adding missing prototypes
      
       - a fix for finding the iBFT in a Xen dom0 for supporting diskless
         iSCSI boot
      
      * tag 'for-linus-6.5-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        x86: xen: add missing prototypes
        x86/xen: add prototypes for paravirt mmu functions
        iscsi_ibft: Fix finding the iBFT under Xen Dom 0
        xen: xen_debug_interrupt prototype to global header
      18eb3b6d
    • Linus Torvalds's avatar
      Merge tag 's390-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 6a466769
      Linus Torvalds authored
      Pull s390 updates from Alexander Gordeev:
      
       - Fix the style of protected key API driver source: use x-mas tree for
         all local variable declarations
      
       - Rework protected key API driver to not use the struct pkey_protkey
         and pkey_clrkey anymore. Both structures have a fixed size buffer,
         but with the support of ECC protected key these buffers are not big
         enough. Use dynamic buffers internally and transparently for
         userspace
      
       - Add support for a new 'non CCA clear key token' with ECC clear keys
         supported: ECC P256, ECC P384, ECC P521, ECC ED25519 and ECC ED448.
         This makes it possible to derive a protected key from the ECC clear
         key input via PKEY_KBLOB2PROTK3 ioctl, while currently the only way
         to derive is via PCKMO instruction
      
       - The s390 PMU of PAI crypto and extension 1 NNPA counters use atomic_t
         for reference counting. Replace this with the proper data type
         refcount_t
      
       - Select ARCH_SUPPORTS_INT128, but limit this to clang for now, since
         gcc generates inefficient code, which may lead to stack overflows
      
       - Replace one-element array with flexible-array member in struct
         vfio_ccw_parent and refactor the rest of the code accordingly. Also,
         prefer struct_size() over sizeof() open- coded versions
      
       - Introduce OS_INFO_FLAGS_ENTRY pointing to a flags field and
         OS_INFO_FLAG_REIPL_CLEAR flag that informs a dumper whether the
         system memory should be cleared or not once dumped
      
       - Fix a hang when a user attempts to remove a VFIO-AP mediated device
         attached to a guest: add VFIO_DEVICE_GET_IRQ_INFO and
         VFIO_DEVICE_SET_IRQS IOCTLs and wire up the VFIO bus driver callback
         to request a release of the device
      
       - Fix calculation for R_390_GOTENT relocations for modules
      
       - Allow any user space process with CAP_PERFMON capability read and
         display the CPU Measurement facility counter sets
      
       - Rework large statically-defined per-CPU cpu_cf_events data structure
         and replace it with dynamically allocated structures created when a
         perf_event_open() system call is invoked or /dev/hwctr device is
         accessed
      
      * tag 's390-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/cpum_cf: rework PER_CPU_DEFINE of struct cpu_cf_events
        s390/cpum_cf: open access to hwctr device for CAP_PERFMON privileged process
        s390/module: fix rela calculation for R_390_GOTENT
        s390/vfio-ap: wire in the vfio_device_ops request callback
        s390/vfio-ap: realize the VFIO_DEVICE_SET_IRQS ioctl
        s390/vfio-ap: realize the VFIO_DEVICE_GET_IRQ_INFO ioctl
        s390/pkey: add support for ecc clear key
        s390/pkey: do not use struct pkey_protkey
        s390/pkey: introduce reverse x-mas trees
        s390/zcore: conditionally clear memory on reipl
        s390/ipl: add REIPL_CLEAR flag to os_info
        vfio/ccw: use struct_size() helper
        vfio/ccw: replace one-element array with flexible-array member
        s390: select ARCH_SUPPORTS_INT128
        s390/pai_ext: replace atomic_t with refcount_t
        s390/pai_crypto: replace atomic_t with refcount_t
      6a466769
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20230627' of https://github.com/jcmvbkbc/linux-xtensa · 8d8026f3
      Linus Torvalds authored
      Pull xtensa updates from Max Filippov:
      
       - clean up platform_* interface of the xtensa architecture
      
       - enable HAVE_ASM_MODVERSIONS
      
       - drop ARCH_WANT_FRAME_POINTERS
      
       - clean up unaligned access exception handler
      
       - provide handler for load/store exceptions
      
       - various small fixes and cleanups
      
      * tag 'xtensa-20230627' of https://github.com/jcmvbkbc/linux-xtensa:
        xtensa: dump userspace code around the exception PC
        xtensa: rearrange show_stack output
        xtensa: add load/store exception handler
        xtensa: rearrange unaligned exception handler
        xtensa: always install slow handler for unaligned access exception
        xtensa: move early_trap_init from kasan_early_init to init_arch
        xtensa: drop ARCH_WANT_FRAME_POINTERS
        xtensa: report trax and perf counters in cpuinfo
        xtensa: add asm-prototypes.h
        xtensa: only build __strncpy_user with CONFIG_ARCH_HAS_STRNCPY_FROM_USER
        xtensa: drop bcopy implementation
        xtensa: drop EXPORT_SYMBOL for common_exception_return
        xtensa: boot-redboot: clean up Makefile
        xtensa: clean up default platform functions
        xtensa: drop platform_halt and platform_power_off
        xtensa: drop platform_restart
        xtensa: drop platform_heartbeat
        xtensa: xt2000: drop empty platform_init
      8d8026f3
    • Dinh Nguyen's avatar
      Revert "nios2: Convert __pte_free_tlb() to use ptdescs" · 0ae61229
      Dinh Nguyen authored
      This reverts commit 6ebe94ba.
      
      The patch "nios2: Convert __pte_free_tlb() to use ptdescs" was supposed
      to go together with a patchset that Vishal Moola had planned taking it
      through the mm tree. By just having this patch, all NIOS2 builds are
      broken.
      Signed-off-by: default avatarDinh Nguyen <dinguyen@kernel.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      0ae61229
    • Linus Torvalds's avatar
      Merge tag 'objtool-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6f612579
      Linus Torvalds authored
      Pull objtool updates from Ingo Molar:
       "Build footprint & performance improvements:
      
         - Reduce memory usage with CONFIG_DEBUG_INFO=y
      
           In the worst case of an allyesconfig+CONFIG_DEBUG_INFO=y kernel,
           DWARF creates almost 200 million relocations, ballooning objtool's
           peak heap usage to 53GB. These patches reduce that to 25GB.
      
           On a distro-type kernel with kernel IBT enabled, they reduce
           objtool's peak heap usage from 4.2GB to 2.8GB.
      
           These changes also improve the runtime significantly.
      
        Debuggability improvements:
      
         - Add the unwind_debug command-line option, for more extend unwinding
           debugging output
         - Limit unreachable warnings to once per function
         - Add verbose option for disassembling affected functions
         - Include backtrace in verbose mode
         - Detect missing __noreturn annotations
         - Ignore exc_double_fault() __noreturn warnings
         - Remove superfluous global_noreturns entries
         - Move noreturn function list to separate file
         - Add __kunit_abort() to noreturns
      
        Unwinder improvements:
      
         - Allow stack operations in UNWIND_HINT_UNDEFINED regions
         - drm/vmwgfx: Add unwind hints around RBP clobber
      
        Cleanups:
      
         - Move the x86 entry thunk restore code into thunk functions
         - x86/unwind/orc: Use swap() instead of open coding it
         - Remove unnecessary/unused variables
      
        Fixes for modern stack canary handling"
      
      * tag 'objtool-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (42 commits)
        x86/orc: Make the is_callthunk() definition depend on CONFIG_BPF_JIT=y
        objtool: Skip reading DWARF section data
        objtool: Free insns when done
        objtool: Get rid of reloc->rel[a]
        objtool: Shrink elf hash nodes
        objtool: Shrink reloc->sym_reloc_entry
        objtool: Get rid of reloc->jump_table_start
        objtool: Get rid of reloc->addend
        objtool: Get rid of reloc->type
        objtool: Get rid of reloc->offset
        objtool: Get rid of reloc->idx
        objtool: Get rid of reloc->list
        objtool: Allocate relocs in advance for new rela sections
        objtool: Add for_each_reloc()
        objtool: Don't free memory in elf_close()
        objtool: Keep GElf_Rel[a] structs synced
        objtool: Add elf_create_section_pair()
        objtool: Add mark_sec_changed()
        objtool: Fix reloc_hash size
        objtool: Consolidate rel/rela handling
        ...
      6f612579
    • Linus Torvalds's avatar
      Merge tag 'x86-mm-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4d675181
      Linus Torvalds authored
      Pull x86 mm updates from Ingo Molnar:
      
       - Remove Xen-PV leftovers from init_32.c
      
       - Fix __swp_entry_to_pte() warning splat for Xen PV guests, triggered
         on CONFIG_DEBUG_VM_PGTABLE=y
      
      * tag 'x86-mm-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Remove Xen-PV leftovers from init_32.c
        x86/mm: Fix __swp_entry_to_pte() for Xen PV guests
      4d675181
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a193cc75
      Linus Torvalds authored
      Pull perf events updates from Ingo Molnar:
      
       - Rework & fix the event forwarding logic by extending the core
         interface.
      
         This fixes AMD PMU events that have to be forwarded from the
         core PMU to the IBS PMU.
      
       - Add self-tests to test AMD IBS invocation via core PMU events
      
       - Clean up Intel FixCntrCtl MSR encoding & handling
      
      * tag 'perf-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf: Re-instate the linear PMU search
        perf/x86/intel: Define bit macros for FixCntrCtl MSR
        perf test: Add selftest to test IBS invocation via core pmu events
        perf/core: Remove pmu linear searching code
        perf/ibs: Fix interface via core pmu events
        perf/core: Rework forwarding of {task|cpu}-clock events
      a193cc75
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bc6cb4d5
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
      
       - Introduce cmpxchg128() -- aka. the demise of cmpxchg_double()
      
         The cmpxchg128() family of functions is basically & functionally the
         same as cmpxchg_double(), but with a saner interface.
      
         Instead of a 6-parameter horror that forced u128 - u64/u64-halves
         layout details on the interface and exposed users to complexity,
         fragility & bugs, use a natural 3-parameter interface with u128
         types.
      
       - Restructure the generated atomic headers, and add kerneldoc comments
         for all of the generic atomic{,64,_long}_t operations.
      
         The generated definitions are much cleaner now, and come with
         documentation.
      
       - Implement lock_set_cmp_fn() on lockdep, for defining an ordering when
         taking multiple locks of the same type.
      
         This gets rid of one use of lockdep_set_novalidate_class() in the
         bcache code.
      
       - Fix raw_cpu_generic_try_cmpxchg() bug due to an unintended variable
         shadowing generating garbage code on Clang on certain ARM builds.
      
      * tag 'locking-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (43 commits)
        locking/atomic: scripts: fix ${atomic}_dec_if_positive() kerneldoc
        percpu: Fix self-assignment of __old in raw_cpu_generic_try_cmpxchg()
        locking/atomic: treewide: delete arch_atomic_*() kerneldoc
        locking/atomic: docs: Add atomic operations to the driver basic API documentation
        locking/atomic: scripts: generate kerneldoc comments
        docs: scripts: kernel-doc: accept bitwise negation like ~@var
        locking/atomic: scripts: simplify raw_atomic*() definitions
        locking/atomic: scripts: simplify raw_atomic_long*() definitions
        locking/atomic: scripts: split pfx/name/sfx/order
        locking/atomic: scripts: restructure fallback ifdeffery
        locking/atomic: scripts: build raw_atomic_long*() directly
        locking/atomic: treewide: use raw_atomic*_<op>()
        locking/atomic: scripts: add trivial raw_atomic*_<op>()
        locking/atomic: scripts: factor out order template generation
        locking/atomic: scripts: remove leftover "${mult}"
        locking/atomic: scripts: remove bogus order parameter
        locking/atomic: xtensa: add preprocessor symbols
        locking/atomic: x86: add preprocessor symbols
        locking/atomic: sparc: add preprocessor symbols
        locking/atomic: sh: add preprocessor symbols
        ...
      bc6cb4d5
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ed3b7923
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "Scheduler SMP load-balancer improvements:
      
         - Avoid unnecessary migrations within SMT domains on hybrid systems.
      
           Problem:
      
              On hybrid CPU systems, (processors with a mixture of
              higher-frequency SMT cores and lower-frequency non-SMT cores),
              under the old code lower-priority CPUs pulled tasks from the
              higher-priority cores if more than one SMT sibling was busy -
              resulting in many unnecessary task migrations.
      
           Solution:
      
              The new code improves the load balancer to recognize SMT cores
              with more than one busy sibling and allows lower-priority CPUs
              to pull tasks, which avoids superfluous migrations and lets
              lower-priority cores inspect all SMT siblings for the busiest
              queue.
      
         - Implement the 'runnable boosting' feature in the EAS balancer:
           consider CPU contention in frequency, EAS max util & load-balance
           busiest CPU selection.
      
           This improves CPU utilization for certain workloads, while leaves
           other key workloads unchanged.
      
        Scheduler infrastructure improvements:
      
         - Rewrite the scheduler topology setup code by consolidating it into
           the build_sched_topology() helper function and building it
           dynamically on the fly.
      
         - Resolve the local_clock() vs. noinstr complications by rewriting
           the code: provide separate sched_clock_noinstr() and
           local_clock_noinstr() functions to be used in instrumentation code,
           and make sure it is all instrumentation-safe.
      
        Fixes:
      
         - Fix a kthread_park() race with wait_woken()
      
         - Fix misc wait_task_inactive() bugs unearthed by the -rt merge:
             - Fix UP PREEMPT bug by unifying the SMP and UP implementations
             - Fix task_struct::saved_state handling
      
         - Fix various rq clock update bugs, unearthed by turning on the rq
           clock debugging code.
      
         - Fix the PSI WINDOW_MIN_US trigger limit, which was easy to trigger
           by creating enough cgroups, by removing the warnign and restricting
           window size triggers to PSI file write-permission or
           CAP_SYS_RESOURCE.
      
         - Propagate SMT flags in the topology when removing degenerate domain
      
         - Fix grub_reclaim() calculation bug in the deadline scheduler code
      
         - Avoid resetting the min update period when it is unnecessary, in
           psi_trigger_destroy().
      
         - Don't balance a task to its current running CPU in load_balance(),
           which was possible on certain NUMA topologies with overlapping
           groups.
      
         - Fix the sched-debug printing of rq->nr_uninterruptible
      
        Cleanups:
      
         - Address various -Wmissing-prototype warnings, as a preparation to
           (maybe) enable this warning in the future.
      
         - Remove unused code
      
         - Mark more functions __init
      
         - Fix shadow-variable warnings"
      
      * tag 'sched-core-2023-06-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (50 commits)
        sched/core: Avoid multiple calling update_rq_clock() in __cfsb_csd_unthrottle()
        sched/core: Avoid double calling update_rq_clock() in __balance_push_cpu_stop()
        sched/core: Fixed missing rq clock update before calling set_rq_offline()
        sched/deadline: Update GRUB description in the documentation
        sched/deadline: Fix bandwidth reclaim equation in GRUB
        sched/wait: Fix a kthread_park race with wait_woken()
        sched/topology: Mark set_sched_topology() __init
        sched/fair: Rename variable cpu_util eff_util
        arm64/arch_timer: Fix MMIO byteswap
        sched/fair, cpufreq: Introduce 'runnable boosting'
        sched/fair: Refactor CPU utilization functions
        cpuidle: Use local_clock_noinstr()
        sched/clock: Provide local_clock_noinstr()
        x86/tsc: Provide sched_clock_noinstr()
        clocksource: hyper-v: Provide noinstr sched_clock()
        clocksource: hyper-v: Adjust hv_read_tsc_page_tsc() to avoid special casing U64_MAX
        x86/vdso: Fix gettimeofday masking
        math64: Always inline u128 version of mul_u64_u64_shr()
        s390/time: Provide sched_clock_noinstr()
        loongarch: Provide noinstr sched_clock_read()
        ...
      ed3b7923
    • Linus Torvalds's avatar
      Merge tag 'x86_sgx_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e8f75c02
      Linus Torvalds authored
      Pull SGX update from Borislav Petkov:
      
       - A fix to avoid using a list iterator variable after the loop it is
         used in
      
      * tag 'x86_sgx_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sgx: Avoid using iterator after loop in sgx_mmu_notifier_release()
      e8f75c02
    • Linus Torvalds's avatar
      Merge tag 'x86_sev_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 12dc0100
      Linus Torvalds authored
      Pull x86 SEV updates from Borislav Petkov:
      
       - Some SEV and CC platform helpers cleanup and simplifications now that
         the usage patterns are becoming apparent
      
      [ I'm sure I'm the only one that has gets confused by all the TLAs, but
        in case there are others: here SEV is AMD's "Secure Encrypted
        Virtualization" and CC is generic "Confidential Computing".
      
        There's also Intel SGX (Software Guard Extensions) and TDX (Trust
        Domain Extensions), along with all the vendor memory encryption
        extensions (SME, TSME, TME, and WTF).
      
        And then we have arm64 with RMA and CCA, and I probably forgot another
        dozen or so related acronyms    - Linus ]
      
      * tag 'x86_sev_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/coco: Get rid of accessor functions
        x86/sev: Get rid of special sev_es_enable_key
        x86/coco: Mark cc_platform_has() and descendants noinstr
      12dc0100
    • Linus Torvalds's avatar
      Merge tag 'x86_mtrr_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dc43fc75
      Linus Torvalds authored
      Pull x86 mtrr updates from Borislav Petkov:
       "A serious scrubbing of the MTRR code including adding a new map
        mechanism in order to look up the memory type of a region easily.
      
        Also address memory range lookup issues like returning an invalid
        memory type. Furthermore, this handles the decoupling of PAT from MTRR
        more naturally.
      
        All work by Juergen Gross"
      
      * tag 'x86_mtrr_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/xen: Set default memory type for PV guests to WB
        x86/mtrr: Unify debugging printing
        x86/mtrr: Remove unused code
        x86/mm: Only check uniform after calling mtrr_type_lookup()
        x86/mtrr: Don't let mtrr_type_lookup() return MTRR_TYPE_INVALID
        x86/mtrr: Use new cache_map in mtrr_type_lookup()
        x86/mtrr: Add mtrr=debug command line option
        x86/mtrr: Construct a memory map with cache modes
        x86/mtrr: Add get_effective_type() service function
        x86/mtrr: Allocate mtrr_value array dynamically
        x86/mtrr: Move 32-bit code from mtrr.c to legacy.c
        x86/mtrr: Have only one set_mtrr() variant
        x86/mtrr: Replace vendor tests in MTRR code
        x86/xen: Set MTRR state when running as Xen PV initial domain
        x86/hyperv: Set MTRR state when running as SEV-SNP Hyper-V guest
        x86/mtrr: Support setting MTRR state for software defined MTRRs
        x86/mtrr: Replace size_or_mask and size_and_mask with a much easier concept
        x86/mtrr: Remove physical address size calculation
      dc43fc75
    • Linus Torvalds's avatar
      Merge tag 'x86_misc_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4baa098a
      Linus Torvalds authored
      Pull misc x86 updates from Borislav Petkov:
      
       - Remove the local symbols prefix of the get/put_user() exception
         handling symbols so that tools do not get confused by the presence of
         code belonging to the wrong symbol/not belonging to any symbol
      
       - Improve csum_partial()'s performance
      
       - Some improvements to the kcpuid tool
      
      * tag 'x86_misc_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/lib: Make get/put_user() exception handling a visible symbol
        x86/csum: Fix clang -Wuninitialized in csum_partial()
        x86/csum: Improve performance of `csum_partial`
        tools/x86/kcpuid: Add .gitignore
        tools/x86/kcpuid: Dump the correct CPUID function in error
      4baa098a
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4aacacee
      Linus Torvalds authored
      Pull x86 microcode loader updates from Borislav Petkov:
      
       - Load late on both SMT threads on AMD, just like it is being done in
         the early loading procedure
      
        - Cleanups
      
      * tag 'x86_microcode_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/AMD: Load late on both threads too
        x86/microcode/amd: Remove unneeded pointer arithmetic
        x86/microcode/AMD: Get rid of __find_equiv_id()
      4aacacee
    • Linus Torvalds's avatar
      Merge tag 'docs-arm-move' of git://git.lwn.net/linux · 04fc8904
      Linus Torvalds authored
      Pull arm documentation move from Jonathan Corbet:
       "Move the Arm architecture documentation under Documentation/arch/.
      
        This brings some order to the documentation directory, declutters the
        top-level directory, and makes the documentation organization more
        closely match that of the source"
      
      * tag 'docs-arm-move' of git://git.lwn.net/linux:
        dt-bindings: Update Documentation/arm references
        docs: update some straggling Documentation/arm references
        crypto: update some Arm documentation references
        mips: update a reference to a moved Arm Document
        arm64: Update Documentation/arm references
        arm: update in-source documentation references
        arm: docs: Move Arm documentation to Documentation/arch/
      04fc8904
    • Linus Torvalds's avatar
      Merge tag 'docs-6.5' of git://git.lwn.net/linux · a3540495
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "It's been a relatively calm cycle in docsland. We do have:
      
         - Some initial page-table documentation from Linus (the other Linus)
      
         - Regression-handling documentation improvements from Thorsten
      
         - Addition of kerneldoc documentation for the ERR_PTR() and related
           macros from James Seo
      
        ... and the usual collection of fixes and updates"
      
      * tag 'docs-6.5' of git://git.lwn.net/linux:
        docs: consolidate storage interfaces
        Documentation: update git configuration for Link: tag
        Documentation: KVM: make corrections to vcpu-requests.rst
        Documentation: KVM: make corrections to ppc-pv.rst
        Documentation: KVM: make corrections to locking.rst
        Documentation: KVM: make corrections to halt-polling.rst
        Documentation: virt: correct location of haltpoll module params
        Documentation/mm: Initial page table documentation
        docs: crypto: async-tx-api: fix typo in struct name
        docs/doc-guide: Clarify how to write tables
        docs: handling-regressions: rework section about fixing procedures
        docs: process: fix a typoed cross-reference
        docs: submitting-patches: Discuss interleaved replies
        MAINTAINERS: direct process doc changes to a dedicated ML
        Documentation: core-api: Add error pointer functions to kernel-api
        err.h: Add missing kerneldocs for error pointer functions
        Documentation: conf.py: Add __force to c_id_attributes
        docs: clarify KVM related kernel parameters' descriptions
        docs: consolidate human interface subsystems
        docs: admin-guide: Add information about intel_pstate active mode
      a3540495
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-next-6.5-rc1' of... · dedbf31a
      Linus Torvalds authored
      Merge tag 'linux-kselftest-next-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull kselftest updates from Shuah Khan:
      
       - allow runners to override the timeout
      
         This change is made to avoid future increases of long timeouts
      
       - several other spelling and cleanups
      
       - a new subtest to video_device_test
      
       - enhancements to test coverage in clone3 test
      
       - other fixes to ftrace and cpufreq tests
      
      * tag 'linux-kselftest-next-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests/ftace: Fix KTAP output ordering
        selftests/cpufreq: Don't enable generic lock debugging options
        kselftests: Sort the collections list to avoid duplicate tests
        selftest: pidfd: Omit long and repeating outputs
        selftests: allow runners to override the timeout
        selftests/ftrace: Add new test case which checks for optimized probes
        selftests/clone3: test clone3 with exit signal in flags
        kselftest: vDSO: Fix accumulation of uninitialized ret when CLOCK_REALTIME is undefined
        selftests: prctl: Fix spelling mistake "anonynous" -> "anonymous"
        selftests: media_tests: Add new subtest to video_device_test
      dedbf31a
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-kunit-6.5-rc1' of... · 9ba92dc1
      Linus Torvalds authored
      Merge tag 'linux-kselftest-kunit-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull KUnit updates from Shuah Khan:
      
       - kunit_add_action() API to defer a call until test exit
      
       - Update document to add kunit_add_action() usage notes
      
       - Changes to always run cleanup from a test kthread
      
       - Documentation updates to clarify cleanup usage (assertions should not
         be used in cleanup)
      
       - Documentation update to clearly indicate that exit functions should
         run even if init fails
      
       - Several fixes and enhancements to existing tests
      
      * tag 'linux-kselftest-kunit-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        MAINTAINERS: Add source tree entry for kunit
        Documentation: kunit: Rename references to kunit_abort()
        kunit: Move kunit_abort() call out of kunit_do_failed_assertion()
        kunit: Fix obsolete name in documentation headers (func->action)
        Documentation: Kunit: add MODULE_LICENSE to sample code
        kunit: Update kunit_print_ok_not_ok function
        kunit: Fix reporting of the skipped parameterized tests
        kunit/test: Add example test showing parameterized testing
        Documentation: kunit: Add usage notes for kunit_add_action()
        kunit: kmalloc_array: Use kunit_add_action()
        kunit: executor_test: Use kunit_add_action()
        kunit: Add kunit_add_action() to defer a call until test exit
        kunit: example: Provide example exit functions
        Documentation: kunit: Warn that exit functions run even if init fails
        Documentation: kunit: Note that assertions should not be used in cleanup
        kunit: Always run cleanup from a test kthread
        Documentation: kunit: Modular tests should not depend on KUNIT=y
        kunit: tool: undo type subscripts for subprocess.Popen
      9ba92dc1
    • Linus Torvalds's avatar
      Merge tag 'nolibc.2023.06.22a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · b19edac5
      Linus Torvalds authored
      Pull nolibc updates from Paul McKenney:
      
       - Add stackprotector support
      
       - Fix RISC-V load-store instruction syntax to support 32-bit binaries,
         plus fixes for generic 32-bit support
      
       - Fix use of s390 sys_fork()
      
       - Add my_syscall6() for ARM
      
       - Support different platforms having different errno definitions
      
       - Fix ppoll/ppoll_time64 arguments (add the fifth argument)
      
       - Force use of little endian on MIPS
      
       - Improved testing, for example, better handling of different compilers
         and compiler versions, comparing nolibc behavior to that of libc, and
         additional test cases
      
       - Improve syntax and header ordering
      
       - Use existing <linux/reboot.h> instead of redefining constants
      
       - Add syscall()
      
      * tag 'nolibc.2023.06.22a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (53 commits)
        selftests/nolibc: make sure gcc always use little endian on MIPS
        selftests/nolibc: also count skipped and failed tests in output
        selftests/nolibc: add new gettimeofday test cases
        selftests/nolibc: remove gettimeofday_bad1/2 completely
        selftests/nolibc: support two errnos with EXPECT_SYSER2()
        tools/nolibc: open: fix up compile warning for arm
        tools/nolibc: arm: add missing my_syscall6
        selftests/nolibc: use INT_MAX instead of __INT_MAX__
        selftests/nolibc: not include limits.h for nolibc
        selftests/nolibc: fix up compile warning with glibc on x86_64
        selftests/nolibc: allow specify extra arguments for qemu
        selftests/nolibc: remove test gettimeofday_null
        tools/nolibc: ensure fast64 integer types have 64 bits
        selftests/nolibc: test_fork: fix up duplicated print
        tools/nolibc: ppoll/ppoll_time64: add a missing argument
        selftests/nolibc: remove the duplicated gettimeofday_bad2
        selftests/nolibc: print name instead of number for EOVERFLOW
        tools/nolibc: support nanoseconds in stat()
        selftests/nolibc: prevent coredumps during test execution
        tools/nolibc: add support for prctl()
        ...
      b19edac5
    • Linus Torvalds's avatar
      Merge tag 'rcu.2023.06.22a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · af96134d
      Linus Torvalds authored
      Pull RCU updates from Paul McKenney:
       "Documentation updates
      
        Miscellaneous fixes, perhaps most notably:
      
         - Remove RCU_NONIDLE(). The new visibility of most of the idle loop
           to RCU has obsoleted this API.
      
         - Make the RCU_SOFTIRQ callback-invocation time limit also apply to
           the rcuc kthreads that invoke callbacks for CONFIG_PREEMPT_RT.
      
         - Add a jiffies-based callback-invocation time limit to handle
           long-running callbacks. (The local_clock() function is only invoked
           once per 32 callbacks due to its high overhead.)
      
         - Stop rcu_tasks_invoke_cbs() from using never-onlined CPUs, which
           fixes a bug that can occur on systems with non-contiguous CPU
           numbering.
      
        kvfree_rcu updates:
      
         - Eliminate the single-argument variant of k[v]free_rcu() now that
           all uses have been converted to k[v]free_rcu_mightsleep().
      
         - Add WARN_ON_ONCE() checks for k[v]free_rcu*() freeing callbacks too
           soon. Yes, this is closing the barn door after the horse has
           escaped, but Murphy says that there will be more horses.
      
        Callback-offloading updates:
      
         - Fix a number of bugs involving the shrinker and lazy callbacks.
      
        Tasks RCU updates
      
        Torture-test updates"
      
      * tag 'rcu.2023.06.22a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (32 commits)
        torture: Remove duplicated argument -enable-kvm for ppc64
        doc/rcutorture: Add description of rcutorture.stall_cpu_block
        rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale
        rcu/rcuscale: Move rcu_scale_*() after kfree_scale_cleanup()
        rcutorture: Correct name of use_softirq module parameter
        locktorture: Add long_hold to adjust lock-hold delays
        rcu/nocb: Make shrinker iterate only over NOCB CPUs
        rcu-tasks: Stop rcu_tasks_invoke_cbs() from using never-onlined CPUs
        rcu: Make rcu_cpu_starting() rely on interrupts being disabled
        rcu: Mark rcu_cpu_kthread() accesses to ->rcu_cpu_has_work
        rcu: Mark additional concurrent load from ->cpu_no_qs.b.exp
        rcu: Employ jiffies-based backstop to callback time limit
        rcu: Check callback-invocation time limit for rcuc kthreads
        rcu: Remove RCU_NONIDLE()
        rcu: Add more RCU files to kernel-api.rst
        rcu-tasks: Clarify the cblist_init_generic() function's pr_info() output
        rcu-tasks: Avoid pr_info() with spin lock in cblist_init_generic()
        rcu/nocb: Recheck lazy callbacks under the ->nocb_lock from shrinker
        rcu/nocb: Fix shrinker race against callback enqueuer
        rcu/nocb: Protect lazy shrinker against concurrent (de-)offloading
        ...
      af96134d
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v6.5' of... · 1ef6663a
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Tzung-Bi Shih:
       "Improvements:
      
         - Support Pin Assignment D in getting mux state
      
         - Emit an uevent when EC panics so that userland programs get chance
           to capture EC coredumps (LPC interface only)
      
         - Send EC_CMD_HOST_SLEEP_EVENT to EC at the very beginning/end of
           system suspend/resume so that EC can watch the duration more
           accurately (LPC interface only)
      
        Misc:
      
         - Switch back from I2C .probe_new() to .probe()
      
         - Use %*ph for printing hexdump of small buffers"
      
      * tag 'tag-chrome-platform-for-v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        platform/chrome: cros_ec_spi: Use %*ph for printing hexdump of a small buffer
        platform/chrome: Switch i2c drivers back to use .probe()
        platform/chrome: cros_ec_lpc: Move host command to prepare/complete
        platform/chrome: cros_ec: Report EC panic as uevent
        platform/chrome: cros_typec_switch: Add Pin D support
      1ef6663a
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 8d7868c4
      Linus Torvalds authored
      Pull thermal control updates from Rafael Wysocki:
       "These extend the int340x thermal driver, add thermal DT bindings for
        some Qcom platforms, add DT bindings and support for Armada AP807 and
        MSM8909, allow selecting the bang-bang thermal governor as the default
        one, address issues in several thermal drivers for ARM platforms and
        clean up code.
      
        Specifics:
      
         - Add new IOCTLs to the int340x thermal driver to allow user space to
           retrieve the Passive v2 thermal table (Srinivas Pandruvada)
      
         - Add DT bindings for SM6375, MSM8226 and QCM2290 Qcom platforms
           (Konrad Dybcio)
      
         - Add DT bindings and support for QCom MSM8226 (Matti Lehtimäki)
      
         - Add DT bindings for QCom ipq9574 (Praveenkumar I)
      
         - Convert bcm2835 DT bindings to the yaml schema (Stefan Wahren)
      
         - Allow selecting the bang-bang governor as default (Thierry Reding)
      
         - Refactor and prepare the code to set the scene for RCar Gen4
           (Wolfram Sang)
      
         - Clean up and fix the QCom tsens drivers. Add DT bindings and
           calibration for the MSM8909 platform (Stephan Gerhold)
      
         - Revert a patch introducing a wrong usage of devm_of_iomap() on the
           Mediatek platform (Ricardo Cañuelo)
      
         - Fix the clock vs reset ordering in order to conform to the
           documentation on the sun8i (Christophe JAILLET)
      
         - Prevent setting up undocumented registers, enable the only
           described sensors and add the version 2.1 on the Qoriq sensor (Peng
           Fan)
      
         - Add DT bindings and support for the Armada AP807 (Alex Leibovich)
      
         - Update the mlx5 driver with the recent thermal changes (Daniel
           Lezcano)
      
         - Convert to platform remove callback returning void on STM32 (Uwe
           Kleine-König)
      
         - Add an error information printing for devm_thermal_add_hwmon_sysfs()
           and remove the error from the Sun8i, Amlogic, i.MX, TI, K3, Tegra,
           Qoriq, Mediateka and QCom (Yangtao Li)
      
         - Register as hwmon sensor for the Generic ADC (Chen-Yu Tsai)
      
         - Use the dev_err_probe() function in the QCom tsens alarm driver
           (Luca Weiss)"
      
      * tag 'thermal-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (39 commits)
        thermal/drivers/qcom/temp-alarm: Use dev_err_probe
        thermal/drivers/generic-adc: Register thermal zones as hwmon sensors
        thermal/drivers/mediatek/lvts_thermal: Remove redundant msg in lvts_ctrl_start()
        thermal/drivers/qcom: Remove redundant msg at probe time
        thermal/drivers/ti-soc: Remove redundant msg in ti_thermal_expose_sensor()
        thermal/drivers/qoriq: Remove redundant msg in qoriq_tmu_register_tmu_zone()
        thermal/drivers/tegra: Remove redundant msg in tegra_tsensor_register_channel()
        drivers/thermal/k3: Remove redundant msg in k3_bandgap_probe()
        thermal/drivers/imx: Remove redundant msg in imx8mm_tmu_probe() and imx_sc_thermal_probe()
        thermal/drivers/amlogic: Remove redundant msg in amlogic_thermal_probe()
        thermal/drivers/sun8i: Remove redundant msg in sun8i_ths_register()
        thermal/hwmon: Add error information printing for devm_thermal_add_hwmon_sysfs()
        thermal/drivers/stm32: Convert to platform remove callback returning void
        net/mlx5: Update the driver with the recent thermal changes
        thermal/drivers/armada: Add support for AP807 thermal data
        dt-bindings: armada-thermal: Add armada-ap807-thermal compatible
        thermal/drivers/qoriq: Support version 2.1
        thermal/drivers/qoriq: Only enable supported sensors
        thermal/drivers/qoriq: No need to program site adjustment register
        thermal/drivers/mediatek/lvts_thermal: Register thermal zones as hwmon sensors
        ...
      8d7868c4
    • Linus Torvalds's avatar
      Merge tag 'pm-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 40e8e98f
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These add Intel TPMI (Topology Aware Register and PM Capsule
        Interface) support to the power capping subsystem, extend the
        intel_idle driver to work in VM guests where MWAIT is not available,
        extend the system-wide power management diagnostics, fix bugs and
        clean up code.
      
        Specifics:
      
         - Introduce power capping core support for Intel TPMI (Topology Aware
           Register and PM Capsule Interface) and a TPMI interface driver for
           Intel RAPL (Zhang Rui, Dan Carpenter)
      
         - Fix CONFIG_IOSF_MBI dependency in the Intel RAPL power capping
           driver (Zhang Rui)
      
         - Fix invalid initialization for pl4_supported field in the Intel
           RAPL power capping driver (Sumeet Pawnikar)
      
         - Clean up the intel_idle driver, make it work with VM guests that
           cannot use the MWAIT instruction and address the case in which the
           host may enter a deep idle state when the guest is idle (Arjan van
           de Ven)
      
         - Prevent cpufreq drivers that provide the ->adjust_perf() callback
           without a ->fast_switch() one which is used as a fallback from the
           former in some cases (Wyes Karny)
      
         - Fix some issues related to the AMD P-state cpufreq driver (Mario
           Limonciello, Wyes Karny)
      
         - Fix the energy_performance_preference attribute handling in the
           intel_pstate driver in passive mode (Tero Kristo)
      
         - Fix the handling of pm_suspend_target_state when CONFIG_PM is unset
           (Kai-Heng Feng)
      
         - Correct spelling mistake in a comment in the hibernation code (Wang
           Honghui)
      
         - Add arch_resume_nosmt() prototype to avoid a "missing prototypes"
           build warning (Arnd Bergmann)
      
         - Restrict pm_pr_dbg() to system-wide power transitions and use it in
           a few additional places (Mario Limonciello)
      
         - Drop verification of in-params from genpd_add_device() and ensure
           that all of its callers will do it (Ulf Hansson)
      
         - Prevent possible integer overflows from occurring in
           genpd_parse_state() (Nikita Zhandarovich)
      
         - Reorder fieldls in 'struct devfreq_dev_status' to reduce its size
           somewhat (Christophe JAILLET)
      
         - Ensure that the Exynos PPMU driver is already loaded before the
           Exynos Bus driver starts probing so as to avoid a possible freeze
           loading of the kernel modules (Marek Szyprowski)
      
         - Fix variable deferencing before NULL check in the mtk-cci devfreq
           driver (Sukrut Bellary)"
      
      * tag 'pm-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (42 commits)
        intel_idle: Add a "Long HLT" C1 state for the VM guest mode
        cpufreq: intel_pstate: Fix energy_performance_preference for passive
        cpufreq: amd-pstate: Add a kernel config option to set default mode
        cpufreq: amd-pstate: Set a fallback policy based on preferred_profile
        ACPI: CPPC: Add definition for undefined FADT preferred PM profile value
        cpufreq: amd-pstate: Set default governor to schedutil
        PM: domains: Move the verification of in-params from genpd_add_device()
        cpufreq: amd-pstate: Make amd-pstate EPP driver name hyphenated
        cpufreq: amd-pstate: Write CPPC enable bit per-socket
        intel_idle: Add support for using intel_idle in a VM guest using just hlt
        cpufreq: Fail driver register if it has adjust_perf without fast_switch
        intel_idle: clean up the (new) state_update_enter_method function
        intel_idle: refactor state->enter manipulation into its own function
        platform/x86/amd: pmc: Use pm_pr_dbg() for suspend related messages
        pinctrl: amd: Use pm_pr_dbg to show debugging messages
        ACPI: x86: Add pm_debug_messages for LPS0 _DSM state tracking
        include/linux/suspend.h: Only show pm_pr_dbg messages at suspend/resume
        powercap: RAPL: Fix a NULL vs IS_ERR() bug
        powercap: RAPL: Fix CONFIG_IOSF_MBI dependency
        powercap: RAPL: fix invalid initialization for pl4_supported field
        ...
      40e8e98f
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · bb695055
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These rework the handling of notifications in ACPI button drivers (to
        enable future simplifications and cleanups), clean up the ACPI thermal
        driver, update the ACPI backlight driver, add quirks working around
        AML bugs on some systems, fix some assorted issues and clean up code.
      
        Specifics:
      
         - Reduce ACPI device enumeration overhead related to devices with
           dependencies (Rafael Wysocki)
      
         - Fix the handling of Microsoft LPS0 _DSM for suspend-to-idle (Mario
           Limonciello)
      
         - Fix section mismatch warning in the ACPI suspend-to-idle code (Arnd
           Bergmann)
      
         - Drop several ACPI resource management quirks related to IRQ
           ovverides on AMD "Zen" systems (Mario Limonciello)
      
         - Modify the ACPI EC driver to make it only clear the EC GPE status
           when handling the GPE (Jeremy Compostella)
      
         - Add quirks to work around ACPI tables defects on Lenovo Yoga Book
           yb1-x90f/l and Nextbook Ares 8A (Hans de Goede)
      
         - Add ACPi backlight quirks for Dell Studio 1569, Lenovo ThinkPad
           X131e (3371 AMD version) and Apple iMac11,3 and stop trying to use
           vendor backlight control on relatively recent systems (Hans de
           Goede)
      
         - Add pwm_lookup_table entry for second PWM on CHT/BSW devices in the
           ACPI LPSS (Intel SoC) driver (Hans de Goede)
      
         - Add nfit_intel_shutdown_status() declaration to a local header to
           avoid a "missing prototypes" build warning (Arnd Bergmann)
      
         - Clean up the ACPI thermal driver and drop some dead or otherwise
           unneded code from it (Rafael Wysocki)
      
         - Rework the handling of notifications in the ACPI button drivers so
           as to allow the common notification handling code for devices to be
           simplified (Rafael Wysocki)
      
         - Make ghes_get_devices() return NULL to indicate that there are no
           GHES devices so as to allow vendor-specific EDAC drivers to probe
           then (Li Yang)
      
         - Mark bert_disable() as __initdata and drop an unused function from
           the APEI GHES code (Miaohe Lin)
      
         - Make the ACPI PAD (Processor Aggregator Device) driver realize that
           Zhaoxin CPUs support nonstop TSC (Tony W Wang-oc)
      
         - Drop the certainly unnecessary and likely incorrect inclusion of
           linux/arm-smccc.h from acpi_ffh.c (Sudeep Holla)"
      
      * tag 'acpi-6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (30 commits)
        ACPI: video: Add backlight=native DMI quirk for Dell Studio 1569
        ACPI: thermal: Drop struct acpi_thermal_flags
        ACPI: thermal: Drop struct acpi_thermal_state
        ACPI: bus: Simplify installation and removal of notify callback
        ACPI: tiny-power-button: Eliminate the driver notify callback
        ACPI: button: Use different notify handlers for lid and buttons
        ACPI: button: Eliminate the driver notify callback
        ACPI: thermal: Eliminate struct acpi_thermal_state_flags
        ACPI: thermal: Move acpi_thermal_driver definition
        ACPI: thermal: Move symbol definitions to one place
        ACPI: thermal: Drop redundant ACPI_TRIPS_REFRESH_DEVICES symbol
        ACPI: thermal: Use BIT() macro for defining flags
        APEI: GHES: correctly return NULL for ghes_get_devices()
        ACPI: FFH: Drop the inclusion of linux/arm-smccc.h
        ACPI: PAD: mark Zhaoxin CPUs NONSTOP TSC correctly
        ACPI: APEI: mark bert_disable as __initdata
        ACPI: EC: Clear GPE on interrupt handling only
        ACPI: video: Stop trying to use vendor backlight control on laptops from after ~2012
        ACPI: x86: s2idle: Adjust Microsoft LPS0 _DSM handling sequence
        ACPI: resource: Remove "Zen" specific match and quirks
        ...
      bb695055
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 2605e80d
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
       "Notable features are user-space support for the memcpy/memset
        instructions and the permission indirection extension.
      
         - Support for the Armv8.9 Permission Indirection Extensions. While
           this feature doesn't add new functionality, it enables future
           support for Guarded Control Stacks (GCS) and Permission Overlays
      
         - User-space support for the Armv8.8 memcpy/memset instructions
      
         - arm64 perf: support the HiSilicon SoC uncore PMU, Arm CMN sysfs
           identifier, support for the NXP i.MX9 SoC DDRC PMU, fixes and
           cleanups
      
         - Removal of superfluous ISBs on context switch (following
           retrospective architecture tightening)
      
         - Decode the ISS2 register during faults for additional information
           to help with debugging
      
         - KPTI clean-up/simplification of the trampoline exit code
      
         - Addressing several -Wmissing-prototype warnings
      
         - Kselftest improvements for signal handling and ptrace
      
         - Fix TPIDR2_EL0 restoring on sigreturn
      
         - Clean-up, robustness improvements of the module allocation code
      
         - More sysreg conversions to the automatic register/bitfields
           generation
      
         - CPU capabilities handling cleanup
      
         - Arm documentation updates: ACPI, ptdump"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (124 commits)
        kselftest/arm64: Add a test case for TPIDR2 restore
        arm64/signal: Restore TPIDR2 register rather than memory state
        arm64: alternatives: make clean_dcache_range_nopatch() noinstr-safe
        Documentation/arm64: Add ptdump documentation
        arm64: hibernate: remove WARN_ON in save_processor_state
        kselftest/arm64: Log signal code and address for unexpected signals
        docs: perf: Fix warning from 'make htmldocs' in hisi-pmu.rst
        arm64/fpsimd: Exit streaming mode when flushing tasks
        docs: perf: Add new description for HiSilicon UC PMU
        drivers/perf: hisi: Add support for HiSilicon UC PMU driver
        drivers/perf: hisi: Add support for HiSilicon H60PA and PAv3 PMU driver
        perf: arm_cspmu: Add missing MODULE_DEVICE_TABLE
        perf/arm-cmn: Add sysfs identifier
        perf/arm-cmn: Revamp model detection
        perf/arm_dmc620: Add cpumask
        arm64: mm: fix VA-range sanity check
        arm64/mm: remove now-superfluous ISBs from TTBR writes
        Documentation/arm64: Update ACPI tables from BBR
        Documentation/arm64: Update references in arm-acpi
        Documentation/arm64: Update ARM and arch reference
        ...
      2605e80d
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 2b603cd5
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - lots of build cleanups from Arnd spread throughout the arch/arm tree
      
       - replace strlcpy() with the preferred strscpy()
      
       - use sign_extend32() in the module linker
      
       - drop handle_irq() machine descriptor method
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 9315/1: fiq: include asm/mach/irq.h for prototypes
        ARM: 9314/1: tcm: move tcm_init() prototype to asm/tcm.h
        ARM: 9313/1: vdso: add missing prototypes
        ARM: 9312/1: vfp: include asm/neon.h in vfpmodule.c
        ARM: 9311/1: decompressor: move function prototypes to misc.h
        ARM: 9310/1: xip-kernel: add __inflate_kernel_data prototype
        ARM: 9309/1: add missing syscall prototypes
        ARM: 9308/1: move setup functions to header
        ARM: 9307/1: nommu: include asm/idmap.h
        ARM: 9306/1: cacheflush: avoid __flush_anon_page() missing-prototype warning
        ARM: 9305/1: add clear/copy_user_highpage declarations
        ARM: 9304/1: add prototype for function called only from asm
        ARM: 9303/1: kprobes: avoid missing-declaration warnings
        ARM: 9302/1: traps: hide unused functions on NOMMU
        ARM: 9301/1: dma-mapping: hide unused dma_contiguous_early_fixup function
        ARM: 9300/1: Replace all non-returning strlcpy with strscpy
        ARM: 9299/1: module: use sign_extend32() to extend the signedness
        ARM: 9298/1: Drop custom mdesc->handle_irq()
      2b603cd5
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.5-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · f810c182
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
        - miscellaneous NuBus fixes and improvements
      
        - defconfig updates
      
      * tag 'm68k-for-v6.5-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: defconfig: Update defconfigs for v6.4-rc1
        nubus: Don't list slot resources by default
        nubus: Remove proc entries before adding them
        nubus: Partially revert proc_create_single_data() conversion
      f810c182
  2. 26 Jun, 2023 13 commits
    • Linus Torvalds's avatar
      Merge tag 'x86_cleanups_for_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 19300488
      Linus Torvalds authored
      Pull x86 cleanups from Dave Hansen:
       "As usual, these are all over the map. The biggest cluster is work from
        Arnd to eliminate -Wmissing-prototype warnings:
      
         - Address -Wmissing-prototype warnings
      
         - Remove repeated 'the' in comments
      
         - Remove unused current_untag_mask()
      
         - Document urgent tip branch timing
      
         - Clean up MSR kernel-doc notation
      
         - Clean up paravirt_ops doc
      
         - Update Srivatsa S. Bhat's maintained areas
      
         - Remove unused extern declaration acpi_copy_wakeup_routine()"
      
      * tag 'x86_cleanups_for_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        x86/acpi: Remove unused extern declaration acpi_copy_wakeup_routine()
        Documentation: virt: Clean up paravirt_ops doc
        x86/mm: Remove unused current_untag_mask()
        x86/mm: Remove repeated word in comments
        x86/lib/msr: Clean up kernel-doc notation
        x86/platform: Avoid missing-prototype warnings for OLPC
        x86/mm: Add early_memremap_pgprot_adjust() prototype
        x86/usercopy: Include arch_wb_cache_pmem() declaration
        x86/vdso: Include vdso/processor.h
        x86/mce: Add copy_mc_fragile_handle_tail() prototype
        x86/fbdev: Include asm/fb.h as needed
        x86/hibernate: Declare global functions in suspend.h
        x86/entry: Add do_SYSENTER_32() prototype
        x86/quirks: Include linux/pnp.h for arch_pnpbios_disabled()
        x86/mm: Include asm/numa.h for set_highmem_pages_init()
        x86: Avoid missing-prototype warnings for doublefault code
        x86/fpu: Include asm/fpu/regset.h
        x86: Add dummy prototype for mk_early_pgtbl_32()
        x86/pci: Mark local functions as 'static'
        x86/ftrace: Move prepare_ftrace_return prototype to header
        ...
      19300488
    • Linus Torvalds's avatar
      Merge tag 'x86_tdx_for_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5dfe7a7e
      Linus Torvalds authored
      Pull x86 tdx updates from Dave Hansen:
      
       - Fix a race window where load_unaligned_zeropad() could cause a fatal
         shutdown during TDX private<=>shared conversion
      
         The race has never been observed in practice but might allow
         load_unaligned_zeropad() to catch a TDX page in the middle of its
         conversion process which would lead to a fatal and unrecoverable
         guest shutdown.
      
       - Annotate sites where VM "exit reasons" are reused as hypercall
         numbers.
      
      * tag 'x86_tdx_for_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Fix enc_status_change_finish_noop()
        x86/tdx: Fix race between set_memory_encrypted() and load_unaligned_zeropad()
        x86/mm: Allow guest.enc_status_change_prepare() to fail
        x86/tdx: Wrap exit reason with hcall_func()
      5dfe7a7e
    • Linus Torvalds's avatar
      Merge tag 'x86_platform_for_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36db3144
      Linus Torvalds authored
      Pull x86 platform updates from Dave Hansen:
       "Allow CPUs in SGX/HPE Ultraviolet to start using Sub-NUMA clustering
        (SNC) mode. SNC has been around outside the UV world for a while but
        evidently never worked on UV systems.
      
        SNC is rather notorious for breaking bad assumptions of a 1:1
        relationship between physical sockets and NUMA nodes. The UV code was
        rather prolific with these assumptions and took quite a bit of
        refactoring to remove them"
      
      * tag 'x86_platform_for_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/uv: Update UV[23] platform code for SNC
        x86/platform/uv: Remove remaining BUG_ON() and BUG() calls
        x86/platform/uv: UV support for sub-NUMA clustering
        x86/platform/uv: Helper functions for allocating and freeing conversion tables
        x86/platform/uv: When searching for minimums, start at INT_MAX not 99999
        x86/platform/uv: Fix printed information in calc_mmioh_map
        x86/platform/uv: Introduce helper function uv_pnode_to_socket.
        x86/platform/uv: Add platform resolving #defines for misc GAM_MMIOH_REDIRECT*
      36db3144
    • Linus Torvalds's avatar
      Merge tag 'x86_irq_for_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a3d763f0
      Linus Torvalds authored
      Pull x86 irq updates from Dave Hansen:
       "Add Hyper-V interrupts to /proc/stat"
      
      * tag 'x86_irq_for_6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/irq: Add hardcoded hypervisor interrupts to /proc/stat
      a3d763f0
    • Linus Torvalds's avatar
      Merge tag 'x86_cpu_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 941d77c7
      Linus Torvalds authored
      Pull x86 cpu updates from Borislav Petkov:
      
       - Compute the purposeful misalignment of zen_untrain_ret automatically
         and assert __x86_return_thunk's alignment so that future changes to
         the symbol macros do not accidentally break them.
      
       - Remove CONFIG_X86_FEATURE_NAMES Kconfig option as its existence is
         pointless
      
      * tag 'x86_cpu_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/retbleed: Add __x86_return_thunk alignment checks
        x86/cpu: Remove X86_FEATURE_NAMES
        x86/Kconfig: Make X86_FEATURE_NAMES non-configurable in prompt
      941d77c7
    • Linus Torvalds's avatar
      Merge tag 'x86_cc_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2c96136a
      Linus Torvalds authored
      Pull x86 confidential computing update from Borislav Petkov:
      
       - Add support for unaccepted memory as specified in the UEFI spec v2.9.
      
         The gist of it all is that Intel TDX and AMD SEV-SNP confidential
         computing guests define the notion of accepting memory before using
         it and thus preventing a whole set of attacks against such guests
         like memory replay and the like.
      
         There are a couple of strategies of how memory should be accepted -
         the current implementation does an on-demand way of accepting.
      
      * tag 'x86_cc_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        virt: sevguest: Add CONFIG_CRYPTO dependency
        x86/efi: Safely enable unaccepted memory in UEFI
        x86/sev: Add SNP-specific unaccepted memory support
        x86/sev: Use large PSC requests if applicable
        x86/sev: Allow for use of the early boot GHCB for PSC requests
        x86/sev: Put PSC struct on the stack in prep for unaccepted memory support
        x86/sev: Fix calculation of end address based on number of pages
        x86/tdx: Add unaccepted memory support
        x86/tdx: Refactor try_accept_one()
        x86/tdx: Make _tdx_hypercall() and __tdx_module_call() available in boot stub
        efi/unaccepted: Avoid load_unaligned_zeropad() stepping into unaccepted memory
        efi: Add unaccepted memory support
        x86/boot/compressed: Handle unaccepted memory
        efi/libstub: Implement support for unaccepted memory
        efi/x86: Get full memory map in allocate_e820()
        mm: Add support for unaccepted memory
      2c96136a
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3e5822e0
      Linus Torvalds authored
      Pull x86 resource control updates from Borislav Petkov:
      
       - Implement a rename operation in resctrlfs to facilitate handling of
         application containers with dynamically changing task lists
      
       - When reading the tasks file, show the tasks' pid which are only in
         the current namespace as opposed to showing the pids from the init
         namespace too
      
       - Other fixes and improvements
      
      * tag 'x86_cache_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Documentation/x86: Documentation for MON group move feature
        x86/resctrl: Implement rename op for mon groups
        x86/resctrl: Factor rdtgroup lock for multi-file ops
        x86/resctrl: Only show tasks' pid in current pid namespace
      3e5822e0
    • Linus Torvalds's avatar
      Merge tag 'x86_build_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 59035135
      Linus Torvalds authored
      Pull x86 build update from Borislav Petkov:
      
       - Remove relocation information from vmlinux as it is not needed by
         other tooling and thus a slimmer binary is generated.
      
         This is important for distros who have to distribute vmlinux blobs
         with their kernel packages too and that extraneous unnecessary data
         bloats them for no good reason
      
      * tag 'x86_build_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build: Avoid relocation information in final vmlinux
      59035135
    • Linus Torvalds's avatar
      Merge tag 'x86_alternatives_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8c69e7af
      Linus Torvalds authored
      Pull x86 instruction alternatives updates from Borislav Petkov:
      
       - Up until now the Fast Short Rep Mov optimizations implied the
         presence of the ERMS CPUID flag. AMD decoupled them with a BIOS
         setting so decouple that dependency in the kernel code too
      
       - Teach the alternatives machinery to handle relocations
      
       - Make debug_alternative accept flags in order to see only that set of
         patching done one is interested in
      
       - Other fixes, cleanups and optimizations to the patching code
      
      * tag 'x86_alternatives_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/alternative: PAUSE is not a NOP
        x86/alternatives: Add cond_resched() to text_poke_bp_batch()
        x86/nospec: Shorten RESET_CALL_DEPTH
        x86/alternatives: Add longer 64-bit NOPs
        x86/alternatives: Fix section mismatch warnings
        x86/alternative: Optimize returns patching
        x86/alternative: Complicate optimize_nops() some more
        x86/alternative: Rewrite optimize_nops() some
        x86/lib/memmove: Decouple ERMS from FSRM
        x86/alternative: Support relocations in alternatives
        x86/alternative: Make debug-alternative selective
      8c69e7af
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · aa35a483
      Linus Torvalds authored
      Pull RAS updates from Borislav Petkov:
      
       - Add initial support for RAS hardware found on AMD server GPUs (MI200).
      
         Those GPUs and CPUs are connected together through the coherent
         fabric and the GPU memory controllers report errors through x86's MCA
         so EDAC needs to support them. The amd64_edac driver supports now HBM
         (High Bandwidth Memory) and thus such heterogeneous memory controller
         systems
      
       - Other small cleanups and improvements
      
      * tag 'ras_core_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        EDAC/amd64: Cache and use GPU node map
        EDAC/amd64: Add support for AMD heterogeneous Family 19h Model 30h-3Fh
        EDAC/amd64: Document heterogeneous system enumeration
        x86/MCE/AMD, EDAC/mce_amd: Decode UMC_V2 ECC errors
        x86/amd_nb: Re-sort and re-indent PCI defines
        x86/amd_nb: Add MI200 PCI IDs
        ras/debugfs: Fix error checking for debugfs_create_dir()
        x86/MCE: Check a hw error's address to determine proper recovery action
      aa35a483
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · e5ce2f19
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - amd64_edac: Add support for Zen4 client hardware
      
       - amd64_edac: Remove the version string as it is useless and actively
         confusing when looking at backported versions of the driver
      
       - Add a driver for the Nuvoton NPCM memory controller
      
       - A debugfs error checking cleanup
      
      * tag 'edac_updates_for_v6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/npcm: Add NPCM memory controller driver
        dt-bindings: memory-controllers: nuvoton: Add NPCM memory controller
        EDAC/thunderx: Check debugfs file creation retval properly
        EDAC/amd64: Add support for ECC on family 19h model 60h-7Fh
        EDAC/amd64: Remove module version string
      e5ce2f19
    • Linus Torvalds's avatar
      Merge tag 'x86-core-2023-06-26' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tip/tip · 88afbb21
      Linus Torvalds authored
      Pull x86 core updates from Thomas Gleixner:
       "A set of fixes for kexec(), reboot and shutdown issues:
      
         - Ensure that the WBINVD in stop_this_cpu() has been completed before
           the control CPU proceedes.
      
           stop_this_cpu() is used for kexec(), reboot and shutdown to park
           the APs in a HLT loop.
      
           The control CPU sends an IPI to the APs and waits for their CPU
           online bits to be cleared. Once they all are marked "offline" it
           proceeds.
      
           But stop_this_cpu() clears the CPU online bit before issuing
           WBINVD, which means there is no guarantee that the AP has reached
           the HLT loop.
      
           This was reported to cause intermittent reboot/shutdown failures
           due to some dubious interaction with the firmware.
      
           This is not only a problem of WBINVD. The code to actually "stop"
           the CPU which runs between clearing the online bit and reaching the
           HLT loop can cause large enough delays on its own (think
           virtualization). That's especially dangerous for kexec() as kexec()
           expects that all APs are in a safe state and not executing code
           while the boot CPU jumps to the new kernel. There are more issues
           vs kexec() which are addressed separately.
      
           Cure this by implementing an explicit synchronization point right
           before the AP reaches HLT. This guarantees that the AP has
           completed the full stop proceedure.
      
         - Fix the condition for WBINVD in stop_this_cpu().
      
           The WBINVD in stop_this_cpu() is required for ensuring that when
           switching to or from memory encryption no dirty data is left in the
           cache lines which might cause a write back in the wrong more later.
      
           This checks CPUID directly because the feature bit might have been
           cleared due to a command line option.
      
           But that CPUID check accesses leaf 0x8000001f::EAX unconditionally.
           Intel CPUs return the content of the highest supported leaf when a
           non-existing leaf is read, while AMD CPUs return all zeros for
           unsupported leafs.
      
           So the result of the test on Intel CPUs is lottery and on AMD its
           just correct by chance.
      
           While harmless it's incorrect and causes the conditional wbinvd()
           to be issued where not required, which caused the above issue to be
           unearthed.
      
         - Make kexec() robust against AP code execution
      
           Ashok observed triple faults when doing kexec() on a system which
           had been booted with "nosmt".
      
           It turned out that the SMT siblings which had been brought up
           partially are parked in mwait_play_dead() to enable power savings.
      
           mwait_play_dead() is monitoring the thread flags of the AP's idle
           task, which has been chosen as it's unlikely to be written to.
      
           But kexec() can overwrite the previous kernel text and data
           including page tables etc. When it overwrites the cache lines
           monitored by an AP that AP resumes execution after the MWAIT on
           eventually overwritten text, stack and page tables, which obviously
           might end up in a triple fault easily.
      
           Make this more robust in several steps:
      
            1) Use an explicit per CPU cache line for monitoring.
      
            2) Write a command to these cache lines to kick APs out of MWAIT
               before proceeding with kexec(), shutdown or reboot.
      
               The APs confirm the wakeup by writing status back and then
               enter a HLT loop.
      
            3) If the system uses INIT/INIT/STARTUP for AP bringup, park the
               APs in INIT state.
      
               HLT is not a guarantee that an AP won't wake up and resume
               execution. HLT is woken up by NMI and SMI. SMI puts the CPU
               back into HLT (+/- firmware bugs), but NMI is delivered to the
               CPU which executes the NMI handler. Same issue as the MWAIT
               scenario described above.
      
               Sending an INIT/INIT sequence to the APs puts them into wait
               for STARTUP state, which is safe against NMI.
      
           There is still an issue remaining which can't be fixed: #MCE
      
           If the AP sits in HLT and receives a broadcast #MCE it will try to
           handle it with the obvious consequences.
      
           INIT/INIT clears CR4.MCE in the AP which will cause a broadcast
           #MCE to shut down the machine.
      
           So there is a choice between fire (HLT) and frying pan (INIT).
           Frying pan has been chosen as it's at least preventing the NMI
           issue.
      
           On systems which are not using INIT/INIT/STARTUP there is not much
           which can be done right now, but at least the obvious and easy to
           trigger MWAIT issue has been addressed"
      
      * tag 'x86-core-2023-06-26' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/smp: Put CPUs into INIT on shutdown if possible
        x86/smp: Split sending INIT IPI out into a helper function
        x86/smp: Cure kexec() vs. mwait_play_dead() breakage
        x86/smp: Use dedicated cache-line for mwait_play_dead()
        x86/smp: Remove pointless wmb()s from native_stop_other_cpus()
        x86/smp: Dont access non-existing CPUID leaf
        x86/smp: Make stop_other_cpus() more robust
      88afbb21
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2023-06-26' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tip/tip · cd336f65
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "Time, timekeeping and related device driver updates:
      
        Core:
      
         - A set of fixes, cleanups and enhancements to the posix timer code:
      
             - Prevent another possible live lock scenario in the exit() path,
               which affects POSIX_CPU_TIMERS_TASK_WORK enabled architectures.
      
             - Fix a loop termination issue which was reported syzcaller/KSAN
               in the posix timer ID allocation code.
      
               That triggered a deeper look into the posix-timer code which
               unearthed more small issues.
      
             - Add missing READ/WRITE_ONCE() annotations
      
             - Fix or remove completely outdated comments
      
             - Document places which are subtle and completely undocumented.
      
         - Add missing hrtimer modes to the trace event decoder
      
         - Small cleanups and enhancements all over the place
      
        Drivers:
      
         - Rework the Hyper-V clocksource and sched clock setup code
      
         - Remove a deprecated clocksource driver
      
         - Small fixes and enhancements all over the place"
      
      * tag 'timers-core-2023-06-26' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
        clocksource/drivers/cadence-ttc: Fix memory leak in ttc_timer_probe
        dt-bindings: timers: Add Ralink SoCs timer
        clocksource/drivers/hyper-v: Rework clocksource and sched clock setup
        dt-bindings: timer: brcm,kona-timer: convert to YAML
        clocksource/drivers/imx-gpt: Fold <soc/imx/timer.h> into its only user
        clk: imx: Drop inclusion of unused header <soc/imx/timer.h>
        hrtimer: Add missing sparse annotations to hrtimer locking
        clocksource/drivers/imx-gpt: Use only a single name for functions
        clocksource/drivers/loongson1: Move PWM timer to clocksource framework
        dt-bindings: timer: Add Loongson-1 clocksource
        MIPS: Loongson32: Remove deprecated PWM timer clocksource
        clocksource/drivers/ingenic-timer: Use pm_sleep_ptr() macro
        tracing/timer: Add missing hrtimer modes to decode_hrtimer_mode().
        posix-timers: Add sys_ni_posix_timers() prototype
        tick/rcu: Fix bogus ratelimit condition
        alarmtimer: Remove unnecessary (void *) cast
        alarmtimer: Remove unnecessary initialization of variable 'ret'
        posix-timers: Refer properly to CONFIG_HIGH_RES_TIMERS
        posix-timers: Polish coding style in a few places
        posix-timers: Remove pointless comments
        ...
      cd336f65