1. 08 Feb, 2024 16 commits
    • Jens Axboe's avatar
      io_uring/sqpoll: manage task_work privately · af5d68f8
      Jens Axboe authored
      Decouple from task_work running, and cap the number of entries we process
      at the time. If we exceed that number, push remaining entries to a retry
      list that we'll process first next time.
      
      We cap the number of entries to process at 8, which is fairly random.
      We just want to get enough per-ctx batching here, while not processing
      endlessly.
      
      Since we manually run PF_IO_WORKER related task_work anyway as the task
      never exits to userspace, with this we no longer need to add an actual
      task_work item to the per-process list.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      af5d68f8
    • Jens Axboe's avatar
      io_uring: pass in counter to handle_tw_list() rather than return it · 2708af1a
      Jens Axboe authored
      No functional changes in this patch, just in preparation for returning
      something other than count from this helper.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      2708af1a
    • Jens Axboe's avatar
      io_uring: cleanup handle_tw_list() calling convention · 42c0905f
      Jens Axboe authored
      Now that we don't loop around task_work anymore, there's no point in
      maintaining the ring and locked state outside of handle_tw_list(). Get
      rid of passing in those pointers (and pointers to pointers) and just do
      the management internally in handle_tw_list().
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      42c0905f
    • Jens Axboe's avatar
      io_uring/poll: improve readability of poll reference decrementing · 3cdc4be1
      Jens Axboe authored
      This overly long line is hard to read. Break it up by AND'ing the
      ref mask first, then perform the atomic_sub_return() with the value
      itself.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      3cdc4be1
    • Jens Axboe's avatar
      io_uring: remove unconditional looping in local task_work handling · 9fe3eaea
      Jens Axboe authored
      If we have a ton of notifications coming in, we can be looping in here
      for a long time. This can be problematic for various reasons, mostly
      because we can starve userspace. If the application is waiting on N
      events, then only re-run if we need more events.
      
      Fixes: c0e0d6ba ("io_uring: add IORING_SETUP_DEFER_TASKRUN")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9fe3eaea
    • Jens Axboe's avatar
      io_uring: remove next io_kiocb fetch in task_work running · 670d9d3d
      Jens Axboe authored
      We just reversed the task_work list and that will have touched requests
      as well, just get rid of this optimization as it should not make a
      difference anymore.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      670d9d3d
    • Jens Axboe's avatar
      io_uring: handle traditional task_work in FIFO order · 170539bd
      Jens Axboe authored
      For local task_work, which is used if IORING_SETUP_DEFER_TASKRUN is set,
      we reverse the order of the lockless list before processing the work.
      This is done to process items in the order in which they were queued, as
      the llist always adds to the head.
      
      Do the same for traditional task_work, so we have the same behavior for
      both types.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      170539bd
    • Jens Axboe's avatar
      io_uring: remove 'loops' argument from trace_io_uring_task_work_run() · 4c98b891
      Jens Axboe authored
      We no longer loop in task_work handling, hence delete the argument from
      the tracepoint as it's always 1 and hence not very informative.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4c98b891
    • Jens Axboe's avatar
      io_uring: remove looping around handling traditional task_work · 592b4805
      Jens Axboe authored
      A previous commit added looping around handling traditional task_work
      as an optimization, and while that may seem like a good idea, it's also
      possible to run into application starvation doing so. If the task_work
      generation is bursty, we can get very deep task_work queues, and we can
      end up looping in here for a very long time.
      
      One immediately observable problem with that is handling network traffic
      using provided buffers, where flooding incoming traffic and looping
      task_work handling will very quickly lead to buffer starvation as we
      keep running task_work rather than returning to the application so it
      can handle the associated CQEs and also provide buffers back.
      
      Fixes: 3a0c037b ("io_uring: batch task_work")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      592b4805
    • Jens Axboe's avatar
      io_uring/kbuf: cleanup passing back cflags · 8435c6f3
      Jens Axboe authored
      We have various functions calculating the CQE cflags we need to pass
      back, but it's all the same everywhere. Make a number of the putting
      functions void, and just have the two main helps for this, io_put_kbuf()
      and io_put_kbuf_comp() calculate the actual mask and pass it back.
      
      While at it, cleanup how we put REQ_F_BUFFER_RING buffers. Before
      this change, we would call into __io_put_kbuf() only to go right back
      in to the header defined functions. As clearing this type of buffer
      is just re-assigning the buf_index and incrementing the head, this
      is very wasteful.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      8435c6f3
    • Jens Axboe's avatar
      io_uring/rw: remove dead file == NULL check · 949249e2
      Jens Axboe authored
      Any read/write opcode has needs_file == true, which means that we
      would've failed the request long before reaching the issue stage if we
      didn't successfully assign a file. This check has been dead forever,
      and is really a leftover from generic code.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      949249e2
    • Jens Axboe's avatar
      io_uring: cleanup io_req_complete_post() · 4caa74fd
      Jens Axboe authored
      Move the ctx declaration and assignment up to be generally available
      in the function, as we use req->ctx at the top anyway.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4caa74fd
    • Jens Axboe's avatar
      io_uring: mark the need to lock/unlock the ring as unlikely · bfe30bfd
      Jens Axboe authored
      Any of the fast paths will already have this locked, this helper only
      exists to deal with io-wq invoking request issue where we do not have
      the ctx->uring_lock held already. This means that any common or fast
      path will already have this locked, mark it as such.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      bfe30bfd
    • Jens Axboe's avatar
      io_uring: add io_file_can_poll() helper · 95041b93
      Jens Axboe authored
      This adds a flag to avoid dipping dereferencing file and then f_op to
      figure out if the file has a poll handler defined or not. We generally
      call this at least twice for networked workloads, and if using ring
      provided buffers, we do it on every buffer selection. Particularly the
      latter is troublesome, as it's otherwise a very fast operation.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      95041b93
    • Jens Axboe's avatar
      io_uring/cancel: don't default to setting req->work.cancel_seq · 521223d7
      Jens Axboe authored
      Just leave it unset by default, avoiding dipping into the last
      cacheline (which is otherwise untouched) for the fast path of using
      poll to drive networked traffic. Add a flag that tells us if the
      sequence is valid or not, and then we can defer actually assigning
      the flag and sequence until someone runs cancelations.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      521223d7
    • Jens Axboe's avatar
      io_uring: expand main struct io_kiocb flags to 64-bits · 4bcb982c
      Jens Axboe authored
      We're out of space here, and none of the flags are easily reclaimable.
      Bump it to 64-bits and re-arrange the struct a bit to avoid gaps.
      
      Add a specific bitwise type for the request flags, io_request_flags_t.
      This will help catch violations of casting this value to a smaller type
      on 32-bit archs, like unsigned int.
      
      This creates a hole in the io_kiocb, so move nr_tw up and rsrc_node down
      to retain needing only cacheline 0 and 1 for non-polled opcodes.
      
      No functional changes intended in this patch.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4bcb982c
  2. 07 Feb, 2024 1 commit
  3. 04 Feb, 2024 10 commits
    • Linus Torvalds's avatar
      Linux 6.8-rc3 · 54be6c6c
      Linus Torvalds authored
      54be6c6c
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 3f24fcda
      Linus Torvalds authored
      Pull ext4 fixes from Ted Ts'o:
       "Miscellaneous bug fixes and cleanups in ext4's multi-block allocator
        and extent handling code"
      
      * tag 'for-linus-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (23 commits)
        ext4: make ext4_set_iomap() recognize IOMAP_DELALLOC map type
        ext4: make ext4_map_blocks() distinguish delalloc only extent
        ext4: add a hole extent entry in cache after punch
        ext4: correct the hole length returned by ext4_map_blocks()
        ext4: convert to exclusive lock while inserting delalloc extents
        ext4: refactor ext4_da_map_blocks()
        ext4: remove 'needed' in trace_ext4_discard_preallocations
        ext4: remove unnecessary parameter "needed" in ext4_discard_preallocations
        ext4: remove unused return value of ext4_mb_release_group_pa
        ext4: remove unused return value of ext4_mb_release_inode_pa
        ext4: remove unused return value of ext4_mb_release
        ext4: remove unused ext4_allocation_context::ac_groups_considered
        ext4: remove unneeded return value of ext4_mb_release_context
        ext4: remove unused parameter ngroup in ext4_mb_choose_next_group_*()
        ext4: remove unused return value of __mb_check_buddy
        ext4: mark the group block bitmap as corrupted before reporting an error
        ext4: avoid allocating blocks from corrupted group in ext4_mb_find_by_goal()
        ext4: avoid allocating blocks from corrupted group in ext4_mb_try_best_found()
        ext4: avoid dividing by 0 in mb_update_avg_fragment_size() when block bitmap corrupt
        ext4: avoid bb_free and bb_fragments inconsistency in mb_free_blocks()
        ...
      3f24fcda
    • Linus Torvalds's avatar
      Merge tag 'v6.8-rc3-smb-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 9e28c7a2
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
       "Five smb3 client fixes, mostly multichannel related:
      
         - four multichannel fixes including fix for channel allocation when
           multiple inactive channels, fix for unneeded race in channel
           deallocation, correct redundant channel scaling, and redundant
           multichannel disabling scenarios
      
         - add warning if max compound requests reached"
      
      * tag 'v6.8-rc3-smb-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        smb: client: increase number of PDUs allowed in a compound request
        cifs: failure to add channel on iface should bump up weight
        cifs: do not search for channel if server is terminating
        cifs: avoid redundant calls to disable multichannel
        cifs: make sure that channel scaling is done only once
      9e28c7a2
    • Linus Torvalds's avatar
      Merge tag 'xfs-6.8-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · fc86e5c9
      Linus Torvalds authored
      Pull xfs fixes from Chandan Babu:
      
       - Clear XFS_ATTR_INCOMPLETE filter on removing xattr from a node format
         attribute fork
      
       - Remove conditional compilation of realtime geometry validator
         functions to prevent confusing error messages from being printed on
         the console during the mount operation
      
      * tag 'xfs-6.8-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: remove conditional building of rt geometry validator functions
        xfs: reset XFS_ATTR_INCOMPLETE filter on node removal
      fc86e5c9
    • Linus Torvalds's avatar
      Merge tag 'char-misc-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 3a0e9220
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are three tiny driver fixes for 6.8-rc3.  They include:
      
         - Android binder long-term bug with epoll finally being fixed
      
         - fastrpc driver shutdown bugfix
      
         - open-dice lockdep fix
      
        All of these have been in linux-next this week with no reported
        issues"
      
      * tag 'char-misc-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        binder: signal epoll threads of self-work
        misc: open-dice: Fix spurious lockdep warning
        misc: fastrpc: Mark all sessions as invalid in cb_remove
      3a0e9220
    • Linus Torvalds's avatar
      Merge tag 'tty-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · 02149609
      Linus Torvalds authored
      Pull tty and serial driver fixes from Greg KH:
       "Here are some small tty and serial driver fixes for 6.8-rc3 that
        resolve a number of reported issues. Included in here are:
      
         - rs485 flag definition fix that affected the user/kernel abi in -rc1
      
         - max310x driver fixes
      
         - 8250_pci1xxxx driver off-by-one fix
      
         - uart_tiocmget locking race fix
      
        All of these have been in linux-next for over a week with no reported
        issues"
      
      * tag 'tty-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
        serial: max310x: prevent infinite while() loop in port startup
        serial: max310x: fail probe if clock crystal is unstable
        serial: max310x: improve crystal stable clock detection
        serial: max310x: set default value when reading clock ready bit
        serial: core: Fix atomicity violation in uart_tiocmget
        serial: 8250_pci1xxxx: fix off by one in pci1xxxx_process_read_data()
        tty: serial: Fix bit order in RS485 flag definitions
      02149609
    • Linus Torvalds's avatar
      Merge tag 'usb-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 809be620
      Linus Torvalds authored
      Pull USB driver fixes from Greg KH:
       "Here are a bunch of small USB driver fixes for 6.8-rc3. Included in
        here are:
      
         - new usb-serial driver ids
      
         - new dwc3 driver id added
      
         - typec driver change revert
      
         - ncm gadget driver endian bugfix
      
         - xhci bugfixes for a number of reported issues
      
         - usb hub bugfix for alternate settings
      
         - ulpi driver debugfs memory leak fix
      
         - chipidea driver bugfix
      
         - usb gadget driver fixes
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (24 commits)
        USB: serial: option: add Fibocom FM101-GL variant
        USB: serial: qcserial: add new usb-id for Dell Wireless DW5826e
        USB: serial: cp210x: add ID for IMST iM871A-USB
        usb: typec: tcpm: fix the PD disabled case
        usb: ucsi_acpi: Quirk to ack a connector change ack cmd
        usb: ucsi_acpi: Fix command completion handling
        usb: ucsi: Add missing ppm_lock
        usb: ulpi: Fix debugfs directory leak
        Revert "usb: typec: tcpm: fix cc role at port reset"
        usb: gadget: pch_udc: fix an Excess kernel-doc warning
        usb: f_mass_storage: forbid async queue when shutdown happen
        USB: hub: check for alternate port before enabling A_ALT_HNP_SUPPORT
        usb: chipidea: core: handle power lost in workqueue
        usb: dwc3: gadget: Fix NULL pointer dereference in dwc3_gadget_suspend
        usb: dwc3: pci: add support for the Intel Arrow Lake-H
        usb: core: Prevent null pointer dereference in update_port_device_state
        xhci: handle isoc Babble and Buffer Overrun events properly
        xhci: process isoc TD properly when there was a transaction error mid TD.
        xhci: fix off by one check when adding a secondary interrupter.
        xhci: fix possible null pointer dereference at secondary interrupter removal
        ...
      809be620
    • Linus Torvalds's avatar
      Merge tag 'i2c-for-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · bdda52cc
      Linus Torvalds authored
      Pull i2c fixlet from Wolfram Sang:
       "MAINTAINERS update to point people to the new tree for i2c host driver
        changes"
      
      * tag 'i2c-for-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        MAINTAINERS: Update i2c host drivers repository
      bdda52cc
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine · 8a0c60a0
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
       "Core:
      
         - fix return value of is_slave_direction() for D2D dma
      
        Driver fixes for:
      
         - Documentaion fixes to resolve warnings for at_hdmac driver
      
         - bunch of fsl driver fixes for memory leaks, and useless kfree
      
         - TI edma and k3 fixes for packet error and null pointer checks"
      
      * tag 'dmaengine-fix-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine:
        dmaengine: at_hdmac: add missing kernel-doc style description
        dmaengine: fix is_slave_direction() return false when DMA_DEV_TO_DEV
        dmaengine: fsl-qdma: Remove a useless devm_kfree()
        dmaengine: fsl-qdma: Fix a memory leak related to the queue command DMA
        dmaengine: fsl-qdma: Fix a memory leak related to the status queue DMA
        dmaengine: ti: k3-udma: Report short packet errors
        dmaengine: ti: edma: Add some null pointer checks to the edma_probe
        dmaengine: fsl-dpaa2-qdma: Fix the size of dma pools
        dmaengine: at_hdmac: fix some kernel-doc warnings
      8a0c60a0
    • Linus Torvalds's avatar
      Merge tag 'phy-fixes-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy · 843a33d6
      Linus Torvalds authored
      Pull phy driver fixes from Vinod Koul:
      
       - TI null pointer dereference
      
       - missing erdes mux entry in lan966x driver
      
       - Return of error code in renesas driver
      
       - Serdes init sequence and register offsets for IPQ drivers
      
      * tag 'phy-fixes-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy:
        phy: ti: phy-omap-usb2: Fix NULL pointer dereference for SRP
        phy: lan966x: Add missing serdes mux entry
        phy: renesas: rcar-gen3-usb2: Fix returning wrong error code
        phy: qcom-qmp-usb: fix serdes init sequence for IPQ6018
        phy: qcom-qmp-usb: fix register offsets for ipq8074/ipq6018
      843a33d6
  4. 03 Feb, 2024 2 commits
    • Wolfram Sang's avatar
      Merge tag 'i2c-host-fixes-6.8-rc3' of... · 957bd221
      Wolfram Sang authored
      Merge tag 'i2c-host-fixes-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current
      
      Just a maintenance patch that updates the repository where the
      i2c host and muxes related patches will be collected.
      957bd221
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.8-1-2024-02-01' of... · b555d191
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.8-1-2024-02-01' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
       "Vendor events:
      
         - Intel Alderlake/Sapphire Rapids metric fixes, the CPU type
           ("cpu_atom", "cpu_core") needs to be used as a prefix to be
           considered on a metric formula, detected via one of the 'perf test'
           entries.
      
        'perf test' fixes:
      
         - Fix the creation of event selector lists on 'perf test' entries, by
           initializing the sample ID flag, which is done by 'perf record', so
           this fix affects only the tests, the common case isn't affected
      
         - Make 'perf list' respect debug settings (-v) to fix its 'perf test'
           entry
      
         - Fix 'perf script' test when python support isn't enabled
      
         - Special case 'perf script' tests on s390, where only DWARF call
           graphs are supported and only on software events
      
         - Make 'perf daemon' signal test less racy
      
        Compiler warnings/errors:
      
         - Remove needless malloc(0) call in 'perf top' that triggers
           -Walloc-size
      
         - Fix calloc() argument order to address error introduced in gcc-14
      
        Build:
      
         - Make minimal shellcheck version to v0.6.0, avoiding the build to
           fail with older versions
      
        Sync kernel header copies:
      
         - stat.h to pick STATX_MNT_ID_UNIQUE
      
         - msr-index.h to pick IA32_MKTME_KEYID_PARTITIONING
      
         - drm.h to pick DRM_IOCTL_MODE_CLOSEFB
      
         - unistd.h to pick {list,stat}mount,
           lsm_{[gs]et_self_attr,list_modules} syscall numbers
      
         - x86 cpufeatures to pick TDX, Zen, APIC MSR fence changes
      
         - x86's mem{cpy,set}_64.S used in 'perf bench'
      
         - Also, without tooling effects: asm-generic/unaligned.h, mount.h,
           fcntl.h, kvm headers"
      
      * tag 'perf-tools-fixes-for-v6.8-1-2024-02-01' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (21 commits)
        perf tools headers: update the asm-generic/unaligned.h copy with the kernel sources
        tools include UAPI: Sync linux/mount.h copy with the kernel sources
        perf evlist: Fix evlist__new_default() for > 1 core PMU
        tools headers: Update the copy of x86's mem{cpy,set}_64.S used in 'perf bench'
        tools headers x86 cpufeatures: Sync with the kernel sources to pick TDX, Zen, APIC MSR fence changes
        tools headers UAPI: Sync unistd.h to pick {list,stat}mount, lsm_{[gs]et_self_attr,list_modules} syscall numbers
        perf vendor events intel: Alderlake/sapphirerapids metric fixes
        tools headers UAPI: Sync kvm headers with the kernel sources
        perf tools: Fix calloc() arguments to address error introduced in gcc-14
        perf top: Remove needless malloc(0) call that triggers -Walloc-size
        perf build: Make minimal shellcheck version to v0.6.0
        tools headers UAPI: Update tools's copy of drm.h headers to pick DRM_IOCTL_MODE_CLOSEFB
        perf test shell daemon: Make signal test less racy
        perf test shell script: Fix test for python being disabled
        perf test: Workaround debug output in list test
        perf list: Add output file option
        perf list: Switch error message to pr_err() to respect debug settings (-v)
        perf test: Fix 'perf script' tests on s390
        tools headers UAPI: Sync linux/fcntl.h with the kernel sources
        tools arch x86: Sync the msr-index.h copy with the kernel sources to pick IA32_MKTME_KEYID_PARTITIONING
        ...
      b555d191
  5. 02 Feb, 2024 11 commits
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 56897d51
      Linus Torvalds authored
      Pull tracing and eventfs fixes from Steven Rostedt:
      
       - Fix the return code for ring_buffer_poll_wait()
      
         It was returing a -EINVAL instead of EPOLLERR.
      
       - Zero out the tracefs_inode so that all fields are initialized.
      
         The ti->private could have had stale data, but instead of just
         initializing it to NULL, clear out the entire structure when it is
         allocated.
      
       - Fix a crash in timerlat
      
         The hrtimer was initialized at read and not open, but is canceled at
         close. If the file was opened and never read the close will pass a
         NULL pointer to hrtime_cancel().
      
       - Rewrite of eventfs.
      
         Linus wrote a patch series to remove the dentry references in the
         eventfs_inode and to use ref counting and more of proper VFS
         interfaces to make it work.
      
       - Add warning to put_ei() if ei is not set to free. That means
         something is about to free it when it shouldn't.
      
       - Restructure the eventfs_inode to make it more compact, and remove the
         unused llist field.
      
       - Remove the fsnotify*() funtions for when the inodes were being
         created in the lookup code. It doesn't make sense to notify about
         creation just because something is being looked up.
      
       - The inode hard link count was not accurate.
      
         It was being updated when a file was looked up. The inodes of
         directories were updating their parent inode hard link count every
         time the inode was created. That means if memory reclaim cleaned a
         stale directory inode and the inode was lookup up again, it would
         increment the parent inode again as well. Al Viro said to just have
         all eventfs directories have a hard link count of 1. That tells user
         space not to trust it.
      
      * tag 'trace-v6.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        eventfs: Keep all directory links at 1
        eventfs: Remove fsnotify*() functions from lookup()
        eventfs: Restructure eventfs_inode structure to be more condensed
        eventfs: Warn if an eventfs_inode is freed without is_freed being set
        tracing/timerlat: Move hrtimer_init to timerlat_fd open()
        eventfs: Get rid of dentry pointers without refcounts
        eventfs: Clean up dentry ops and add revalidate function
        eventfs: Remove unused d_parent pointer field
        tracefs: dentry lookup crapectomy
        tracefs: Avoid using the ei->dentry pointer unnecessarily
        eventfs: Initialize the tracefs inode properly
        tracefs: Zero out the tracefs_inode when allocating it
        ring-buffer: Clean ring_buffer_poll_wait() error return
      56897d51
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v6.8-rc2-revert' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 6b89b6af
      Linus Torvalds authored
      Pull gfs2 revert from Andreas Gruenbacher:
       "It turns out that the commit to use GL_NOBLOCK flag for non-blocking
        lookups has several issues, and not all of them have a simple fix"
      
      * tag 'gfs2-v6.8-rc2-revert' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        Revert "gfs2: Use GL_NOBLOCK flag for non-blocking lookups"
      6b89b6af
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.8-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · b1dd6c26
      Linus Torvalds authored
      Pull pci fixes from Bjorn Helgaas:
      
       - Fix a potential deadlock that was reintroduced by an ASPM revert
         merged for v6.8 (Johan Hovold)
      
       - Add Manivannan Sadhasivam as PCI Endpoint maintainer (Lorenzo
         Pieralisi)
      
      * tag 'pci-v6.8-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
        MAINTAINERS: Add Manivannan Sadhasivam as PCI Endpoint maintainer
        PCI/ASPM: Fix deadlock when enabling ASPM
      b1dd6c26
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2024-02-03' of git://anongit.freedesktop.org/drm/drm · 9c2f0338
      Linus Torvalds authored
      Pul drm fixes from Dave Airlie:
       "Regular weekly fixes, mostly amdgpu and xe. One nouveau fix is a
        better fix for the deadlock and also helps with a sync race we were
        seeing.
      
        dma-buf:
         - heaps CMA page accounting fix
      
        virtio-gpu:
         - fix segment size
      
        xe:
         - A crash fix
         - A fix for an assert due to missing mem_acces ref
         - Only allow a single user-fence per exec / bind.
         - Some sparse warning fixes
         - Two fixes for compilation failures on various odd combinations of
           gcc / arch pointed out on LKML.
         - Fix a fragile partial allocation pointed out on LKML.
         - A sysfs ABI documentation warning fix
      
        amdgpu:
         - Fix reboot issue seen on some 7000 series dGPUs
         - Fix client init order for KFD
         - Misc display fixes
         - USB-C fix
         - DCN 3.5 fixes
         - Fix issues with GPU scheduler and GPU reset
         - GPU firmware loading fix
         - Misc fixes
         - GC 11.5 fix
         - VCN 4.0.5 fix
         - IH overflow fix
      
        amdkfd:
         - SVM fixes
         - Trap handler fix
         - Fix device permission lookup
         - Properly reserve BO before validating it
      
        nouveau:
         - fence/irq lock deadlock fix (second attempt)
         - gsp command size fix
      
      * tag 'drm-fixes-2024-02-03' of git://anongit.freedesktop.org/drm/drm: (35 commits)
        nouveau: offload fence uevents work to workqueue
        nouveau/gsp: use correct size for registry rpc.
        drm/amdgpu/pm: Use inline function for IP version check
        drm/hwmon: Fix abi doc warnings
        drm/xe: Make all GuC ABI shift values unsigned
        drm/xe/vm: Subclass userptr vmas
        drm/xe: Use LRC prefix rather than CTX prefix in lrc desc defines
        drm/xe: Don't use __user error pointers
        drm/xe: Annotate mcr_[un]lock()
        drm/xe: Only allow 1 ufence per exec / bind IOCTL
        drm/xe: Grab mem_access when disabling C6 on skip_guc_pc platforms
        drm/xe: Fix crash in trace_dma_fence_init()
        drm/amdgpu: Reset IH OVERFLOW_CLEAR bit
        drm/amdgpu: remove asymmetrical irq disabling in vcn 4.0.5 suspend
        drm/amdgpu: drm/amdgpu: remove golden setting for gfx 11.5.0
        drm/amdkfd: reserve the BO before validating it
        drm/amdgpu: Fix missing error code in 'gmc_v6/7/8/9_0_hw_init()'
        drm/amd/display: Fix buffer overflow in 'get_host_router_total_dp_tunnel_bw()'
        drm/amd/display: Add NULL check for kzalloc in 'amdgpu_dm_atomic_commit_tail()'
        drm/amd: Don't init MEC2 firmware when it fails to load
        ...
      9c2f0338
    • Linus Torvalds's avatar
      Merge tag 'input-for-v6.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · eab5c86d
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
      
       - a fix for the fix to deal with newer laptops which get confused by
         the "GET ID" command when probing for PS/2 keyboards
      
       - a couple of tweaks to i8042 to handle Clevo NS70PU and Lifebook U728
         laptops
      
       - a change to bcm5974 to validate that the device has appropriate
         endpoints
      
       - an addition of new product ID to xpad driver to recognize Lenovo
         Legion Go controllers
      
       - a quirk to Goodix controller to deal with extra GPIO described in
         ACPI tables on some devices.
      
      * tag 'input-for-v6.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: i8042 - add Fujitsu Lifebook U728 to i8042 quirk table
        Input: i8042 - fix strange behavior of touchpad on Clevo NS70PU
        Input: atkbd - do not skip atkbd_deactivate() when skipping ATKBD_CMD_GETID
        Input: atkbd - skip ATKBD_CMD_SETLEDS when skipping ATKBD_CMD_GETID
        Input: bcm5974 - check endpoint type before starting traffic
        Input: xpad - add Lenovo Legion Go controllers
        Input: goodix - accept ACPI resources with gpio_count == 3 && gpio_int_idx == 0
      eab5c86d
    • Linus Torvalds's avatar
      Merge tag 'sound-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 01370ceb
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "A collection of fixes, mostly device-specific ones:
      
         - Minor PCM core fix for name strings
      
         - ASoC Qualcomm fixes, including DAI support extensions
      
         - ASoC AMD platform updates
      
         - ASoC Allwinner platform updates
      
         - Various ASoC codec fixes for WSA, WCD, ES8326 drivers
      
         - Various HD-audio and USB-audio fixes and quirks
      
         - A series of fixes for Cirrus CS35L56 codecs"
      
      * tag 'sound-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (63 commits)
        ALSA: usb-audio: Ignore clock selector errors for single connection
        ALSA: hda/realtek: Enable headset mic on Vaio VJFE-ADL
        ALSA: hda: cs35l56: Remove unused test stub function
        ALSA: hda: cs35l56: Firmware file must match the version of preloaded firmware
        ALSA: hda: cs35l56: Fix filename string field layout
        ALSA: hda: cs35l56: Fix order of searching for firmware files
        ASoC: cs35l56: Allow more time for firmware to boot
        ASoC: cs35l56: Load tunings for the correct speaker models
        ASoC: cs35l56: Firmware file must match the version of preloaded firmware
        ASoC: cs35l56: Fix misuse of wm_adsp 'part' string for silicon revision
        ASoC: cs35l56: Fix for initializing ASP1 mixer registers
        ALSA: hda: cs35l56: Initialize all ASP1 registers
        ASoC: cs35l56: Fix default SDW TX mixer registers
        ASoC: cs35l56: Fix to ensure ASP1 registers match cache
        ASoC: cs35l56: Remove buggy checks from cs35l56_is_fw_reload_needed()
        ASoC: cs35l56: Don't add the same register patch multiple times
        ASoC: cs35l56: cs35l56_component_remove() must clean up wm_adsp
        ASoC: cs35l56: cs35l56_component_remove() must clear cs35l56->component
        ASoC: wm_adsp: Don't overwrite fwf_name with the default
        ASoC: wm_adsp: Fix firmware file search order
        ...
      01370ceb
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v6.8-rc3' of... · 43e7ef64
      Linus Torvalds authored
      Merge tag 'hwmon-for-v6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - pmbus/mp2975: Fix driver initialization
      
       - gigabyte_waterforce: Add missing unlock in error handling path
      
      * tag 'hwmon-for-v6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (pmbus/mp2975) Correct comment inside 'mp2975_read_byte_data'
        hwmon: (pmbus/mp2975) Fix driver initialization for MP2975 device
        hwmon: gigabyte_waterforce: Fix locking bug in waterforce_get_status()
      43e7ef64
    • Linus Torvalds's avatar
      Merge tag 'for-v6.8-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply · 79837a7c
      Linus Torvalds authored
      Pull power supply fix from Sebastian Reichel:
      
       - qcom_battmgr: revert broken fix
      
      * tag 'for-v6.8-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply:
        Revert "power: supply: qcom_battmgr: Register the power supplies after PDR is up"
      79837a7c
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v6.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 4f18d3fd
      Linus Torvalds authored
      Pul iommu fixes from Joerg Roedel:
      
       - Make iommu_ops->default_domain work without CONFIG_IOMMU_DMA to fix
         initialization of FSL-PAMU devices
      
       - Fix for Tegra fbdev initialization failure
      
       - Fix for a VFIO device unbinding failure on PowerPC
      
      * tag 'iommu-fixes-v6.8-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        powerpc: iommu: Bring back table group release_ownership() call
        drm/tegra: Do not assume that a NULL domain means no DMA IOMMU
        iommu: Allow ops->default_domain to work when !CONFIG_IOMMU_DMA
      4f18d3fd
    • Linus Torvalds's avatar
      Merge tag 'for-6.8/dm-fixes' of... · 6897cea7
      Linus Torvalds authored
      Merge tag 'for-6.8/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - Fix DM ioctl interface to avoid INT_MAX overflow warnings from
         kvmalloc by limiting the number of targets and parameter size area.
      
       - Fix DM stats to avoid INT_MAX overflow warnings from kvmalloc by
         limiting the number of entries supported.
      
       - Fix DM writecache to support mapping devices larger than 1 TiB by
         switching from using kvmalloc_array to vmalloc_array -- which avoids
         INT_MAX overflow in kvmalloc_node and associated warnings.
      
       - Remove the (ab)use of tasklets from both the DM crypt and verity
         targets. They will be converted to use BH workqueue in future.
      
      * tag 'for-6.8/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm-crypt, dm-verity: disable tasklets
        dm writecache: allow allocations larger than 2GiB
        dm stats: limit the number of entries
        dm: limit the number of targets and parameter size area
      6897cea7
    • Linus Torvalds's avatar
      Merge tag 'ata-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux · 03503275
      Linus Torvalds authored
      Pull ata fix from Niklas Cassel:
      
       - Following up on last week's ASMedia ASM1061 43-bit dma_mask quirk, we
         sent an email to ASMedia developers that have previously been active
         on the mailing list, asking exactly which SATA controllers that are
         affected by this hardware limitation.
      
         We got a reply that it affects all the SATA controllers in the
         ASM106x family, thus extend the existing 43-bit dma_mask quirk to
         apply to all the affected ASMedia SATA controllers.
      
      * tag 'ata-6.8-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
        ahci: Extend ASM1061 43-bit DMA address quirk to other ASM106x parts
      03503275