Skip to content
Snippets Groups Projects
  1. Jan 21, 2025
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 95ec54a4
      Linus Torvalds authored
      Pull powerpc updates from Madhavan Srinivasan:
      
       - Add preempt lazy support
      
       - Deprecate cxl and cxl flash driver
      
       - Fix a possible IOMMU related OOPS at boot on pSeries
      
       - Optimize sched_clock() in ppc32 by replacing mulhdu() by
         mul_u64_u64_shr()
      
      Thanks to Andrew Donnellan, Andy Shevchenko, Ankur Arora, Christophe
      Leroy, Frederic Barrat, Gaurav Batra, Luis Felipe Hernandez, Michael
      Ellerman, Nilay Shroff, Ricardo B.  Marliere, Ritesh Harjani (IBM),
      Sebastian Andrzej Siewior, Shrikanth Hegde, Sourabh Jain, Thorsten Blum,
      and Zhu Jun.
      
      * tag 'powerpc-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        selftests/powerpc: Fix argument order to timer_sub()
        powerpc/prom_init: Use IS_ENABLED()
        powerpc/pseries/iommu: IOMMU incorrectly marks MMIO range in DDW
        powerpc: Use str_on_off() helper in check_cache_coherency()
        powerpc: Large user copy aware of full:rt:lazy preemption
        powerpc: Add preempt lazy support
        powerpc/book3s64/hugetlb: Fix disabling hugetlb when fadump is active
        powerpc/vdso: Mark the vDSO code read-only after init
        powerpc/64: Use get_user() in start_thread()
        macintosh: declare ctl_table as const
        selftest/powerpc/ptrace: Cleanup duplicate macro definitions
        selftest/powerpc/ptrace/ptrace-pkey: Remove duplicate macros
        selftest/powerpc/ptrace/core-pkey: Remove duplicate macros
        powerpc/8xx: Drop legacy-of-mm-gpiochip.h header
        scsi/cxlflash: Deprecate driver
        cxl: Deprecate driver
        selftests/powerpc: Fix typo in test-vphn.c
        powerpc/xmon: Use str_yes_no() helper in dump_one_paca()
        powerpc/32: Replace mulhdu() by mul_u64_u64_shr()
      95ec54a4
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 9ad09c4f
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "We've got a little less than normal thanks to the holidays in
        December, but there's the usual summary below. The highlight is
        probably the 52-bit physical addressing (LPA2) clean-up from Ard.
      
        Confidential Computing:
      
         - Register a platform device when running in CCA realm mode to enable
           automatic loading of dependent modules
      
        CPU Features:
      
         - Update a bunch of system register definitions to pick up new field
           encodings from the architectural documentation
      
         - Add hwcaps and selftests for the new (2024) dpISA extensions
      
        Documentation:
      
         - Update EL3 (firmware) requirements for booting Linux on modern
           arm64 designs
      
         - Remove stale information about the kernel virtual memory map
      
        Miscellaneous:
      
         - Minor cleanups and typo fixes
      
        Memory management:
      
         - Fix vmemmap_check_pmd() to look at the PMD type bits
      
         - LPA2 (52-bit physical addressing) cleanups and minor fixes
      
         - Adjust physical address space depending upon whether or not LPA2 is
           enabled
      
        Perf and PMUs:
      
         - Add port filtering support for NVIDIA's NVLINK-C2C Coresight PMU
      
         - Extend AXI filtering support for the DDR PMU on NXP IMX SoCs
      
         - Fix Designware PCIe PMU event numbering
      
         - Add generic branch events for the Apple M1 CPU PMU
      
         - Add support for Marvell Odyssey DDR and LLC-TAD PMUs
      
         - Cleanups to the Hisilicon DDRC and Uncore PMU code
      
         - Advertise discard mode for the SPE PMU
      
         - Add the perf users mailing list to our MAINTAINERS entry"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (64 commits)
        Documentation: arm64: Remove stale and redundant virtual memory diagrams
        perf docs: arm_spe: Document new discard mode
        perf: arm_spe: Add format option for discard mode
        MAINTAINERS: Add perf list for drivers/perf/
        arm64: Remove duplicate included header
        drivers/perf: apple_m1: Map generic branch events
        arm64: rsi: Add automatic arm-cca-guest module loading
        kselftest/arm64: Add 2024 dpISA extensions to hwcap test
        KVM: arm64: Allow control of dpISA extensions in ID_AA64ISAR3_EL1
        arm64/hwcap: Describe 2024 dpISA extensions to userspace
        arm64/sysreg: Update ID_AA64SMFR0_EL1 to DDI0601 2024-12
        arm64: Filter out SVE hwcaps when FEAT_SVE isn't implemented
        drivers/perf: hisi: Set correct IRQ affinity for PMUs with no association
        arm64/sme: Move storage of reg_smidr to __cpuinfo_store_cpu()
        arm64: mm: Test for pmd_sect() in vmemmap_check_pmd()
        arm64/mm: Replace open encodings with PXD_TABLE_BIT
        arm64/mm: Rename pte_mkpresent() as pte_mkvalid()
        arm64/sysreg: Update ID_AA64ISAR2_EL1 to DDI0601 2024-09
        arm64/sysreg: Update ID_AA64ZFR0_EL1 to DDI0601 2024-09
        arm64/sysreg: Update ID_AA64FPFR0_EL1 to DDI0601 2024-09
        ...
      9ad09c4f
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.14-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · e7244cc3
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - Use the generic muldi3 libgcc function
      
       - Miscellaneous fixes and improvements
      
      * tag 'm68k-for-v6.14-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: libgcc: Fix lvalue abuse in umul_ppmm()
        m68k: vga: Fix I/O defines
        zorro: Constify 'struct bin_attribute'
        m68k: atari: Use str_on_off() helper in atari_nvram_proc_read()
        m68k: Use kernel's generic muldi3 libgcc function
      e7244cc3
    • Linus Torvalds's avatar
      Merge tag 's390-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 4f42d0bf
      Linus Torvalds authored
      Pull s390 updates from Alexander Gordeev:
      
       - Select config option KASAN_VMALLOC if KASAN is enabled
      
       - Select config option VMAP_STACK unconditionally
      
       - Implement arch_atomic_inc() / arch_atomic_dec() functions which
         result in a single instruction if compiled for z196 or newer
         architectures
      
       - Make layering between atomic.h and atomic_ops.h consistent
      
       - Comment s390 preempt_count implementation
      
       - Remove pre MARCH_HAS_Z196_FEATURES preempt count implementation
      
       - GCC uses the number of lines of an inline assembly to calculate
         number of instructions and decide on inlining. Therefore remove
         superfluous new lines from a couple of inline assemblies.
      
       - Provide arch_atomic_*_and_test() implementations that allow the
         compiler to generate slightly better code.
      
       - Optimize __preempt_count_dec_and_test()
      
       - Remove __bootdata annotations from declarations in header files
      
       - Add missing include of <linux/smp.h> in abs_lowcore.h to provide
         declarations for get_cpu() and put_cpu() used in the code
      
       - Fix suboptimal kernel image base when running make kasan.config
      
       - Remove huge_pte_none() and huge_pte_none_mostly() as are identical to
         the generic variants
      
       - Remove unused PAGE_KERNEL_EXEC, SEGMENT_KERNEL_EXEC, and
         REGION3_KERNEL_EXEC defines
      
       - Simplify noexec page protection handling and change the page, segment
         and region3 protection definitions automatically if the instruction
         execution-protection facility is not available
      
       - Save one instruction and prefer EXRL instruction over EX in string,
         xor_*(), amode31 and other functions
      
       - Create /dev/diag misc device to fetch diagnose specific information
         from the kernel and provide it to userspace
      
       - Retrieve electrical power readings using DIAGNOSE 0x324 ioctl
      
       - Make ccw_device_get_ciw() consistent and use array indices instead of
         pointer arithmetic
      
       - s390/qdio: Move memory alloc/pointer arithmetic for slib and sl into
         one place
      
       - The sysfs core now allows instances of 'struct bin_attribute' to be
         moved into read-only memory. Make use of that in s390 code
      
       - Add missing TLB range adjustment in pud_free_tlb()
      
       - Improve topology setup by adding early polarization detection
      
       - Fix length checks in codepage_convert() function
      
       - The generic bitops implementation is nearly identical to the s390
         one. Switch to the generic variant and decrease a bit the kernel
         image size
      
       - Provide an optimized arch_test_bit() implementation which makes use
         of flag output constraint. This generates slightly better code
      
       - Provide memory topology information obtanied with DIAGNOSE 0x310
         using ioctl.
      
       - Various other small improvements, fixes, and cleanups
      
      Also, some changes came in through a merge of 'pci-device-recovery'
      branch:
      
       - Add PCI error recovery status mechanism
      
       - Simplify and document debug_next_entry() logic
      
       - Split private data allocation and freeing out of debug file open()
         and close() operations
      
       - Add debug_dump() function that gets a textual representation of a
         debug info (e.g. PCI recovery hardware error logs)
      
       - Add formatted content of pci_debug_msg_id to the PCI report
      
      * tag 's390-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (48 commits)
        s390/futex: Fix FUTEX_OP_ANDN implementation
        s390/diag: Add memory topology information via diag310
        s390/bitops: Provide optimized arch_test_bit()
        s390/bitops: Switch to generic bitops
        s390/ebcdic: Fix length decrement in codepage_convert()
        s390/ebcdic: Fix length check in codepage_convert()
        s390/ebcdic: Use exrl instead of ex
        s390/amode31: Use exrl instead of ex
        s390/stackleak: Use exrl instead of ex in __stackleak_poison()
        s390/lib: Use exrl instead of ex in xor functions
        s390/topology: Improve topology detection
        s390/tlb: Add missing TLB range adjustment
        s390/pkey: Constify 'struct bin_attribute'
        s390/sclp: Constify 'struct bin_attribute'
        s390/pci: Constify 'struct bin_attribute'
        s390/ipl: Constify 'struct bin_attribute'
        s390/crypto/cpacf: Constify 'struct bin_attribute'
        s390/qdio: Move memory alloc/pointer arithmetic for slib and sl into one place
        s390/cio: Use array indices instead of pointer arithmetic
        s390/qdio: Rename feature flag aif_osa to aif_qdio
        ...
      4f42d0bf
    • Linus Torvalds's avatar
      Merge tag 'for-6.14/io_uring-20250119' of git://git.kernel.dk/linux · a312e170
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "Not a lot in terms of features this time around, mostly just cleanups
        and code consolidation:
      
         - Support for PI meta data read/write via io_uring, with NVMe and
           SCSI covered
      
         - Cleanup the per-op structure caching, making it consistent across
           various command types
      
         - Consolidate the various user mapped features into a concept called
           regions, making the various users of that consistent
      
         - Various cleanups and fixes"
      
      * tag 'for-6.14/io_uring-20250119' of git://git.kernel.dk/linux: (56 commits)
        io_uring/fdinfo: fix io_uring_show_fdinfo() misuse of ->d_iname
        io_uring: reuse io_should_terminate_tw() for cmds
        io_uring: Factor out a function to parse restrictions
        io_uring/rsrc: require cloned buffers to share accounting contexts
        io_uring: simplify the SQPOLL thread check when cancelling requests
        io_uring: expose read/write attribute capability
        io_uring/rw: don't gate retry on completion context
        io_uring/rw: handle -EAGAIN retry at IO completion time
        io_uring/rw: use io_rw_recycle() from cleanup path
        io_uring/rsrc: simplify the bvec iter count calculation
        io_uring: ensure io_queue_deferred() is out-of-line
        io_uring/rw: always clear ->bytes_done on io_async_rw setup
        io_uring/rw: use NULL for rw->free_iovec assigment
        io_uring/rw: don't mask in f_iocb_flags
        io_uring/msg_ring: Drop custom destructor
        io_uring: Move old async data allocation helper to header
        io_uring/rw: Allocate async data through helper
        io_uring/net: Allocate msghdr async data through helper
        io_uring/uring_cmd: Allocate async data through generic helper
        io_uring/poll: Allocate apoll with generic alloc_cache helper
        ...
      a312e170
    • Linus Torvalds's avatar
      Merge tag 'for-6.14/block-20250118' of git://git.kernel.dk/linux · 1cbfb828
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
      
       - NVMe pull requests via Keith:
            - Target support for PCI-Endpoint transport (Damien)
            - TCP IO queue spreading fixes (Sagi, Chaitanya)
            - Target handling for "limited retry" flags (Guixen)
            - Poll type fix (Yongsoo)
            - Xarray storage error handling (Keisuke)
            - Host memory buffer free size fix on error (Francis)
      
       - MD pull requests via Song:
            - Reintroduce md-linear (Yu Kuai)
            - md-bitmap refactor and fix (Yu Kuai)
            - Replace kmap_atomic with kmap_local_page (David Reaver)
      
       - Quite a few queue freeze and debugfs deadlock fixes
      
         Ming introduced lockdep support for this in the 6.13 kernel, and it
         has (unsurprisingly) uncovered quite a few issues
      
       - Use const attributes for IO schedulers
      
       - Remove bio ioprio wrappers
      
       - Fixes for stacked device atomic write support
      
       - Refactor queue affinity helpers, in preparation for better supporting
         isolated CPUs
      
       - Cleanups of loop O_DIRECT handling
      
       - Cleanup of BLK_MQ_F_* flags
      
       - Add rotational support for null_blk
      
       - Various fixes and cleanups
      
      * tag 'for-6.14/block-20250118' of git://git.kernel.dk/linux: (106 commits)
        block: Don't trim an atomic write
        block: Add common atomic writes enable flag
        md/md-linear: Fix a NULL vs IS_ERR() bug in linear_add()
        block: limit disk max sectors to (LLONG_MAX >> 9)
        block: Change blk_stack_atomic_writes_limits() unit_min check
        block: Ensure start sector is aligned for stacking atomic writes
        blk-mq: Move more error handling into blk_mq_submit_bio()
        block: Reorder the request allocation code in blk_mq_submit_bio()
        nvme: fix bogus kzalloc() return check in nvme_init_effects_log()
        md/md-bitmap: move bitmap_{start, end}write to md upper layer
        md/raid5: implement pers->bitmap_sector()
        md: add a new callback pers->bitmap_sector()
        md/md-bitmap: remove the last parameter for bimtap_ops->endwrite()
        md/md-bitmap: factor behind write counters out from bitmap_{start/end}write()
        md: Replace deprecated kmap_atomic() with kmap_local_page()
        md: reintroduce md-linear
        partitions: ldm: remove the initial kernel-doc notation
        blk-cgroup: rwstat: fix kernel-doc warnings in header file
        blk-cgroup: fix kernel-doc warnings in header file
        nbd: fix partial sending
        ...
      1cbfb828
  2. Jan 20, 2025
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 3d3a9c8b
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
      
       - Fix a case where the new scanning code missed removing an unused rsb
      
       - Fix the error when removing a configfs entry for an invalid node id
      
      * tag 'dlm-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: return -ENOENT if no comm was found
        dlm: fix srcu_read_lock() return type to int
        dlm: fix removal of rsb struct that is master and dir record
      3d3a9c8b
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2025-01-20.2' of git://evilpiepirate.org/bcachefs · 2622f290
      Linus Torvalds authored
      Pull bcachefs updates from Kent Overstreet:
       "Lots of scalability work, another big on-disk format change. On-disk
        format version goes from 1.13 to 1.20.
      
        Like 6.11, this is another big and expensive automatic/required on
        disk format upgrade. This is planned to be the last big on disk format
        upgrade before the experimental label comes off. There will be one
        more minor on disk format update for a few things that couldn't make
        this release.
      
        Headline improvements:
      
         - Self healing work:
      
           Allocator and reflink now run the exact same check/repair code that
           fsck does at runtime, where applicable.
      
           The long term goal here is to remove inconsistent() errors (that
           cause us to go emergency read only) by lifting fsck code up to
           normal runtime paths; we should only go emergency read-only if we
           detect an inconsistency that was due to a runtime bug - or truly
           catastrophic damage (corrupted btree roots/interior nodes).
      
         - Reflink repair no longer deletes reflink pointers:
      
           Instead we flip an error bit and log the error, and they can still
           be deleted by file deletion. This means a temporary failure to find
           an indirect extent (perhaps repaired later by btree node scan)
           won't result in unnecessary data loss
      
         - Improvements to rebalance data path option handling:
      
           We can now correctly apply changed filesystem-level io path options
           to pending rebalance work, and soon we'll be able to apply
           file-level io path option changes to indirect extents
      
         - Fix mount time regression that some users encountered post the 6.11
           disk accounting rewrite.
      
           Accounting keys were encoded little endian (typetag in the low
           bits) - which didn't anticipate adding accounting keys for every
           inode, which aren't stored in memory and we don't want to scan at
           mount time.
      
         - fsck time on large filesystems is improved by multiple orders of
           magnitude. Previously, 100TB was about the practical max filesystem
           size, where users were reporting fsck times of a day+. With the new
           changes (which nearly eliminate backpointers fsck overhead), we
           fsck'd a filesystem with 10PB of data in 1.5 hours.
      
           The problematic fsck passes were walking every extent and checking
           for missing backpointers, and walking every backpointer to check
           for dangling backpointers. As we've been adding more and more
           runtime self healing there was no reason to keep around the
           backpointers -> extents pass; dangling backpointers are just
           deleted, and we can do that when using them - thus, backpointers ->
           extents is now only run in debug mode.
      
           extents -> backpointers does need to exist, since missing
           backpointers would mean we can't find data to move it (for e.g.
           copygc, device evacuate, scrub). But the new on disk format version
           makes possible a new strategy where we sum up backpointers within a
           bucket and check it against the bucket sector counts, and then only
           scan for missing backpointers if the counts are off (and then, only
           for specific buckets).
      
        Full list of on disk format changes:
      
         - 1.14: backpointer_bucket_gen
      
           Backpointers now have a field for the bucket generation number,
           replacing the obsolete bucket_offset field. This is needed for the
           new "sum up backpointers within a bucket" code, since backpointers
           use the btree write buffer - meaning we will see stale reads, and
           this runs online, with the filesystem in full rw mode.
      
         - 1.15: disk_accounting_big_endian
      
           As previously described, fix the endianness of accounting keys so
           that accounting keys with the same typetag sort together, and
           accounting read can skip types it's not interested in.
      
         - 1.16: reflink_p_may_update_opts:
      
           This version indicates that a new reflink pointer field is
           understood and may be used; the field indicates whether the reflink
           pointer has permissions to update IO path options (e.g.
           compression, replicas) may be updated on the indirect extent it
           points to.
      
           This completes the rebalance/reflink data path option handling from
           the 6.13 pull request.
      
         - 1.17: inode_depth
      
           Add a new inode field, bi_depth, to accelerate the
           check_directory_structure fsck path, which checks for loops in the
           filesystem heirarchy.
      
           check_inodes and check_dirents check connectivity, so
           check_directory_structure only has to check for loops - by walking
           back up to the root from every directory.
      
           But a path can't be a loop if it has a counter that increases
           monotonically from root to leaf - adding a depth counter means that
           we can check for loops with only local (parent -> child) checks. We
           might need to occasionally renumber the depth field in fsck if
           directories have been moved around, but then future fsck runs will
           be much faster.
      
         - 1.18: persistent_inode_cursors
      
           Previously, the cursor used for inode allocation was only kept in
           memory, which meant that users with large filesystems and lots of
           files were reporting that the first create after mounting would
           take awhile - since it had to scan from the start.
      
           Inode allocation cursors are now persistent, and also include a
           generation field (incremented on wraparound, which will only happen
           if inode allocation is restricted to 32 bit inodes), so that we
           don't have to leave inode_generation keys around after a delete.
      
           The option for 32 bit inode numbers may now also be set on
           individual directories, and non-32 bit inode allocations are
           disallowed from allocating from the 32 bit part of the inode number
           space.
      
         - 1.19: autofix_errors
      
           Runtime self healing is now the default.o
      
         - 1.20: directory size (from Hongbo)
      
           directory i_size is now meaningful, and not 0"
      
      * tag 'bcachefs-2025-01-20.2' of git://evilpiepirate.org/bcachefs: (268 commits)
        bcachefs: Fix check_inode_hash_info_matches_root()
        bcachefs: Document issue with bch_stripe layout
        bcachefs: Fix self healing on read error
        bcachefs: Pop all the transactions from the abort one
        bcachefs: Only abort the transactions in the cycle
        bcachefs: Introduce lock_graph_pop_from
        bcachefs: Convert open-coded lock_graph_pop_all to helper
        bcachefs: Do not allow no fail lock request to fail
        bcachefs: Merge the condition to avoid additional invocation
        Revert "bcachefs: Fix bch2_btree_node_upgrade()"
        bcachefs: bcachefs_metadata_version_directory_size
        bcachefs: make directory i_size meaningful
        bcachefs: check_unreachable_inodes is not actually PASS_ONLINE yet
        bcachefs: Don't use BTREE_ITER_cached when walking alloc btree during fsck
        bcachefs: Check for dirents to overwritten inodes
        bcachefs: bch2_btree_iter_peek_slot() handles navigating to nonexistent depth
        bcachefs: Don't set btree_path to updtodate if we don't fill
        bcachefs: __bch2_btree_pos_to_text()
        bcachefs: printbuf_reset() handles tabstops
        bcachefs: Silence read-only errors when deleting snapshots
        ...
      2622f290
    • Linus Torvalds's avatar
      Merge tag 'pstore-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 5d8a4bd6
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
      
       - pstore/blk: trivial typo fixes (Eugen Hristev)
      
       - pstore/zone: reject zero-sized allocations (Eugen Hristev)
      
      * tag 'pstore-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore/zone: avoid dereferencing zero sized ptr after init zones
        pstore/blk: trivial typo fixes
      5d8a4bd6
    • Linus Torvalds's avatar
      Merge tag 'execve-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · fadc3ed9
      Linus Torvalds authored
      Pull execve updates from Kees Cook:
      
       - fix up /proc/pid/comm in the execveat(AT_EMPTY_PATH) case (Tycho
         Andersen, Kees Cook)
      
       - binfmt_misc: Fix comment typos (Christophe JAILLET)
      
       - move empty argv[0] warning closer to actual logic (Nir Lichtman)
      
       - remove legacy custom binfmt modules autoloading (Nir Lichtman)
      
       - Make sure set_task_comm() always NUL-terminates
      
       - binfmt_flat: Fix integer overflow bug on 32 bit systems (Dan
         Carpenter)
      
       - coredump: Do not lock when copying "comm"
      
       - MAINTAINERS: add auxvec.h and set myself as maintainer
      
      * tag 'execve-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        binfmt_flat: Fix integer overflow bug on 32 bit systems
        selftests/exec: add a test for execveat()'s comm
        exec: fix up /proc/pid/comm in the execveat(AT_EMPTY_PATH) case
        exec: Make sure task->comm is always NUL-terminated
        exec: remove legacy custom binfmt modules autoloading
        exec: move warning of null argv to be next to the relevant code
        fs: binfmt: Fix a typo
        MAINTAINERS: exec: Mark Kees as maintainer
        MAINTAINERS: exec: Add auxvec.h UAPI
        coredump: Do not lock during 'comm' reporting
      fadc3ed9
    • Linus Torvalds's avatar
      Merge tag 'for-6.14-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 0eb4aaa2
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "User visible changes, features:
      
         - rebuilding of the free space tree at mount time is done in more
           transactions, fix potential hangs when the transaction thread is
           blocked due to large amount of block groups
      
         - more read IO balancing strategies (experimental config), add two
           new ways how to select a device for read if the profiles allow that
           (all RAID1*), the current default selects the device by pid which
           is good on average but less performant for single reader workloads
      
             - select preferred device for all reads (namely for testing)
             - round-robin, balance reads across devices relevant for the
               requested IO range
      
         - add encoded write ioctl support to io_uring (read was added in
           6.12), basis for writing send stream using that instead of
           syscalls, non-blocking mode is not yet implemented
      
         - support FS_IOC_READ_VERITY_METADATA, applications can use the
           metadata to do their own verification
      
         - pass inode's i_write_hint to bios, for parity with other
           filesystems, ioctls F_GET_RW_HINT/F_SET_RW_HINT
      
        Core:
      
         - in zoned mode: allow to directly reclaim a block group by simply
           resetting it, then it can be reused and another block group does
           not need to be allocated
      
         - super block validation now also does more comprehensive sys array
           validation, adding it to the points where superblock is validated
           (post-read, pre-write)
      
         - subpage mode fixes:
            - fix double accounting of blocks due to some races
            - improved or fixed error handling in a few cases (compression,
              delalloc)
      
         - raid stripe tree:
            - fix various cases with extent range splitting or deleting
            - implement hole punching to extent range
            - reduce number of stripe tree lookups during bio submission
            - more self-tests
      
         - updated self-tests (delayed refs)
      
         - error handling improvements
      
         - cleanups, refactoring
            - remove rest of backref caching infrastructure from relocation,
              not needed anymore
            - error message updates
            - remove unnecessary calls when extent buffer was marked dirty
            - unused parameter removal
            - code moved to new files
      
        Other code changes: add rb_find_add_cached() to the rb-tree API"
      
      * tag 'for-6.14-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (127 commits)
        btrfs: selftests: add a selftest for deleting two out of three extents
        btrfs: selftests: add test for punching a hole into 3 RAID stripe-extents
        btrfs: selftests: add selftest for punching holes into the RAID stripe extents
        btrfs: selftests: test RAID stripe-tree deletion spanning two items
        btrfs: selftests: don't split RAID extents in half
        btrfs: selftests: check for correct return value of failed lookup
        btrfs: don't use btrfs_set_item_key_safe on RAID stripe-extents
        btrfs: implement hole punching for RAID stripe extents
        btrfs: fix deletion of a range spanning parts two RAID stripe extents
        btrfs: fix tail delete of RAID stripe-extents
        btrfs: fix front delete range calculation for RAID stripe extents
        btrfs: assert RAID stripe-extent length is always greater than 0
        btrfs: don't try to delete RAID stripe-extents if we don't need to
        btrfs: selftests: correct RAID stripe-tree feature flag setting
        btrfs: add io_uring interface for encoded writes
        btrfs: remove the unused locked_folio parameter from btrfs_cleanup_ordered_extents()
        btrfs: add extra error messages for delalloc range related errors
        btrfs: subpage: dump the involved bitmap when ASSERT() failed
        btrfs: subpage: fix the bitmap dump of the locked flags
        btrfs: do proper folio cleanup when run_delalloc_nocow() failed
        ...
      0eb4aaa2
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 1851bccf
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - In the quota code, to avoid spurious audit messages, don't call
         capable() when quotas are off
      
       - When changing the 'j' flag of an inode, truncate the inode address
         space to avoid mixing "buffer head" and "iomap" pages
      
      * tag 'gfs2-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Truncate address space when flipping GFS2_DIF_JDATA flag
        gfs2: reorder capability check last
      1851bccf
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · b971424b
      Linus Torvalds authored
      Pull afs updates from Christian Brauner:
       "Dynamic root improvements:
      
         - Create an /afs/.<cell> mountpoint to match the /afs/<cell>
           mountpoint when a cell is created
      
         - Add some more checks on cell names proposed by the user to prevent
           dodgy symlink bodies from being created. Also prevent rootcell from
           being altered once set to simplify the locking
      
         - Change the handling of /afs/@cell from being a dentry name
           substitution at lookup time to making it a symlink to the current
           cell name and also provide a /afs/.@cell symlink to point to the
           dotted cell mountpoint
      
        Fixes:
      
         - Fix the abort code check in the fallback handling for the
           YFS.RemoveFile2 RPC call
      
         - Use call->op->server() for oridnary filesystem RPC calls that have
           an operation descriptor instead of call->server()"
      
      * tag 'vfs-6.14-rc1.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call
        afs: Make /afs/@cell and /afs/.@cell symlinks
        afs: Add rootcell checks
        afs: Make /afs/.<cell> as well as /afs/<cell> mountpoints
      b971424b
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.statx.dio' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 47c9f2b3
      Linus Torvalds authored
      Pull vfs direct-io updates from Christian Brauner:
       "File systems that write out of place usually require different
        alignment for direct I/O writes than what they can do for reads.
      
        Add a separate dio read align field to statx, as many out of place
        write file systems can easily do reads aligned to the device sector
        size, but require bigger alignment for writes.
      
        This is usually papered over by falling back to buffered I/O for
        smaller writes and doing read-modify-write cycles, but performance for
        this sucks, so applications benefit from knowing the actual write
        alignment"
      
      * tag 'vfs-6.14-rc1.statx.dio' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        xfs: report larger dio alignment for COW inodes
        xfs: report the correct read/write dio alignment for reflinked inodes
        xfs: cleanup xfs_vn_getattr
        fs: add STATX_DIO_READ_ALIGN
        fs: reformat the statx definition
      47c9f2b3
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.libfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 7e587c20
      Linus Torvalds authored
      Pull vfs libfs updates from Christian Brauner:
       "This improves the stable directory offset behavior in various ways.
      
        Stable offsets are needed so that NFS can reliably read directories on
        filesystems such as tmpfs:
      
         - Improve the end-of-directory detection
      
           According to getdents(3), the d_off field in each returned
           directory entry points to the next entry in the directory. The
           d_off field in the last returned entry in the readdir buffer must
           contain a valid offset value, but if it points to an actual
           directory entry, then readdir/getdents can loop.
      
           Introduce a specific fixed offset value that is placed in the d_off
           field of the last entry in a directory. Some user space
           applications assume that the EOD offset value is larger than the
           offsets of real directory entries, so the largest valid offset
           value is reserved for this purpose. This new value is never
           allocated by simple_offset_add().
      
           When ->iterate_dir() returns, getdents{64} inserts the ctx->pos
           value into the d_off field of the last valid entry in the readdir
           buffer. When it hits EOD, offset_readdir() sets ctx->pos to the EOD
           offset value so the last entry is updated to point to the EOD
           marker.
      
           When trying to read the entry at the EOD offset, offset_readdir()
           terminates immediately.
      
         - Rely on d_children to iterate stable offset directories
      
           Instead of using the mtree to emit entries in the order of their
           offset values, use it only to map incoming ctx->pos to a starting
           entry. Then use the directory's d_children list, which is already
           maintained properly by the dcache, to find the next child to emit.
      
         - Narrow the range of directory offset values returned by
           simple_offset_add() to 3 .. (S32_MAX - 1) on all platforms. This
           means the allocation behavior is identical on 32-bit systems,
           64-bit systems, and 32-bit user space on 64-bit kernels. The new
           range still permits over 2 billion concurrent entries per
           directory.
      
         - Return ENOSPC when the directory offset range is exhausted. Hitting
           this error is almost impossible though.
      
         - Remove the simple_offset_empty() helper"
      
      * tag 'vfs-6.14-rc1.libfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        libfs: Use d_children list to iterate simple_offset directories
        libfs: Replace simple_offset end-of-directory detection
        Revert "libfs: fix infinite directory reads for offset dir"
        Revert "libfs: Add simple_offset_empty()"
        libfs: Return ENOSPC when the directory offset range is exhausted
      7e587c20
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.mount.v2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 100ceb48
      Linus Torvalds authored
      Pull vfs mount updates from Christian Brauner:
      
       - Add a mountinfo program to demonstrate statmount()/listmount()
      
         Add a new "mountinfo" sample userland program that demonstrates how
         to use statmount() and listmount() to get at the same info that
         /proc/pid/mountinfo provides
      
       - Remove pointless nospec.h include
      
       - Prepend statmount.mnt_opts string with security_sb_mnt_opts()
      
         Currently these mount options aren't accessible via statmount()
      
       - Add new mount namespaces to mount namespace rbtree outside of the
         namespace semaphore
      
       - Lockless mount namespace lookup
      
         Currently we take the read lock when looking for a mount namespace to
         list mounts in. We can make this lockless. The simple search case can
         just use a sequence counter to detect concurrent changes to the
         rbtree
      
         For walking the list of mount namespaces sequentially via nsfs we
         keep a separate rcu list as rb_prev() and rb_next() aren't usable
         safely with rcu. Currently there is no primitive for retrieving the
         previous list member. To do this we need a new deletion primitive
         that doesn't poison the prev pointer and a corresponding retrieval
         helper
      
         Since creating mount namespaces is a relatively rare event compared
         with querying mounts in a foreign mount namespace this is worth it.
         Once libmount and systemd pick up this mechanism to list mounts in
         foreign mount namespaces this will be used very frequently
      
           - Add extended selftests for lockless mount namespace iteration
      
           - Add a sample program to list all mounts on the system, i.e., in
             all mount namespaces
      
       - Improve mount namespace iteration performance
      
         Make finding the last or first mount to start iterating the mount
         namespace from an O(1) operation and add selftests for iterating the
         mount table starting from the first and last mount
      
       - Use an xarray for the old mount id
      
         While the ida does use the xarray internally we can use it explicitly
         which allows us to increment the unique mount id under the xa lock.
         This allows us to remove the atomic as we're now allocating both ids
         in one go
      
       - Use a shared header for vfs sample programs
      
       - Fix build warnings for new sample program to list all mounts
      
      * tag 'vfs-6.14-rc1.mount.v2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        samples/vfs: fix build warnings
        samples/vfs: use shared header
        samples/vfs/mountinfo: Use __u64 instead of uint64_t
        fs: remove useless lockdep assertion
        fs: use xarray for old mount id
        selftests: add listmount() iteration tests
        fs: cache first and last mount
        samples: add test-list-all-mounts
        selftests: remove unneeded include
        selftests: add tests for mntns iteration
        seltests: move nsfs into filesystems subfolder
        fs: simplify rwlock to spinlock
        fs: lockless mntns lookup for nsfs
        rculist: add list_bidir_{del,prev}_rcu()
        fs: lockless mntns rbtree lookup
        fs: add mount namespace to rbtree late
        fs: prepend statmount.mnt_opts string with security_sb_mnt_opts()
        mount: remove inlude/nospec.h include
        samples: add a mountinfo program to demonstrate statmount()/listmount()
      100ceb48
    • Linus Torvalds's avatar
      Merge tag 'kernel-6.14-rc1.pid' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 1a89a692
      Linus Torvalds authored
      Pull pid_max namespacing update from Christian Brauner:
       "The pid_max sysctl is a global value. For a long time the default
        value has been 65535 and during the pidfd dicussions Linus proposed to
        bump pid_max by default. Based on this discussion systemd started
        bumping pid_max to 2^22. So all new systems now run with a very high
        pid_max limit with some distros having also backported that change.
      
        The decision to bump pid_max is obviously correct. It just doesn't
        make a lot of sense nowadays to enforce such a low pid number. There's
        sufficient tooling to make selecting specific processes without typing
        really large pid numbers available.
      
        In any case, there are workloads that have expections about how large
        pid numbers they accept. Either for historical reasons or
        architectural reasons. One concreate example is the 32-bit version of
        Android's bionic libc which requires pid numbers less than 65536.
        There are workloads where it is run in a 32-bit container on a 64-bit
        kernel. If the host has a pid_max value greater than 65535 the libc
        will abort thread creation because of size assumptions of
        pthread_mutex_t.
      
        That's a fairly specific use-case however, in general specific
        workloads that are moved into containers running on a host with a new
        kernel and a new systemd can run into issues with large pid_max
        values. Obviously making assumptions about the size of the allocated
        pid is suboptimal but we have userspace that does it.
      
        Of course, giving containers the ability to restrict the number of
        processes in their respective pid namespace indepent of the global
        limit through pid_max is something desirable in itself and comes in
        handy in general.
      
        Independent of motivating use-cases the existence of pid namespaces
        makes this also a good semantical extension and there have been prior
        proposals pushing in a similar direction. The trick here is to
        minimize the risk of regressions which I think is doable. The fact
        that pid namespaces are hierarchical will help us here.
      
        What we mostly care about is that when the host sets a low pid_max
        limit, say (crazy number) 100 that no descendant pid namespace can
        allocate a higher pid number in its namespace. Since pid allocation is
        hierarchial this can be ensured by checking each pid allocation
        against the pid namespace's pid_max limit. This means if the
        allocation in the descendant pid namespace succeeds, the ancestor pid
        namespace can reject it. If the ancestor pid namespace has a higher
        limit than the descendant pid namespace the descendant pid namespace
        will reject the pid allocation. The ancestor pid namespace will
        obviously not care about this.
      
        All in all this means pid_max continues to enforce a system wide limit
        on the number of processes but allows pid namespaces sufficient leeway
        in handling workloads with assumptions about pid values and allows
        containers to restrict the number of processes in a pid namespace
        through the pid_max interface"
      
      * tag 'kernel-6.14-rc1.pid' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        tests/pid_namespace: add pid_max tests
        pid: allow pid_max to be set per pid namespace
      1a89a692
    • Linus Torvalds's avatar
      Merge tag 'kernel-6.14-rc1.cred' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 37c12fcb
      Linus Torvalds authored
      Pull cred refcount updates from Christian Brauner:
       "For the v6.13 cycle we switched overlayfs to a variant of
        override_creds() that doesn't take an extra reference. To this end the
        {override,revert}_creds_light() helpers were introduced.
      
        This generalizes the idea behind {override,revert}_creds_light() to
        the {override,revert}_creds() helpers. Afterwards overriding and
        reverting credentials is reference count free unless the caller
        explicitly takes a reference.
      
        All callers have been appropriately ported"
      
      * tag 'kernel-6.14-rc1.cred' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (30 commits)
        cred: fold get_new_cred_many() into get_cred_many()
        cred: remove unused get_new_cred()
        nfsd: avoid pointless cred reference count bump
        cachefiles: avoid pointless cred reference count bump
        dns_resolver: avoid pointless cred reference count bump
        trace: avoid pointless cred reference count bump
        cgroup: avoid pointless cred reference count bump
        acct: avoid pointless reference count bump
        io_uring: avoid pointless cred reference count bump
        smb: avoid pointless cred reference count bump
        cifs: avoid pointless cred reference count bump
        cifs: avoid pointless cred reference count bump
        ovl: avoid pointless cred reference count bump
        open: avoid pointless cred reference count bump
        nfsfh: avoid pointless cred reference count bump
        nfs/nfs4recover: avoid pointless cred reference count bump
        nfs/nfs4idmap: avoid pointless reference count bump
        nfs/localio: avoid pointless cred reference count bumps
        coredump: avoid pointless cred reference count bump
        binfmt_misc: avoid pointless cred reference count bump
        ...
      37c12fcb
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.pidfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 5f85bd6a
      Linus Torvalds authored
      Pull pidfs updates from Christian Brauner:
      
       - Rework inode number allocation
      
         Recently we received a patchset that aims to enable file handle
         encoding and decoding via name_to_handle_at(2) and
         open_by_handle_at(2).
      
         A crucical step in the patch series is how to go from inode number to
         struct pid without leaking information into unprivileged contexts.
         The issue is that in order to find a struct pid the pid number in the
         initial pid namespace must be encoded into the file handle via
         name_to_handle_at(2).
      
         This can be used by containers using a separate pid namespace to
         learn what the pid number of a given process in the initial pid
         namespace is. While this is a weak information leak it could be used
         in various exploits and in general is an ugly wart in the design.
      
         To solve this problem a new way is needed to lookup a struct pid
         based on the inode number allocated for that struct pid. The other
         part is to remove the custom inode number allocation on 32bit systems
         that is also an ugly wart that should go away.
      
         Allocate unique identifiers for struct pid by simply incrementing a
         64 bit counter and insert each struct pid into the rbtree so it can
         be looked up to decode file handles avoiding to leak actual pids
         across pid namespaces in file handles.
      
         On both 64 bit and 32 bit the same 64 bit identifier is used to
         lookup struct pid in the rbtree. On 64 bit the unique identifier for
         struct pid simply becomes the inode number. Comparing two pidfds
         continues to be as simple as comparing inode numbers.
      
         On 32 bit the 64 bit number assigned to struct pid is split into two
         32 bit numbers. The lower 32 bits are used as the inode number and
         the upper 32 bits are used as the inode generation number. Whenever a
         wraparound happens on 32 bit the 64 bit number will be incremented by
         2 so inode numbering starts at 2 again.
      
         When a wraparound happens on 32 bit multiple pidfds with the same
         inode number are likely to exist. This isn't a problem since before
         pidfs pidfds used the anonymous inode meaning all pidfds had the same
         inode number. On 32 bit sserspace can thus reconstruct the 64 bit
         identifier by retrieving both the inode number and the inode
         generation number to compare, or use file handles. This gives the
         same guarantees on both 32 bit and 64 bit.
      
       - Implement file handle support
      
         This is based on custom export operation methods which allows pidfs
         to implement permission checking and opening of pidfs file handles
         cleanly without hacking around in the core file handle code too much.
      
       - Support bind-mounts
      
         Allow bind-mounting pidfds. Similar to nsfs let's allow bind-mounts
         for pidfds. This allows pidfds to be safely recovered and checked for
         process recycling.
      
         Instead of checking d_ops for both nsfs and pidfs we could in a
         follow-up patch add a flag argument to struct dentry_operations that
         functions similar to file_operations->fop_flags.
      
      * tag 'vfs-6.14-rc1.pidfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        selftests: add pidfd bind-mount tests
        pidfs: allow bind-mounts
        pidfs: lookup pid through rbtree
        selftests/pidfd: add pidfs file handle selftests
        pidfs: check for valid ioctl commands
        pidfs: implement file handle support
        exportfs: add permission method
        fhandle: pull CAP_DAC_READ_SEARCH check into may_decode_fh()
        exportfs: add open method
        fhandle: simplify error handling
        pseudofs: add support for export_ops
        pidfs: support FS_IOC_GETVERSION
        pidfs: remove 32bit inode number handling
        pidfs: rework inode number allocation
      5f85bd6a
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 4b84a4c8
      Linus Torvalds authored
      Pull misc vfs updates from Christian Brauner:
       "Features:
      
         - Support caching symlink lengths in inodes
      
           The size is stored in a new union utilizing the same space as
           i_devices, thus avoiding growing the struct or taking up any more
           space
      
           When utilized it dodges strlen() in vfs_readlink(), giving about
           1.5% speed up when issuing readlink on /initrd.img on ext4
      
         - Add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag
      
           If a file system supports uncached buffered IO, it may set
           FOP_DONTCACHE and enable support for RWF_DONTCACHE.
      
           If RWF_DONTCACHE is attempted without the file system supporting
           it, it'll get errored with -EOPNOTSUPP
      
         - Enable VBOXGUEST and VBOXSF_FS on ARM64
      
           Now that VirtualBox is able to run as a host on arm64 (e.g. the
           Apple M3 processors) we can enable VBOXSF_FS (and in turn
           VBOXGUEST) for this architecture.
      
           Tested with various runs of bonnie++ and dbench on an Apple MacBook
           Pro with the latest Virtualbox 7.1.4 r165100 installed
      
        Cleanups:
      
         - Delay sysctl_nr_open check in expand_files()
      
         - Use kernel-doc includes in fiemap docbook
      
         - Use page->private instead of page->index in watch_queue
      
         - Use a consume fence in mnt_idmap() as it's heavily used in
           link_path_walk()
      
         - Replace magic number 7 with ARRAY_SIZE() in fc_log
      
         - Sort out a stale comment about races between fd alloc and dup2()
      
         - Fix return type of do_mount() from long to int
      
         - Various cosmetic cleanups for the lockref code
      
        Fixes:
      
         - Annotate spinning as unlikely() in __read_seqcount_begin
      
           The annotation already used to be there, but got lost in commit
           52ac39e5 ("seqlock: seqcount_t: Implement all read APIs as
           statement expressions")
      
         - Fix proc_handler for sysctl_nr_open
      
         - Flush delayed work in delayed fput()
      
         - Fix grammar and spelling in propagate_umount()
      
         - Fix ESP not readable during coredump
      
           In /proc/PID/stat, there is the kstkesp field which is the stack
           pointer of a thread. While the thread is active, this field reads
           zero. But during a coredump, it should have a valid value
      
           However, at the moment, kstkesp is zero even during coredump
      
         - Don't wake up the writer if the pipe is still full
      
         - Fix unbalanced user_access_end() in select code"
      
      * tag 'vfs-6.14-rc1.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (28 commits)
        gfs2: use lockref_init for qd_lockref
        erofs: use lockref_init for pcl->lockref
        dcache: use lockref_init for d_lockref
        lockref: add a lockref_init helper
        lockref: drop superfluous externs
        lockref: use bool for false/true returns
        lockref: improve the lockref_get_not_zero description
        lockref: remove lockref_put_not_zero
        fs: Fix return type of do_mount() from long to int
        select: Fix unbalanced user_access_end()
        vbox: Enable VBOXGUEST and VBOXSF_FS on ARM64
        pipe_read: don't wake up the writer if the pipe is still full
        selftests: coredump: Add stackdump test
        fs/proc: do_task_stat: Fix ESP not readable during coredump
        fs: add RWF_DONTCACHE iocb and FOP_DONTCACHE file_operations flag
        fs: sort out a stale comment about races between fd alloc and dup2
        fs: Fix grammar and spelling in propagate_umount()
        fs: fc_log replace magic number 7 with ARRAY_SIZE()
        fs: use a consume fence in mnt_idmap()
        file: flush delayed work in delayed fput()
        ...
      4b84a4c8
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.kcore' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · d5829524
      Linus Torvalds authored
      Pull /proc/kcore updates from Christian Brauner:
       "The performance of /proc/kcore reads has been showing up as a
        bottleneck for the drgn debugger. drgn scripts often spend ~25% of
        their time in the kernel reading from /proc/kcore.
      
        A lot of this overhead comes from silly inefficiencies. This pull
        request contains fixes for the low-hanging fruit. The fixes are all
        fairly small and straightforward.
      
        The result is a 25% improvement in read latency in micro-benchmarks
        (from ~235 nanoseconds to ~175) and a 15% improvement in execution
        time for real-world drgn scripts:
      
         - Make /proc/kcore entry permanent
      
         - Avoid walking the list on every read
      
         - Use percpu_rw_semaphore for kclist_lock
      
         - Make Omar Sandoval the official maintainer for /proc/kcore"
      
      * tag 'vfs-6.14-rc1.kcore' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        MAINTAINERS: add me as /proc/kcore maintainer
        proc/kcore: use percpu_rw_semaphore for kclist_lock
        proc/kcore: don't walk list on every read
        proc/kcore: mark proc entry as permanent
      d5829524
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.netfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · ca56a74a
      Linus Torvalds authored
      Pull vfs netfs updates from Christian Brauner:
       "This contains read performance improvements and support for monolithic
        single-blob objects that have to be read/written as such (e.g. AFS
        directory contents). The implementation of the two parts is interwoven
        as each makes the other possible.
      
         - Read performance improvements
      
           The read performance improvements are intended to speed up some
           loss of performance detected in cifs and to a lesser extend in afs.
      
           The problem is that we queue too many work items during the
           collection of read results: each individual subrequest is collected
           by its own work item, and then they have to interact with each
           other when a series of subrequests don't exactly align with the
           pattern of folios that are being read by the overall request.
      
           Whilst the processing of the pages covered by individual
           subrequests as they complete potentially allows folios to be woken
           in parallel and with minimum delay, it can shuffle wakeups for
           sequential reads out of order - and that is the most common I/O
           pattern.
      
           The final assessment and cleanup of an operation is then held up
           until the last I/O completes - and for a synchronous sequential
           operation, this means the bouncing around of work items just adds
           latency.
      
           Two changes have been made to make this work:
      
           (1) All collection is now done in a single "work item" that works
               progressively through the subrequests as they complete (and
               also dispatches retries as necessary).
      
           (2) For readahead and AIO, this work item be done on a workqueue
               and can run in parallel with the ultimate consumer of the data;
               for synchronous direct or unbuffered reads, the collection is
               run in the application thread and not offloaded.
      
           Functions such as smb2_readv_callback() then just tell netfslib
           that the subrequest has terminated; netfslib does a minimal bit of
           processing on the spot - stat counting and tracing mostly - and
           then queues/wakes up the worker. This simplifies the logic as the
           collector just walks sequentially through the subrequests as they
           complete and walks through the folios, if buffered, unlocking them
           as it goes. It also keeps to a minimum the amount of latency
           injected into the filesystem's low-level I/O handling
      
           The way netfs supports filesystems using the deprecated
           PG_private_2 flag is changed: folios are flagged and added to a
           write request as they complete and that takes care of scheduling
           the writes to the cache. The originating read request can then just
           unlock the pages whatever happens.
      
         - Single-blob object support
      
           Single-blob objects are files for which the content of the file
           must be read from or written to the server in a single operation
           because reading them in parts may yield inconsistent results. AFS
           directories are an example of this as there exists the possibility
           that the contents are generated on the fly and would differ between
           reads or might change due to third party interference.
      
           Such objects will be written to and retrieved from the cache if one
           is present, though we allow/may need to propose multiple
           subrequests to do so. The important part is that read from/write to
           the *server* is monolithic.
      
           Single blob reading is, for the moment, fully synchronous and does
           result collection in the application thread and, also for the
           moment, the API is supplied the buffer in the form of a folio_queue
           chain rather than using the pagecache.
      
         - Related afs changes
      
           This series makes a number of changes to the kafs filesystem,
           primarily in the area of directory handling:
      
            - AFS's FetchData RPC reply processing is made partially
              asynchronous which allows the netfs_io_request's outstanding
              operation counter to be removed as part of reducing the
              collection to a single work item.
      
            - Directory and symlink reading are plumbed through netfslib using
              the single-blob object API and are now cacheable with fscache.
              This also allows the afs_read struct to be eliminated and
              netfs_io_subrequest to be used directly instead.
      
            - Directory and symlink content are now stored in a folio_queue
              buffer rather than in the pagecache. This means we don't require
              the RCU read lock and xarray iteration to access it, and folios
              won't randomly disappear under us because the VM wants them
              back.
      
            - The vnode operation lock is changed from a mutex struct to a
              private lock implementation. The problem is that the lock now
              needs to be dropped in a separate thread and mutexes don't
              permit that.
      
            - When a new directory or symlink is created, we now initialise it
              locally and mark it valid rather than downloading it (we know
              what it's likely to look like).
      
            - We now use the in-directory hashtable to reduce the number of
              entries we need to scan when doing a lookup. The edit routines
              have to maintain the hash chains.
      
            - Cancellation (e.g. by signal) of an async call after the
              rxrpc_call has been set up is now offloaded to the worker thread
              as there will be a notification from rxrpc upon completion. This
              avoids a double cleanup.
      
         - A "rolling buffer" implementation is created to abstract out the
           two separate folio_queue chaining implementations I had (one for
           read and one for write).
      
         - Functions are provided to create/extend a buffer in a folio_queue
           chain and tear it down again.
      
           This is used to handle AFS directories, but could also be used to
           create bounce buffers for content crypto and transport crypto.
      
         - The was_async argument is dropped from netfs_read_subreq_terminated()
      
           Instead we wake the read collection work item by either queuing it
           or waking up the app thread.
      
         - We don't need to use BH-excluding locks when communicating between
           the issuing thread and the collection thread as neither of them now
           run in BH context.
      
         - Also included are a number of new tracepoints; a split of the
           netfslib write collection code to put retrying into its own file
           (it gets more complicated with content encryption).
      
         - There are also some minor fixes AFS included, including fixing the
           AFS directory format struct layout, reducing some directory
           over-invalidation and making afs_mkdir() translate EEXIST to
           ENOTEMPY (which is not available on all systems the servers
           support).
      
         - Finally, there's a patch to try and detect entry into the folio
           unlock function with no folio_queue structs in the buffer (which
           isn't allowed in the cases that can get there).
      
           This is a debugging patch, but should be minimal overhead"
      
      * tag 'vfs-6.14-rc1.netfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (31 commits)
        netfs: Report on NULL folioq in netfs_writeback_unlock_folios()
        afs: Add a tracepoint for afs_read_receive()
        afs: Locally initialise the contents of a new symlink on creation
        afs: Use the contained hashtable to search a directory
        afs: Make afs_mkdir() locally initialise a new directory's content
        netfs: Change the read result collector to only use one work item
        afs: Make {Y,}FS.FetchData an asynchronous operation
        afs: Fix cleanup of immediately failed async calls
        afs: Eliminate afs_read
        afs: Use netfslib for symlinks, allowing them to be cached
        afs: Use netfslib for directories
        afs: Make afs_init_request() get a key if not given a file
        netfs: Add support for caching single monolithic objects such as AFS dirs
        netfs: Add functions to build/clean a buffer in a folio_queue
        afs: Add more tracepoints to do with tracking validity
        cachefiles: Add auxiliary data trace
        cachefiles: Add some subrequest tracepoints
        netfs: Remove some extraneous directory invalidations
        afs: Fix directory format encoding struct
        afs: Fix EEXIST error returned from afs_rmdir() to be ENOTEMPTY
        ...
      ca56a74a
    • Linus Torvalds's avatar
      x86: use cmov for user address masking · 91309a70
      Linus Torvalds authored
      
      This was a suggestion by David Laight, and while I was slightly worried
      that some micro-architecture would predict cmov like a conditional
      branch, there is little reason to actually believe any core would be
      that broken.
      
      Intel documents that their existing cores treat CMOVcc as a data
      dependency that will constrain speculation in their "Speculative
      Execution Side Channel Mitigations" whitepaper:
      
        "Other instructions such as CMOVcc, AND, ADC, SBB and SETcc can also
         be used to prevent bounds check bypass by constraining speculative
         execution on current family 6 processors (Intel® Core™, Intel® Atom™,
         Intel® Xeon® and Intel® Xeon Phi™ processors)"
      
      and while that leaves the future uarch issues open, that's certainly
      true of our traditional SBB usage too.
      
      Any core that predicts CMOV will be unusable for various crypto
      algorithms that need data-independent timing stability, so let's just
      treat CMOV as the safe choice that simplifies the address masking by
      avoiding an extra instruction and doesn't need a temporary register.
      
      Suggested-by: default avatarDavid Laight <David.Laight@aculab.com>
      Link: https://www.intel.com/content/dam/develop/external/us/en/documents/336996-speculative-execution-side-channel-mitigations.pdf
      
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      91309a70
    • Linus Torvalds's avatar
      x86: use proper 'clac' and 'stac' opcode names · 027ea4f5
      Linus Torvalds authored
      
      Back when we added SMAP support, all versions of binutils didn't
      necessarily understand the 'clac' and 'stac' instructions.  So we
      implemented those instructions manually as ".byte" sequences.
      
      But we've since upgraded the minimum version of binutils to version
      2.25, and that included proper support for the SMAP instructions, and
      there's no reason for us to use some line noise to express them any
      more.
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      027ea4f5
    • Christian Brauner's avatar
      samples/vfs: fix build warnings · 68e6b7d9
      Christian Brauner authored
      
      Fix build warnings reported from linux-next.
      
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Link: https://lore.kernel.org/r/20250120192504.4a1965a0@canb.auug.org.au
      
      
      Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
    • Christian Brauner's avatar
    • Linus Torvalds's avatar
      Merge branch 'vsnprintf' · 5293b5f9
      Linus Torvalds authored
      This merges the vsnprintf internal cleanups I did, which were triggered
      by a combination of performance issues (see for example commit
      f9ed1f7c: "genirq/proc: Use seq_put_decimal_ull_width() for decimal
      values") and discussion about tracing abusing the vsnprintf code in odd
      ways.
      
      The intent was to improve code generation, but also to possibly
      eventually expose the cleaned-up printf format decoding state machine.
      
      It certainly didn't get to the point where we'd want to expose the
      format decoding to external users, but it's an improvement over what we
      used to have.  Several of the complex case statements have been
      simplified, or removed entirely to be replaced by simple table lookups.
      
      * branch 'vsnprintf':
        vsnprintf: fix the number base for non-numeric formats
        vsnprintf: fix up kerneldoc for argument name changes
        vsprintf: don't make the 'binary' version pack small integer arguments
        vsnprintf: collapse the number format state into one single state
        vsnprintf: mark the indirect width and precision cases unlikely
        vsnprintf: inline skip_atoi() again
        vsprintf: deal with format specifiers with a lookup table
        vsprintf: deal with format flags with a simple lookup table
        vsprintf: associate the format state with the format pointer
        vsprintf: fix calling convention for format_decode()
        vsprintf: avoid nested switch statement on same variable
        vsprintf: simplify number handling
      5293b5f9
  3. Jan 19, 2025
    • Linus Torvalds's avatar
      Linux 6.13 · ffd294d3
      Linus Torvalds authored
      v6.13
      ffd294d3
    • Linus Torvalds's avatar
      Merge tag 'x86_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9528d418
      Linus Torvalds authored
      Pull x86 fixes from Borislav Petkov:
      
       - Mark serialize() noinstr so that it can be used from instrumentation-
         free code
      
       - Make sure FRED's RSP0 MSR is synchronized with its corresponding
         per-CPU value in order to avoid double faults in hotplug scenarios
      
       - Disable EXECMEM_ROX on x86 for now because it didn't receive proper
         x86 maintainers review, went in and broke a bunch of things
      
      * tag 'x86_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/asm: Make serialize() always_inline
        x86/fred: Fix the FRED RSP0 MSR out of sync with its per-CPU cache
        x86: Disable EXECMEM_ROX support
      9528d418
    • Linus Torvalds's avatar
      Merge tag 'timers_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 25144ea3
      Linus Torvalds authored
      Pull timer fixes from Borislav Petkov:
      
       - Reset hrtimers correctly when a CPU hotplug state traversal happens
         "half-ways" and leaves hrtimers not (re-)initialized properly
      
       - Annotate accesses to a timer group's ignore flag to prevent KCSAN
         from raising data_race warnings
      
       - Make sure timer group initialization is visible to timer tree walkers
         and avoid a hypothetical race
      
       - Fix another race between CPU hotplug and idle entry/exit where timers
         on a fully idle system are getting ignored
      
       - Fix a case where an ignored signal is still being handled which it
         shouldn't be
      
      * tag 'timers_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        hrtimers: Handle CPU state correctly on hotplug
        timers/migration: Annotate accesses to ignore flag
        timers/migration: Enforce group initialization visibility to tree walkers
        timers/migration: Fix another race between hotplug and idle entry/exit
        signal/posixtimers: Handle ignore/blocked sequences correctly
      25144ea3
    • Linus Torvalds's avatar
      Merge tag 'irq_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b031457a
      Linus Torvalds authored
      Pull irq fixes from Borislav Petkov:
      
       - Fix an OF node leak in irqchip init's error handling path
      
       - Fix sunxi systems to wake up from suspend with an NMI by
         pressing the power button
      
       - Do not spuriously enable interrupts in gic-v3 in a nested
         interrupts-off section
      
       - Make sure gic-v3 handles properly a failure to enter a
         low power state
      
      * tag 'irq_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip: Plug a OF node reference leak in platform_irqchip_probe()
        irqchip/sunxi-nmi: Add missing SKIP_WAKE flag
        irqchip/gic-v3-its: Don't enable interrupts in its_irq_set_vcpu_affinity()
        irqchip/gic-v3: Handle CPU_PM_ENTER_FAILED correctly
      b031457a
    • Linus Torvalds's avatar
      Merge tag 'sched_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8ff6d472
      Linus Torvalds authored
      Pull scheduler fixes from Borislav Petkov:
      
       - Do not adjust the weight of empty group entities and avoid
         scheduling artifacts
      
       - Avoid scheduling lag by computing lag properly and thus address
         an EEVDF entity placement issue
      
      * tag 'sched_urgent_for_v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Fix update_cfs_group() vs DELAY_DEQUEUE
        sched/fair: Fix EEVDF entity placement bug causing scheduling lag
      8ff6d472
    • Al Viro's avatar
      io_uring/fdinfo: fix io_uring_show_fdinfo() misuse of ->d_iname · 561e3a0c
      Al Viro authored
      
      Output of io_uring_show_fdinfo() has several problems:
      
      * racy use of ->d_iname
      * junk if the name is long - in that case it's not stored in ->d_iname
      at all
      * lack of quoting (names can contain newlines, etc. - or be equal to "<none>",
      for that matter).
      * lines for empty slots are pointless noise - we already have the total
      amount, so having just the non-empty ones would carry the same information.
      
      Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      561e3a0c
  4. Jan 18, 2025
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.13-rc7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · fda5e3f2
      Linus Torvalds authored
      Pull tracing fix from Steven Rostedt:
       "Fix regression in GFP output in trace events
      
        It was reported that the GFP flags in trace events went from human
        readable to just their hex values:
      
            gfp_flags=GFP_HIGHUSER_MOVABLE|__GFP_COMP to gfp_flags=0x140cca
      
        This was caused by a change that added the use of enums in calculating
        the GFP flags.
      
        As defines get translated into their values in the trace event format
        files, the user space tooling could easily convert the GFP flags into
        their symbols via the __print_flags() helper macro.
      
        The problem is that enums do not get converted, and the names of the
        enums show up in the format files and user space tooling cannot
        translate them.
      
        Add TRACE_DEFINE_ENUM() around the enums used for GFP flags which is
        the tracing infrastructure macro that informs the tracing subsystem
        what the values for enums and it can then expose that to user space"
      
      * tag 'trace-v6.13-rc7-2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing: gfp: Fix the GFP enum values shown for user space tracing tools
      fda5e3f2
  5. Jan 17, 2025
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-6.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 59552394
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
       "Another fix and testcase to avoid the newly added WARN in the case of
        non-translatable addresses"
      
      * tag 'devicetree-fixes-for-6.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        of/address: Fix WARN when attempting translating non-translatable addresses
        of/unittest: Add test that of_address_to_resource() fails on non-translatable address
      59552394
    • Linus Torvalds's avatar
      Merge tag 'soc-fixes-6.13-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ed9add2b
      Linus Torvalds authored
      Pull SoC fixes from Arnd Bergmann:
       "Two last minute fixes: one build issue on TI soc drivers, and a
        regression in the renesas reset controller driver"
      
      * tag 'soc-fixes-6.13-4' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        soc: ti: pruss: Fix pruss APIs
        reset: rzg2l-usbphy-ctrl: Assign proper of node to the allocated device
      ed9add2b
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.13-6' of... · 775a15ea
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.13-6' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver fixes from Ilpo Järvinen:
      
       - dell-uart-backlight: Fix serdev race
      
       - lenovo-yoga-tab2-pro-1380-fastcharger: Fix serdev race
      
      * tag 'platform-drivers-x86-v6.13-6' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
        platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: fix serdev race
        platform/x86: dell-uart-backlight: fix serdev race
      775a15ea
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 42f38ccb
      Linus Torvalds authored
      Pull mtd revert from Miquel Raynal:
       "Very late this cycle we identified a breakage that could potentially
        hit several spi controller drivers because of a change in the way the
        dummy cycles validity is checked.
      
        We do not know at the moment how to handle the situation properly, so
        we prefer to revert the faulty patch for the next release"
      
      * tag 'mtd/fixes-for-6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
        Revert "mtd: spi-nor: core: replace dummy buswidth from addr to data"
      42f38ccb
    • Steven Rostedt's avatar
      tracing: gfp: Fix the GFP enum values shown for user space tracing tools · 60295b94
      Steven Rostedt authored
      Tracing tools like perf and trace-cmd read the /sys/kernel/tracing/events/*/*/format
      files to know how to parse the data and also how to print it. For the
      "print fmt" portion of that file, if anything uses an enum that is not
      exported to the tracing system, user space will not be able to parse it.
      
      The GFP flags use to be defines, and defines get translated in the print
      fmt sections. But now they are converted to use enums, which is not.
      
      The mm_page_alloc trace event format use to have:
      
        print fmt: "page=%p pfn=0x%lx order=%d migratetype=%d gfp_flags=%s",
          REC->pfn != -1UL ? (((struct page *)vmemmap_base) + (REC->pfn)) : ((void
          *)0), REC->pfn != -1UL ? REC->pfn : 0, REC->order, REC->migratetype,
          (REC->gfp_flags) ? __print_flags(REC->gfp_flags, "|", {( unsigned
          long)(((((((( gfp_t)(0x400u|0x800u)) | (( gfp_t)0x40u) | (( gfp_t)0x80u) |
          (( gfp_t)0x100000u)) | (( gfp_t)0x02u)) | (( gfp_t)0x08u) | (( gfp_t)0)) |
          (( gfp_t)0x40000u) | (( gfp_t)0x80000u) | (( gfp_t)0x2000u)) & ~((
          gfp_t)(0x400u|0x800u))) | (( gfp_t)0x400u)), "GFP_TRANSHUGE"}, {( unsigned
          long)((((((( gfp_t)(0x400u|0x800u)) | (( gfp_t)0x40u) | (( gfp_t)0x80u) |
          (( gfp_t)0x100000u)) | (( gfp_t)0x02u)) | (( gfp_t)0x08u) | (( gfp_t)0)) ...
      
      Where the GFP values are shown and not their names. But after the GFP
      flags were converted to use enums, it has:
      
        print fmt: "page=%p pfn=0x%lx order=%d migratetype=%d gfp_flags=%s",
          REC->pfn != -1UL ? (vmemmap + (REC->pfn)) : ((void *)0), REC->pfn != -1UL
          ? REC->pfn : 0, REC->order, REC->migratetype, (REC->gfp_flags) ?
          __print_flags(REC->gfp_flags, "|", {( unsigned long)((((((((
          gfp_t)(((((1UL))) << (___GFP_DIRECT_RECLAIM_BIT))|((((1UL))) <<
          (___GFP_KSWAPD_RECLAIM_BIT)))) | (( gfp_t)((((1UL))) << (___GFP_IO_BIT)))
          | (( gfp_t)((((1UL))) << (___GFP_FS_BIT))) | (( gfp_t)((((1UL))) <<
          (___GFP_HARDWALL_BIT)))) | (( gfp_t)((((1UL))) << (___GFP_HIGHMEM_BIT))))
          | (( gfp_t)((((1UL))) << (___GFP_MOVABLE_BIT))) | (( gfp_t)0)) | ((
          gfp_t)((((1UL))) << (___GFP_COMP_BIT))) ...
      
      Where the enums names like ___GFP_KSWAPD_RECLAIM_BIT are shown and not their
      values. User space has no way to convert these names to their values and
      the output will fail to parse. What is shown is now:
      
        mm_page_alloc:  page=0xffffffff981685f3 pfn=0x1d1ac1 order=0 migratetype=1 gfp_flags=0x140cca
      
      The TRACE_DEFINE_ENUM() macro was created to handle enums in the print fmt
      files. This causes them to be replaced at boot up with the numbers, so
      that user space tooling can parse it. By using this macro, the output is
      back to the human readable:
      
        mm_page_alloc: page=0xffffffff981685f3 pfn=0x122233 order=0 migratetype=1 gfp_flags=GFP_HIGHUSER_MOVABLE|__GFP_COMP
      
      Cc: stable@vger.kernel.org
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Veronika  Molnarova <vmolnaro@redhat.com>
      Cc: Suren Baghdasaryan <surenb@google.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Link: https://lore.kernel.org/20250116214438.749504792@goodmis.org
      
      
      Reported-by: default avatarMichael Petlan <mpetlan@redhat.com>
      Closes: https://lore.kernel.org/all/87be5f7c-1a0-dad-daa0-54e342efaea7@redhat.com/
      
      
      Fixes: 772dd034 ("mm: enumerate all gfp flags")
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      60295b94
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.13-rc8' of... · 07757eeb
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - ltc2991, tmp513: Fix problems seen when dividing negative numbers
      
       - drivetemp: Handle large timeouts observed on some drives
      
       - acpi_power_meter: Fix loading the driver on platforms without _PMD
         method
      
      * tag 'hwmon-for-v6.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (ltc2991) Fix mixed signed/unsigned in DIV_ROUND_CLOSEST
        hwmon: (drivetemp) Set scsi command timeout to 10s
        hwmon: (acpi_power_meter) Fix a check for the return value of read_domain_devices().
        hwmon: (tmp513) Fix division of negative numbers
      07757eeb
Loading