Skip to content
Snippets Groups Projects
  1. Jan 20, 2025
    • 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
    • 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
  2. 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
  3. 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
  4. 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
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 7fed891d
      Linus Torvalds authored
      Pull gpio fix from Bartosz Golaszewski:
      
       - convert regular spinlock to raw spinlock in gpio-xilinx to avoid a
         lockdep splat
      
      * tag 'gpio-fixes-for-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: xilinx: Convert gpio_lock to raw spinlock
      7fed891d
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 5e74b9bf
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
      
       - fix ref leak in the I2C core
      
       - fix remove notification in the address translator
      
       - missing error check in the pinctrl demuxer (plus a typo fix)
      
       - fix NAK handling when Linux is testunit target
      
       - fix NAK handling for the Renesas R-Car controller when it is a target
      
      * tag 'i2c-for-6.13-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: testunit: on errors, repeat NACK until STOP
        i2c: rcar: fix NACK handling when being a target
        i2c: mux: demux-pinctrl: correct comment
        i2c: mux: demux-pinctrl: check initial mux selection, too
        i2c: atr: Fix client detach
        i2c: core: fix reference leak in i2c_register_adapter()
      5e74b9bf
    • Linus Torvalds's avatar
      Merge tag 'pmdomain-v6.13-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm · 4b040f0a
      Linus Torvalds authored
      Pull pmdomain fix from Ulf Hansson:
      
       - imx8mp-blk-ctrl: Add missing loop break condition
      
      * tag 'pmdomain-v6.13-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/linux-pm:
        pmdomain: imx8mp-blk-ctrl: add missing loop break condition
      4b040f0a
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2025-01-16-21-11' of... · ad26fc09
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2025-01-16-21-11' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "7 singleton hotfixes.  6 are MM.
      
        Two are cc:stable and the remainder address post-6.12 issues"
      
      * tag 'mm-hotfixes-stable-2025-01-16-21-11' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        ocfs2: check dir i_size in ocfs2_find_entry
        mailmap: update entry for Ethan Carter Edwards
        mm: zswap: move allocations during CPU init outside the lock
        mm: khugepaged: fix call hpage_collapse_scan_file() for anonymous vma
        mm: shmem: use signed int for version handling in casefold option
        alloc_tag: skip pgalloc_tag_swap if profiling is disabled
        mm: page_alloc: fix missed updates of lowmem_reserve in adjust_managed_page_count
      ad26fc09
    • Linus Torvalds's avatar
      Merge tag '6.13-rc7-SMB3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 9ca27296
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - fix double free when reconnect racing with closing session
      
       - fix SMB1 reconnect with password rotation
      
      * tag '6.13-rc7-SMB3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        smb: client: fix double free of TCP_Server_Info::hostname
        cifs: support reconnect with alternate password for SMB1
      9ca27296
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2025-01-17' of https://gitlab.freedesktop.org/drm/kernel · 9bffa1ad
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Final(?) set of fixes for 6.13, I think the holidays finally caught up
        with everyone, the misc changes are 2 weeks worth, otherwise amdgpu
        and xe are most of it. The largest pieces is a new test so I'm not too
        worried about that.
      
        kunit:
         - Fix W=1 build for kunit tests
      
        bridge:
         - Handle YCbCr420 better in bridge code, with tests
         - itee-it6263 error handling fix
      
        amdgpu:
         - SMU 13 fix
         - DP MST fixes
         - DCN 3.5 fix
         - PSR fixes
         - eDP fix
         - VRR fix
         - Enforce isolation fixes
         - GFX 12 fix
         - PSP 14.x fix
      
        xe:
         - Add steering info support for GuC register lists
         - Add means to wait for reset and synchronous reset
         - Make changing ccs_mode a synchronous action
         - Add missing mux registers
         - Mark ComputeCS read mode as UC on iGPU, unblocking ULLS on iGPU
      
        i915:
         - Relax clear color alignment to 64 bytes [fb]
      
        v3d:
         - Fix warn when unloading v3d
      
        nouveau:
         - Fix cross-device fence handling in nouveau
         - Fix backlight regression for macbooks 5,1
      
        vmwgfx:
         - Fix BO reservation handling in vmwgfx"
      
      * tag 'drm-fixes-2025-01-17' of https://gitlab.freedesktop.org/drm/kernel: (33 commits)
        drm/xe: Mark ComputeCS read mode as UC on iGPU
        drm/xe/oa: Add missing VISACTL mux registers
        drm/xe: make change ccs_mode a synchronous action
        drm/xe: introduce xe_gt_reset and xe_gt_wait_for_reset
        drm/xe/guc: Adding steering info support for GuC register lists
        drm/bridge: ite-it6263: Prevent error pointer dereference in probe()
        drm/v3d: Ensure job pointer is set to NULL after job completion
        drm/vmwgfx: Add new keep_resv BO param
        drm/vmwgfx: Remove busy_places
        drm/vmwgfx: Unreserve BO on error
        drm/amdgpu: fix fw attestation for MP0_14_0_{2/3}
        drm/amdgpu: always sync the GFX pipe on ctx switch
        drm/amdgpu: disable gfxoff with the compute workload on gfx12
        drm/amdgpu: Fix Circular Locking Dependency in AMDGPU GFX Isolation
        drm/i915/fb: Relax clear color alignment to 64 bytes
        drm/amd/display: Disable replay and psr while VRR is enabled
        drm/amd/display: Fix PSR-SU not support but still call the amdgpu_dm_psr_enable
        nouveau/fence: handle cross device fences properly
        drm/tests: connector: Add ycbcr_420_allowed tests
        drm/connector: hdmi: Validate supported_formats matches ycbcr_420_allowed
        ...
      9bffa1ad
    • Linus Torvalds's avatar
      Merge tag 'io_uring-6.13-20250116' of git://git.kernel.dk/linux · a634dda2
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "One fix for the error handling in buffer cloning, and one fix for the
        ring resizing.
      
        Two minor followups for the latter as well.
      
        Both of these issues only affect 6.13, so not marked for stable"
      
      * tag 'io_uring-6.13-20250116' of git://git.kernel.dk/linux:
        io_uring/register: cache old SQ/CQ head reading for copies
        io_uring/register: document io_register_resize_rings() shared mem usage
        io_uring/register: use stable SQ/CQ ring data during resize
        io_uring/rsrc: fixup io_clone_buffers() error handling
      a634dda2
    • Dave Airlie's avatar
      Merge tag 'drm-xe-fixes-2025-01-16' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes · 9b1c673a
      Dave Airlie authored
      
      Driver Changes:
      - Add steering info support for GuC register lists (Jesus Narvaez)
      - Add means to wait for reset and synchronous reset (Maciej)
      - Make changing ccs_mode a synchronous action (Maciej)
      - Add missing mux registers (Ashutosh)
      - Mark ComputeCS read mode as UC on iGPU, unblocking ULLS on iGPU (Matt Brost)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Hellstrom <thomas.hellstrom@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/Z4ll3F1anLEwCvrf@fedora
      9b1c673a
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · f692a6c6
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
      
       - Fix a regression in the irqsoff and wakeup latency tracing
      
         The function graph tracer infrastructure has become generic so that
         fprobes and BPF can be based on it. As it use to only handle function
         graph tracing, it would always calculate the time the function
         entered so that it could then calculate the time it exits and give
         the length of time the function executed for. But this is not needed
         for the other users (fprobes and BPF) and reading the clock adds a
         non-negligible overhead, so the calculation was moved into the
         function graph tracer logic.
      
         But the irqsoff and wakeup latency tracers, when the "display-graph"
         option was set, would use the function graph tracer to calculate the
         times of functions during the latency. The movement of the calltime
         calculation made the value zero for these tracers, and the output no
         longer showed the length of time of each tracer, but instead the
         absolute timestamp of when the function returned (rettime - calltime
         where calltime is now zero).
      
         Have the irqsoff and wakeup latency tracers also do the calltime
         calculation as the function graph tracer does and report the proper
         length of the function timings.
      
       - Update the tracing display to reflect the new preempt lazy model
      
         When the system is configured with preempt lazy, the output of the
         trace data would state "unknown" for the current preemption model.
         Because the lazy preemption model was just added, make it known to
         the tracing subsystem too. This is just a one line change.
      
       - Document multiple function graph having slightly different timings
      
         Now that function graph tracer infrastructure is separate, this also
         allows the function graph tracer to run in multiple instances (it
         wasn't able to do so before). If two instances ran the function graph
         tracer and traced the same functions, the timings for them will be
         slightly different because each does their own timings and collects
         the timestamps differently. Document this to not have people be
         confused by it.
      
      * tag 'trace-v6.13-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        ftrace: Document that multiple function_graph tracing may have different times
        tracing: Print lazy preemption model
        tracing: Fix irqsoff and wakeup latency tracers when using function graph
      f692a6c6
  5. Jan 16, 2025
Loading