1. 24 Mar, 2024 20 commits
  2. 23 Mar, 2024 11 commits
    • Linus Torvalds's avatar
      Merge tag 'timers-urgent-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 70293240
      Linus Torvalds authored
      Pull timer fixes from Thomas Gleixner:
       "Two regression fixes for the timer and timer migration code:
      
         - Prevent endless timer requeuing which is caused by two CPUs racing
           out of idle. This happens when the last CPU goes idle and therefore
           has to ensure to expire the pending global timers and some other
           CPU come out of idle at the same time and the other CPU wins the
           race and expires the global queue. This causes the last CPU to
           chase ghost timers forever and reprogramming it's clockevent device
           endlessly.
      
           Cure this by re-evaluating the wakeup time unconditionally.
      
         - The split into local (pinned) and global timers in the timer wheel
           caused a regression for NOHZ full as it broke the idle tracking of
           global timers. On NOHZ full this prevents an self IPI being sent
           which in turn causes the timer to be not programmed and not being
           expired on time.
      
           Restore the idle tracking for the global timer base so that the
           self IPI condition for NOHZ full is working correctly again"
      
      * tag 'timers-urgent-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timers: Fix removed self-IPI on global timer's enqueue in nohz_full
        timers/migration: Fix endless timer requeue after idle interrupts
      70293240
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 00164f47
      Linus Torvalds authored
      Pull more clocksource updates from Thomas Gleixner:
       "A set of updates for clocksource and clockevent drivers:
      
         - A fix for the prescaler of the ARM global timer where the prescaler
           mask define only covered 4 bits while it is actully 8 bits wide.
           This obviously restricted the possible range of prescaler
           adjustments
      
         - A fix for the RISC-V timer which prevents a timer interrupt being
           raised while the timer is initialized
      
         - A set of device tree updates to support new system on chips in
           various drivers
      
         - Kernel-doc and other cleanups all over the place"
      
      * tag 'timers-core-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource/drivers/timer-riscv: Clear timer interrupt on timer initialization
        dt-bindings: timer: Add support for cadence TTC PWM
        clocksource/drivers/arm_global_timer: Simplify prescaler register access
        clocksource/drivers/arm_global_timer: Guard against division by zero
        clocksource/drivers/arm_global_timer: Make gt_target_rate unsigned long
        dt-bindings: timer: add Ralink SoCs system tick counter
        clocksource: arm_global_timer: fix non-kernel-doc comment
        clocksource/drivers/arm_global_timer: Remove stray tab
        clocksource/drivers/arm_global_timer: Fix maximum prescaler value
        clocksource/drivers/imx-sysctr: Add i.MX95 support
        clocksource/drivers/imx-sysctr: Drop use global variables
        dt-bindings: timer: nxp,sysctr-timer: support i.MX95
        dt-bindings: timer: renesas: ostm: Document RZ/Five SoC
        dt-bindings: timer: renesas,tmu: Document input capture interrupt
        clocksource/drivers/ti-32K: Fix misuse of "/**" comment
        clocksource/drivers/stm32: Fix all kernel-doc warnings
        dt-bindings: timer: exynos4210-mct: Add google,gs101-mct compatible
        clocksource/drivers/imx: Fix -Wunused-but-set-variable warning
      00164f47
    • Linus Torvalds's avatar
      Merge tag 'irq-urgent-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1a391931
      Linus Torvalds authored
      Pull irq fixes from Thomas Gleixner:
       "A series of fixes for the Renesas RZG21 interrupt chip driver to
        prevent spurious and misrouted interrupts.
      
         - Ensure that posted writes are flushed in the eoi() callback
      
         - Ensure that interrupts are masked at the chip level when the
           trigger type is changed
      
         - Clear the interrupt status register when setting up edge type
           trigger modes
      
         - Ensure that the trigger type and routing information is set before
           the interrupt is enabled"
      
      * tag 'irq-urgent-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/renesas-rzg2l: Do not set TIEN and TINT source at the same time
        irqchip/renesas-rzg2l: Prevent spurious interrupts when setting trigger type
        irqchip/renesas-rzg2l: Rename rzg2l_irq_eoi()
        irqchip/renesas-rzg2l: Rename rzg2l_tint_eoi()
        irqchip/renesas-rzg2l: Flush posted write in irq_eoi()
      1a391931
    • Linus Torvalds's avatar
      Merge tag 'core-entry-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 976b029d
      Linus Torvalds authored
      Pull core entry fix from Thomas Gleixner:
       "A single fix for the generic entry code:
      
        The trace_sys_enter() tracepoint can modify the syscall number via
        kprobes or BPF in pt_regs, but that requires that the syscall number
        is re-evaluted from pt_regs after the tracepoint.
      
        A seccomp fix in that area removed the re-evaluation so the change
        does not take effect as the code just uses the locally cached number.
      
        Restore the original behaviour by re-evaluating the syscall number
        after the tracepoint"
      
      * tag 'core-entry-2024-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        entry: Respect changes to system call number by trace_sys_enter()
      976b029d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 484193fe
      Linus Torvalds authored
      Pull more powerpc updates from Michael Ellerman:
      
       - Handle errors in mark_rodata_ro() and mark_initmem_nx()
      
       - Make struct crash_mem available without CONFIG_CRASH_DUMP
      
      Thanks to Christophe Leroy and Hari Bathini.
      
      * tag 'powerpc-6.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kdump: Split KEXEC_CORE and CRASH_DUMP dependency
        powerpc/kexec: split CONFIG_KEXEC_FILE and CONFIG_CRASH_DUMP
        kexec/kdump: make struct crash_mem available without CONFIG_CRASH_DUMP
        powerpc: Handle error in mark_rodata_ro() and mark_initmem_nx()
      484193fe
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 02fb638b
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - remove a misuse of kernel-doc comment
      
       - use "Call trace:" for backtraces like other architectures
      
       - implement copy_from_kernel_nofault_allowed() to fix a LKDTM test
      
       - add a "cut here" line for prefetch aborts
      
       - remove unnecessary Kconfing entry for FRAME_POINTER
      
       - remove iwmmxy support for PJ4/PJ4B cores
      
       - use bitfield helpers in ptrace to improve readabililty
      
       - check if folio is reserved before flushing
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses
        ARM: 9354/1: ptrace: Use bitfield helpers
        ARM: 9352/1: iwmmxt: Remove support for PJ4/PJ4B cores
        ARM: 9353/1: remove unneeded entry for CONFIG_FRAME_POINTER
        ARM: 9351/1: fault: Add "cut here" line for prefetch aborts
        ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()
        ARM: 9349/1: unwind: Add missing "Call trace:" line
        ARM: 9334/1: mm: init: remove misuse of kernel-doc comment
      02fb638b
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.9-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · b7187139
      Linus Torvalds authored
      Pull more hardening updates from Kees Cook:
      
       - CONFIG_MEMCPY_SLOW_KUNIT_TEST is no longer needed (Guenter Roeck)
      
       - Fix needless UTF-8 character in arch/Kconfig (Liu Song)
      
       - Improve __counted_by warning message in LKDTM (Nathan Chancellor)
      
       - Refactor DEFINE_FLEX() for default use of __counted_by
      
       - Disable signed integer overflow sanitizer on GCC < 8
      
      * tag 'hardening-v6.9-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        lkdtm/bugs: Improve warning message for compilers without counted_by support
        overflow: Change DEFINE_FLEX to take __counted_by member
        Revert "kunit: memcpy: Split slow memcpy tests into MEMCPY_SLOW_KUNIT_TEST"
        arch/Kconfig: eliminate needless UTF-8 character in Kconfig help
        ubsan: Disable signed integer overflow sanitizer on GCC < 8
      b7187139
    • Thomas Gleixner's avatar
      x86/mpparse: Register APIC address only once · f2208aa1
      Thomas Gleixner authored
      The APIC address is registered twice. First during the early detection and
      afterwards when actually scanning the table for APIC IDs. The APIC and
      topology core warn about the second attempt.
      
      Restrict it to the early detection call.
      
      Fixes: 81287ad6 ("x86/apic: Sanitize APIC address setup")
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Link: https://lore.kernel.org/r/20240322185305.297774848@linutronix.de
      f2208aa1
    • Thomas Gleixner's avatar
      x86/topology: Handle the !APIC case gracefully · 5e25eb25
      Thomas Gleixner authored
      If there is no local APIC enumerated and registered then the topology
      bitmaps are empty. Therefore, topology_init_possible_cpus() will die with
      a division by zero exception.
      
      Prevent this by registering a fake APIC id to populate the topology
      bitmap. This also allows to use all topology query interfaces
      unconditionally. It does not affect the actual APIC code because either
      the local APIC address was not registered or no local APIC could be
      detected.
      
      Fixes: f1f758a8 ("x86/topology: Add a mechanism to track topology via APIC IDs")
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Link: https://lore.kernel.org/r/20240322185305.242709302@linutronix.de
      5e25eb25
    • Thomas Gleixner's avatar
      x86/topology: Don't evaluate logical IDs during early boot · 7af541ce
      Thomas Gleixner authored
      The local APICs have not yet been enumerated so the logical ID evaluation
      from the topology bitmaps does not work and would return an error code.
      
      Skip the evaluation during the early boot CPUID evaluation and only apply
      it on the final run.
      
      Fixes: 380414be ("x86/cpu/topology: Use topology logical mapping mechanism")
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Link: https://lore.kernel.org/r/20240322185305.186943142@linutronix.de
      7af541ce
    • Thomas Gleixner's avatar
      x86/cpu: Ensure that CPU info updates are propagated on UP · c90399fb
      Thomas Gleixner authored
      The boot sequence evaluates CPUID information twice:
      
        1) During early boot
      
        2) When finalizing the early setup right before
           mitigations are selected and alternatives are patched.
      
      In both cases the evaluation is stored in boot_cpu_data, but on UP the
      copying of boot_cpu_data to the per CPU info of the boot CPU happens
      between #1 and #2. So any update which happens in #2 is never propagated to
      the per CPU info instance.
      
      Consolidate the whole logic and copy boot_cpu_data right before applying
      alternatives as that's the point where boot_cpu_data is in it's final
      state and not supposed to change anymore.
      
      This also removes the voodoo mb() from smp_prepare_cpus_common() which
      had absolutely no purpose.
      
      Fixes: 71eb4893 ("x86/percpu: Cure per CPU madness on UP")
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarBorislav Petkov (AMD) <bp@alien8.de>
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Link: https://lore.kernel.org/r/20240322185305.127642785@linutronix.de
      c90399fb
  3. 22 Mar, 2024 9 commits
    • Nathan Chancellor's avatar
      lkdtm/bugs: Improve warning message for compilers without counted_by support · 231dc3f0
      Nathan Chancellor authored
      The current message for telling the user that their compiler does not
      support the counted_by attribute in the FAM_BOUNDS test does not make
      much sense either grammatically or semantically. Fix it to make it
      correct in both aspects.
      Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
      Reviewed-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Link: https://lore.kernel.org/r/20240321-lkdtm-improve-lack-of-counted_by-msg-v1-1-0fbf7481a29c@kernel.orgSigned-off-by: default avatarKees Cook <keescook@chromium.org>
      231dc3f0
    • Kees Cook's avatar
      overflow: Change DEFINE_FLEX to take __counted_by member · d8e45f29
      Kees Cook authored
      The norm should be flexible array structures with __counted_by
      annotations, so DEFINE_FLEX() is updated to expect that. Rename
      the non-annotated version to DEFINE_RAW_FLEX(), and update the
      few existing users. Additionally add selftests for the macros.
      Reviewed-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
      Link: https://lore.kernel.org/r/20240306235128.it.933-kees@kernel.orgReviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
      Signed-off-by: default avatarKees Cook <keescook@chromium.org>
      d8e45f29
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · bfa8f186
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "The vfs has long had a write lifetime hint mechanism that gives the
        expected longevity on storage of the data being written. f2fs was the
        original consumer of this and used the hint for flash data placement
        (mostly to avoid write amplification by placing objects with similar
        lifetimes in the same erase block).
      
        More recently the SCSI based UFS (Universal Flash Storage) drivers
        have wanted to take advantage of this as well, for the same reasons as
        f2fs, necessitating plumbing the write hints through the block layer
        and then adding it to the SCSI core.
      
        The vfs write_hints already taken plumbs this as far as block and this
        completes the SCSI core enabling based on a recently agreed reuse of
        the old write command group number. The additions to the scsi_debug
        driver are for emulating this property so we can run tests on it in
        the absence of an actual UFS device"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: scsi_debug: Maintain write statistics per group number
        scsi: scsi_debug: Implement GET STREAM STATUS
        scsi: scsi_debug: Implement the IO Advice Hints Grouping mode page
        scsi: scsi_debug: Allocate the MODE SENSE response from the heap
        scsi: scsi_debug: Rework subpage code error handling
        scsi: scsi_debug: Rework page code error handling
        scsi: scsi_debug: Support the block limits extension VPD page
        scsi: scsi_debug: Reduce code duplication
        scsi: sd: Translate data lifetime information
        scsi: scsi_proto: Add structures and constants related to I/O groups and streams
        scsi: core: Query the Block Limits Extension VPD page
      bfa8f186
    • Linus Torvalds's avatar
      Merge tag 'block-6.9-20240322' of git://git.kernel.dk/linux · e3111d9c
      Linus Torvalds authored
      Pull more block updates from Jens Axboe:
      
       - NVMe pull request via Keith:
           - Make an informative message less ominous (Keith)
           - Enhanced trace decoding (Guixin)
           - TCP updates (Hannes, Li)
           - Fabrics connect deadlock fix (Chunguang)
           - Platform API migration update (Uwe)
           - A new device quirk (Jiawei)
      
       - Remove dead assignment in fd (Yufeng)
      
      * tag 'block-6.9-20240322' of git://git.kernel.dk/linux:
        nvmet-rdma: remove NVMET_RDMA_REQ_INVALIDATE_RKEY flag
        nvme: remove redundant BUILD_BUG_ON check
        floppy: remove duplicated code in redo_fd_request()
        nvme/tcp: Add wq_unbound modparam for nvme_tcp_wq
        nvme-tcp: Export the nvme_tcp_wq to sysfs
        drivers/nvme: Add quirks for device 126f:2262
        nvme: parse format command's lbafu when tracing
        nvme: add tracing of reservation commands
        nvme: parse zns command's zsa and zrasf to string
        nvme: use nvme_disk_is_ns_head helper
        nvme: fix reconnection fail due to reserved tag allocation
        nvmet: add tracing of zns commands
        nvmet: add tracing of authentication commands
        nvme-apple: Convert to platform remove callback returning void
        nvmet-tcp: do not continue for invalid icreq
        nvme: change shutdown timeout setting message
      e3111d9c
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.9-20240322' of git://git.kernel.dk/linux · 19dba097
      Linus Torvalds authored
      Pull more io_uring updates from Jens Axboe:
       "One patch just missed the initial pull, the rest are either fixes or
        small cleanups that make our life easier for the next kernel:
      
         - Fix a potential leak in error handling of pinned pages, and clean
           it up (Gabriel, Pavel)
      
         - Fix an issue with how read multishot returns retry (me)
      
         - Fix a problem with waitid/futex removals, if we hit the case of
           needing to remove all of them at exit time (me)
      
         - Fix for a regression introduced in this merge window, where we
           don't always have sr->done_io initialized if the ->prep_async()
           path is used (me)
      
         - Fix for SQPOLL setup error handling (me)
      
         - Fix for a poll removal request being delayed (Pavel)
      
         - Rename of a struct member which had a confusing name (Pavel)"
      
      * tag 'io_uring-6.9-20240322' of git://git.kernel.dk/linux:
        io_uring/sqpoll: early exit thread if task_context wasn't allocated
        io_uring: clear opcode specific data for an early failure
        io_uring/net: ensure async prep handlers always initialize ->done_io
        io_uring/waitid: always remove waitid entry for cancel all
        io_uring/futex: always remove futex entry for cancel all
        io_uring: fix poll_remove stalled req completion
        io_uring: Fix release of pinned pages when __io_uaddr_map fails
        io_uring/kbuf: rename is_mapped
        io_uring: simplify io_pages_free
        io_uring: clean rings on NO_MMAP alloc fail
        io_uring/rw: return IOU_ISSUE_SKIP_COMPLETE for multishot retry
        io_uring: don't save/restore iowait state
      19dba097
    • Linus Torvalds's avatar
      Merge tag 'for-6.9/dm-fixes' of... · 64f799ff
      Linus Torvalds authored
      Merge tag 'for-6.9/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - Fix a memory leak in DM integrity recheck code that was added during
         the 6.9 merge. Also fix the recheck code to ensure it issues bios
         with proper alignment.
      
       - Fix DM snapshot's dm_exception_table_exit() to schedule while
         handling an large exception table during snapshot device shutdown.
      
      * tag 'for-6.9/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm-integrity: align the outgoing bio in integrity_recheck
        dm snapshot: fix lockup in dm_exception_table_exit
        dm-integrity: fix a memory leak when rechecking the data
      64f799ff
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-6.9-rc1' of https://github.com/ceph/ceph-client · ff9c18e4
      Linus Torvalds authored
      Pull ceph updates from Ilya Dryomov:
       "A patch to minimize blockage when processing very large batches of
        dirty caps and two fixes to better handle EOF in the face of multiple
        clients performing reads and size-extending writes at the same time"
      
      * tag 'ceph-for-6.9-rc1' of https://github.com/ceph/ceph-client:
        ceph: set correct cap mask for getattr request for read
        ceph: stop copying to iter at EOF on sync reads
        ceph: remove SLAB_MEM_SPREAD flag usage
        ceph: break the check delayed cap loop every 5s
      ff9c18e4
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.9-merge-9' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 6f6efce5
      Linus Torvalds authored
      Pull xfs fixes from Chandan Babu:
      
       - Fix invalid pointer dereference by initializing xmbuf before
         tracepoint function is invoked
      
       - Use memalloc_nofs_save() when inserting into quota radix tree
      
      * tag 'xfs-6.9-merge-9' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: quota radix tree allocations need to be NOFS on insert
        xfs: fix dev_t usage in xmbuf tracepoints
      6f6efce5
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-6.9-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · c150b809
      Linus Torvalds authored
      Pull RISC-V updates from Palmer Dabbelt:
      
       - Support for various vector-accelerated crypto routines
      
       - Hibernation is now enabled for portable kernel builds
      
       - mmap_rnd_bits_max is larger on systems with larger VAs
      
       - Support for fast GUP
      
       - Support for membarrier-based instruction cache synchronization
      
       - Support for the Andes hart-level interrupt controller and PMU
      
       - Some cleanups around unaligned access speed probing and Kconfig
         settings
      
       - Support for ACPI LPI and CPPC
      
       - Various cleanus related to barriers
      
       - A handful of fixes
      
      * tag 'riscv-for-linus-6.9-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (66 commits)
        riscv: Fix syscall wrapper for >word-size arguments
        crypto: riscv - add vector crypto accelerated AES-CBC-CTS
        crypto: riscv - parallelize AES-CBC decryption
        riscv: Only flush the mm icache when setting an exec pte
        riscv: Use kcalloc() instead of kzalloc()
        riscv/barrier: Add missing space after ','
        riscv/barrier: Consolidate fence definitions
        riscv/barrier: Define RISCV_FULL_BARRIER
        riscv/barrier: Define __{mb,rmb,wmb}
        RISC-V: defconfig: Enable CONFIG_ACPI_CPPC_CPUFREQ
        cpufreq: Move CPPC configs to common Kconfig and add RISC-V
        ACPI: RISC-V: Add CPPC driver
        ACPI: Enable ACPI_PROCESSOR for RISC-V
        ACPI: RISC-V: Add LPI driver
        cpuidle: RISC-V: Move few functions to arch/riscv
        riscv: Introduce set_compat_task() in asm/compat.h
        riscv: Introduce is_compat_thread() into compat.h
        riscv: add compile-time test into is_compat_task()
        riscv: Replace direct thread flag check with is_compat_task()
        riscv: Improve arch_get_mmap_end() macro
        ...
      c150b809