1. 07 Sep, 2021 2 commits
    • Prasad Sodagudi's avatar
      PM: sleep: core: Avoid setting power.must_resume to false · 4a9344cd
      Prasad Sodagudi authored
      There are variables(power.may_skip_resume and dev->power.must_resume)
      and DPM_FLAG_MAY_SKIP_RESUME flags to control the resume of devices after
      a system wide suspend transition.
      
      Setting the DPM_FLAG_MAY_SKIP_RESUME flag means that the driver allows
      its "noirq" and "early" resume callbacks to be skipped if the device
      can be left in suspend after a system-wide transition into the working
      state. PM core determines that the driver's "noirq" and "early" resume
      callbacks should be skipped or not with dev_pm_skip_resume() function by
      checking power.may_skip_resume variable.
      
      power.must_resume variable is getting set to false in __device_suspend()
      function without checking device's DPM_FLAG_MAY_SKIP_RESUME settings.
      In problematic scenario, where all the devices in the suspend_late
      stage are successful and some device can fail to suspend in
      suspend_noirq phase. So some devices successfully suspended in suspend_late
      stage are not getting chance to execute __device_suspend_noirq()
      to set dev->power.must_resume variable to true and not getting
      resumed in early_resume phase.
      
      Add a check for device's DPM_FLAG_MAY_SKIP_RESUME flag before
      setting power.must_resume variable in __device_suspend function.
      
      Fixes: 6e176bf8 ("PM: sleep: core: Do not skip callbacks in the resume phase")
      Signed-off-by: default avatarPrasad Sodagudi <psodagud@codeaurora.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      4a9344cd
    • Sergey Shtylyov's avatar
      PM: sleep: wakeirq: drop useless parameter from dev_pm_attach_wake_irq() · d216bfb4
      Sergey Shtylyov authored
      This function has the 'irq' parameter which isn't ever used, so drop it.
      Signed-off-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
      [ rjw: Subject and changelog edits ]
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d216bfb4
  2. 31 Aug, 2021 22 commits
    • Linus Torvalds's avatar
      Merge tag 'pm-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 5cbba605
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These address some PCI device power management issues, add new
        hardware support to the RAPL power capping driver, add HWP guaranteed
        performance change notification support to the intel_pstate driver,
        replace deprecated CPU-hotplug functions in a few places, update CPU
        PM notifiers to use raw spinlocks, update the PM domains framework
        (new DT property support, Kconfig fix), do a couple of cleanups in
        code related to system sleep, and improve the energy model and the
        schedutil cpufreq governor.
      
        Specifics:
      
         - Address 3 PCI device power management issues (Rafael Wysocki).
      
         - Add Power Limit4 support for Alder Lake to the Intel RAPL power
           capping driver (Sumeet Pawnikar).
      
         - Add HWP guaranteed performance change notification support to the
           intel_pstate driver (Srinivas Pandruvada).
      
         - Replace deprecated CPU-hotplug functions in code related to power
           management (Sebastian Andrzej Siewior).
      
         - Update CPU PM notifiers to use raw spinlocks (Valentin Schneider).
      
         - Add support for 'required-opps' DT property to the generic power
           domains (genpd) framework and use this property for I2C on ARM64
           sc7180 (Rajendra Nayak).
      
         - Fix Kconfig issue related to genpd (Geert Uytterhoeven).
      
         - Increase energy calculation precision in the Energy Model (Lukasz
           Luba).
      
         - Fix kobject deletion in the exit code of the schedutil cpufreq
           governor (Kevin Hao).
      
         - Unmark some functions as kernel-doc in the PM core to avoid
           false-positive documentation build warnings (Randy Dunlap).
      
         - Check RTC features instead of ops in suspend_test Alexandre
           Belloni)"
      
      * tag 'pm-5.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PM: domains: Fix domain attach for CONFIG_PM_OPP=n
        powercap: Add Power Limit4 support for Alder Lake SoC
        cpufreq: intel_pstate: Process HWP Guaranteed change notification
        thermal: intel: Allow processing of HWP interrupt
        notifier: Remove atomic_notifier_call_chain_robust()
        PM: cpu: Make notifier chain use a raw_spinlock_t
        PM: sleep: unmark 'state' functions as kernel-doc
        arm64: dts: sc7180: Add required-opps for i2c
        PM: domains: Add support for 'required-opps' to set default perf state
        opp: Don't print an error if required-opps is missing
        cpufreq: schedutil: Use kobject release() method to free sugov_tunables
        PM: EM: Increase energy calculation precision
        PM: sleep: check RTC features instead of ops in suspend_test
        PM: sleep: s2idle: Replace deprecated CPU-hotplug functions
        cpufreq: Replace deprecated CPU-hotplug functions
        powercap: intel_rapl: Replace deprecated CPU-hotplug functions
        PCI: PM: Enable PME if it can be signaled from D3cold
        PCI: PM: Avoid forcing PCI_D0 for wakeup reasons inconsistently
        PCI: Use pci_update_current_state() in pci_enable_device_flags()
      5cbba605
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-5.15' of git://github.com/cschaufler/smack-next · 9b2eacd8
      Linus Torvalds authored
      Pull smack updates from Casey Schaufler:
       "There is a variable used only during start-up that's now marked
        __initdata and a change where the code was working by sheer luck that
        is now done properly.
      
        Both have been in next for several weeks and pass the Smack testsuite"
      
      * tag 'Smack-for-5.15' of git://github.com/cschaufler/smack-next:
        smack: mark 'smack_enabled' global variable as __initdata
        Smack: Fix wrong semantics in smk_access_entry()
      9b2eacd8
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20210830' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · 8e0cd952
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Two patches in the audit pull request for v5.15; one is trivial
        ("header protection") but the second is a real patch that fixes a
        refcounting problem.
      
        The refcount fix normally would have been sent up during the -rcX
        cycle, but since we merged it less than a week before v5.14 proper I
        felt it was better to wait for the merge window to open; the patch is
        marked with the usual -stable markings"
      
      * tag 'audit-pr-20210830' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: move put_tree() to avoid trim_trees refcount underflow and UAF
        audit: add header protection to kernel/audit.h
      8e0cd952
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20210830' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · befa491c
      Linus Torvalds authored
      Pull selinux update from Paul Moore:
       "We've got an unusually small SELinux pull request for v5.15 that
        consists of only one (?!) patch that is really pretty minor when you
        look at it.
      
        Unsurprisingly it passes all of our tests and merges cleanly on top of
        your tree right now, please merge this for v5.15"
      
      * tag 'selinux-pr-20210830' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: return early for possible NULL audit buffers
      befa491c
    • Linus Torvalds's avatar
      Merge tag 'kernel.sys.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · e55f0c43
      Linus Torvalds authored
      Pull set_user()  update from Christian Brauner:
       "This contains a single fix to set_user() which aligns permission
        checks with the corresponding fork() codepath. No one involved in this
        could come up with a reason for the difference.
      
        A capable caller can already circumvent the check when they fork where
        the permission checks are already for the relevant capabilities in
        addition to also allowing to exceed nproc when it is the init user.
      
        So apply the same logic to set_user()"
      
      * tag 'kernel.sys.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        set_user: add capability check when rlimit(RLIMIT_NPROC) exceeds
      e55f0c43
    • Linus Torvalds's avatar
      Merge tag 'fs.idmapped.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 67b03f93
      Linus Torvalds authored
      Pull idmapping documentation updates from Christian Brauner:
       "The bulk of the idmapped work this cycle was adding support for
        idmapped mounts to btrfs.
      
        While this required the addition of a (simple) new vfs helper all the
        work is going through David Sterba's btrfs tree. It was way simpler to
        do it this way rather then forcing David to coordinate between his
        btrfs and my tree. Plus I don't care who merges it as long as I feel I
        can trust the maintainer and the btrfs folks were really fast and
        helpful in reviewing this work.
      
        As always, associated with the btrfs port for idmapped mounts is a new
        fstests extension specifically concerned with btrfs ioctls (e.g.
        subvolume creation, deletion etc.) on idmapped mounts which can be
        found in the fstests repo as 5f8179ce8b00 ("btrfs: introduce btrfs
        specific idmapped mounts tests").
      
        Consequently, this cycle the idmapping pull is boring. It only
        contains documentation updates, specifically about how idmappings and
        idmapped mounts work"
      
      * tag 'fs.idmapped.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        doc: give a more thorough id handling explanation
      67b03f93
    • Linus Torvalds's avatar
      Merge tag 'fs.close_range.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 927bc120
      Linus Torvalds authored
      Pull close_range() cleanup from Christian Brauner:
       "This is a cleanup for close_range() which was sent as part of a bugfix
        we did some time ago in commit 9b5b8722 ("file: fix close_range()
        for unshare+cloexec").
      
        We used to share more code between some helpers for close_range()
        which made retrieving the maximum number of open fds before calling
        into the helpers sensible. But with the introduction of
        CLOSE_RANGE_CLOEXEC and the need to retrieve the number of maximum fds
        once more for CLOSE_RANGE_CLOEXEC that stopped making sense. So the
        code was in a dumb in-limbo state.
      
        Fix this by simplifying the code a bit.
      
        The original idea was to only fix the bug itself and make backporting
        easy. And since the cleanup wasn't very pressing I left it in
        linux-next for a very long time. I didn't pull the patches from the
        list again back then which is why they don't have lore-links. So I'm
        listing them below explicitly"
      
      Commit 03ba0fe4 ("file: simplify logic in __close_range()")
      Link: https://lore.kernel.org/linux-fsdevel/20210402123548.108372-3-brauner@kernel.org
      
      Commit f49fd6d3 ("file: let pick_file() tell caller it's done")
      Link: https://lore.kernel.org/linux-fsdevel/20210402123548.108372-4-brauner@kernel.org
      
      * tag 'fs.close_range.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        file: simplify logic in __close_range()
        file: let pick_file() tell caller it's done
      927bc120
    • Linus Torvalds's avatar
      Merge tag 'fs.move_mount.move_mount_set_group.v5.15' of... · 1dd5915a
      Linus Torvalds authored
      Merge tag 'fs.move_mount.move_mount_set_group.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux
      
      Pull move_mount updates from Christian Brauner:
       "This contains an extension to the move_mount() syscall making it
        possible to add a single private mount into an existing propagation
        tree.
      
        The use-case comes from the criu folks which have been struggling with
        restoring complex mount trees for a long time. Variations of this work
        have been discussed at Plumbers before, e.g.
      
            https://www.linuxplumbersconf.org/event/7/contributions/640/
      
        The extension to move_mount() enables criu to restore any set of mount
        namespaces, mount trees and sharing group trees without introducing
        yet more complexity into mount propagation itself.
      
        The changes required to criu to make use of this and restore complex
        propagation trees are available at
      
            https://github.com/Snorch/criu/commits/mount-v2-poc
      
        A cleaned-up version of this will go up for merging into the main criu
        repo after this lands"
      
      * tag 'fs.move_mount.move_mount_set_group.v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        tests: add move_mount(MOVE_MOUNT_SET_GROUP) selftest
        move_mount: allow to add a mount into an existing group
      1dd5915a
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.15-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 0ee7c3e2
      Linus Torvalds authored
      Pull iomap updates from Darrick Wong:
       "The most notable externally visible change for this cycle is the
        addition of support for reads to inline tail fragments of files, which
        was requested by the erofs developers; and a correction for a kernel
        memory corruption bug if the sysadmin tries to activate a swapfile
        with more pages than the swapfile header suggests.
      
        We also now report writeback completion errors to the file mapping
        correctly, instead of munging all errors into EIO.
      
        Internally, the bulk of the changes are Christoph's patchset to reduce
        the indirect function call count by a third to a half by converting
        iomap iteration from a loop pattern to a generator/consumer pattern.
        As an added bonus, fsdax no longer open-codes iomap apply loops.
      
        Summary:
      
         - Simplify the bio_end_page usage in the buffered IO code.
      
         - Support reading inline data at nonzero offsets for erofs.
      
         - Fix some typos and bad grammar.
      
         - Convert kmap_atomic usage in the inline data read path.
      
         - Add some extra inline data input checking.
      
         - Fix a memory corruption bug stemming from iomap_swapfile_activate
           trying to activate more pages than mm was expecting.
      
         - Pass errnos through the page writeback code so that writeback
           errors are reported correctly instead of being munged to EIO.
      
         - Replace iomap_apply with a open-coded iterator loops to reduce the
           number of indirect calls by a third to a half.
      
         - Refactor the fsdax code to use iomap iterators instead of the
           open-coded iomap_apply code that it had before.
      
         - Format file range iomap tracepoint data in hexadecimal and
           standardize the names used in the pretty-print string"
      
      * tag 'iomap-5.15-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (41 commits)
        iomap: standardize tracepoint formatting and storage
        mm/swap: consider max pages in iomap_swapfile_add_extent
        iomap: move loop control code to iter.c
        iomap: constify iomap_iter_srcmap
        fsdax: switch the fault handlers to use iomap_iter
        fsdax: factor out a dax_fault_actor() helper
        fsdax: factor out helpers to simplify the dax fault code
        iomap: rework unshare flag
        iomap: pass an iomap_iter to various buffered I/O helpers
        iomap: remove iomap_apply
        fsdax: switch dax_iomap_rw to use iomap_iter
        iomap: switch iomap_swapfile_activate to use iomap_iter
        iomap: switch iomap_seek_data to use iomap_iter
        iomap: switch iomap_seek_hole to use iomap_iter
        iomap: switch iomap_bmap to use iomap_iter
        iomap: switch iomap_fiemap to use iomap_iter
        iomap: switch __iomap_dio_rw to use iomap_iter
        iomap: switch iomap_page_mkwrite to use iomap_iter
        iomap: switch iomap_zero_range to use iomap_iter
        iomap: switch iomap_file_unshare to use iomap_iter
        ...
      0ee7c3e2
    • Linus Torvalds's avatar
      Merge tag 'vfs-5.15-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 916d636e
      Linus Torvalds authored
      Pull project quota update from Darrick Wong:
       "A single VFS patch that prevents userspace from setting project quota
        ids on files that the VFS considers invalid"
      
      * tag 'vfs-5.15-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        fs: forbid invalid project ID
      916d636e
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 8bda9557
      Linus Torvalds authored
      Pull nfsd updates from Chuck Lever:
       "New features:
      
         - Support for server-side disconnect injection via debugfs
      
         - Protocol definitions for new RPC_AUTH_TLS authentication flavor
      
        Performance improvements:
      
         - Reduce page allocator traffic in the NFSD splice read actor
      
         - Reduce CPU utilization in svcrdma's Send completion handler
      
        Notable bug fixes:
      
         - Stabilize lockd operation when re-exporting NFS mounts
      
         - Fix the use of %.*s in NFSD tracepoints
      
         - Fix /proc/sys/fs/nfs/nsm_use_hostnames"
      
      * tag 'nfsd-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (31 commits)
        nfsd: fix crash on LOCKT on reexported NFSv3
        nfs: don't allow reexport reclaims
        lockd: don't attempt blocking locks on nfs reexports
        nfs: don't atempt blocking locks on nfs reexports
        Keep read and write fds with each nlm_file
        lockd: update nlm_lookup_file reexport comment
        nlm: minor refactoring
        nlm: minor nlm_lookup_file argument change
        lockd: lockd server-side shouldn't set fl_ops
        SUNRPC: Add documentation for the fail_sunrpc/ directory
        SUNRPC: Server-side disconnect injection
        SUNRPC: Move client-side disconnect injection
        SUNRPC: Add a /sys/kernel/debug/fail_sunrpc/ directory
        svcrdma: xpt_bc_xprt is already clear in __svc_rdma_free()
        nfsd4: Fix forced-expiry locking
        rpc: fix gss_svc_init cleanup on failure
        SUNRPC: Add RPC_AUTH_TLS protocol numbers
        lockd: change the proc_handler for nsm_use_hostnames
        sysctl: introduce new proc handler proc_dobool
        SUNRPC: Fix a NULL pointer deref in trace_svc_stats_latency()
        ...
      8bda9557
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v5.14-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 4529fb15
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Various withdraw related fixes (freeze glock recursion, thread
         initialization / destruction order, journal recovery, glock cleanup,
         withdraw under journal lock).
      
       - Some error message improvements.
      
       - Various minor cleanups.
      
      * tag 'gfs2-v5.14-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Remove redundant check from gfs2_glock_dq
        gfs2: Delay withdraw from atomic context
        gfs2: Don't call dlm after protocol is unmounted
        gfs2: don't stop reads while withdraw in progress
        gfs2: Mark journal inodes as "don't cache"
        gfs2: nit: gfs2_drop_inode shouldn't return bool
        gfs2: Eliminate vestigial HIF_FIRST
        gfs2: Make recovery error more readable
        gfs2: Don't release and reacquire local statfs bh
        gfs2: init system threads before freeze lock
        gfs2: tiny cleanup in gfs2_log_reserve
        gfs2: trivial clean up of gfs2_ail_error
        gfs2: be more verbose replaying invalid rgrp blocks
        gfs2: Fix glock recursion in freeze_go_xmote_bh
        gfs2: Fix memory leak of object lsi on error return path
      4529fb15
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · cd358208
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "Some small fixes and cleanups for fs/crypto/:
      
         - Fix ->getattr() for ext4, f2fs, and ubifs to report the correct
           st_size for encrypted symlinks
      
         - Use base64url instead of a custom Base64 variant
      
         - Document struct fscrypt_operations"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fscrypt: document struct fscrypt_operations
        fscrypt: align Base64 encoding with RFC 4648 base64url
        fscrypt: remove mention of symlink st_size quirk from documentation
        ubifs: report correct st_size for encrypted symlinks
        f2fs: report correct st_size for encrypted symlinks
        ext4: report correct st_size for encrypted symlinks
        fscrypt: add fscrypt_symlink_getattr() for computing st_size
      cd358208
    • Linus Torvalds's avatar
      Merge tag 'for-5.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 87045e65
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "The highlights of this round are integrations with fs-verity and
        idmapped mounts, the rest is usual mix of minor improvements, speedups
        and cleanups.
      
        There are some patches outside of btrfs, namely updating some VFS
        interfaces, all straightforward and acked.
      
        Features:
      
         - fs-verity support, using standard ioctls, backward compatible with
           read-only limitation on inodes with previously enabled fs-verity
      
         - idmapped mount support
      
         - make mount with rescue=ibadroots more tolerant to partially damaged
           trees
      
         - allow raid0 on a single device and raid10 on two devices,
           degenerate cases but might be useful as an intermediate step during
           conversion to other profiles
      
         - zoned mode block group auto reclaim can be disabled via sysfs knob
      
        Performance improvements:
      
         - continue readahead of node siblings even if target node is in
           memory, could speed up full send (on sample test +11%)
      
         - batching of delayed items can speed up creating many files
      
         - fsync/tree-log speedups
             - avoid unnecessary work (gains +2% throughput, -2% run time on
               sample load)
             - reduced lock contention on renames (on dbench +4% throughput,
               up to -30% latency)
      
        Fixes:
      
         - various zoned mode fixes
      
         - preemptive flushing threshold tuning, avoid excessive work on
           almost full filesystems
      
        Core:
      
         - continued subpage support, preparation for implementing remaining
           features like compression and defragmentation; with some
           limitations, write is now enabled on 64K page systems with 4K
           sectors, still considered experimental
             - no readahead on compressed reads
             - inline extents disabled
             - disabled raid56 profile conversion and mount
      
         - improved flushing logic, fixing early ENOSPC on some workloads
      
         - inode flags have been internally split to read-only and read-write
           incompat bit parts, used by fs-verity
      
         - new tree items for fs-verity
             - descriptor item
             - Merkle tree item
      
         - inode operations extended to be namespace-aware
      
         - cleanups and refactoring
      
        Generic code changes:
      
         - fs: new export filemap_fdatawrite_wbc
      
         - fs: removed sync_inode
      
         - block: bio_trim argument type fixups
      
         - vfs: add namespace-aware lookup"
      
      * tag 'for-5.15-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (114 commits)
        btrfs: reset replace target device to allocation state on close
        btrfs: zoned: fix ordered extent boundary calculation
        btrfs: do not do preemptive flushing if the majority is global rsv
        btrfs: reduce the preemptive flushing threshold to 90%
        btrfs: tree-log: check btrfs_lookup_data_extent return value
        btrfs: avoid unnecessarily logging directories that had no changes
        btrfs: allow idmapped mount
        btrfs: handle ACLs on idmapped mounts
        btrfs: allow idmapped INO_LOOKUP_USER ioctl
        btrfs: allow idmapped SUBVOL_SETFLAGS ioctl
        btrfs: allow idmapped SET_RECEIVED_SUBVOL ioctls
        btrfs: relax restrictions for SNAP_DESTROY_V2 with subvolids
        btrfs: allow idmapped SNAP_DESTROY ioctls
        btrfs: allow idmapped SNAP_CREATE/SUBVOL_CREATE ioctls
        btrfs: check whether fsgid/fsuid are mapped during subvolume creation
        btrfs: allow idmapped permission inode op
        btrfs: allow idmapped setattr inode op
        btrfs: allow idmapped tmpfile inode op
        btrfs: allow idmapped symlink inode op
        btrfs: allow idmapped mkdir inode op
        ...
      87045e65
    • Linus Torvalds's avatar
      Merge tag '5.15-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 9c849ce8
      Linus Torvalds authored
      Pull cifs client updates from Steve French:
       "Eleven cifs/smb3 client fixes:
      
         - mostly restructuring to allow disabling less secure algorithms
           (this will allow eventual removing rc4 and md4 from general use in
           the kernel)
      
         - four fixes, including two for stable
      
         - enable r/w support with fscache and cifs.ko
      
        I am working on a larger set of changes (the usual ... multichannel,
        auth and signing improvements), but wanted to get these in earlier to
        reduce chance of merge conflicts later in the merge window"
      
      * tag '5.15-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: Do not leak EDEADLK to dgetents64 for STATUS_USER_SESSION_DELETED
        cifs: add cifs_common directory to MAINTAINERS file
        cifs: cifs_md4 convert to SPDX identifier
        cifs: create a MD4 module and switch cifs.ko to use it
        cifs: fork arc4 and create a separate module for it for cifs and other users
        cifs: remove support for NTLM and weaker authentication algorithms
        cifs: enable fscache usage even for files opened as rw
        oid_registry: Add OIDs for missing Spnego auth mechanisms to Macs
        smb3: fix posix extensions mount option
        cifs: fix wrong release in sess_alloc_buffer() failed path
        CIFS: Fix a potencially linear read overflow
      9c849ce8
    • Linus Torvalds's avatar
      Merge tag '5.15-rc-first-ksmbd-merge' of git://git.samba.org/ksmbd · e24c567b
      Linus Torvalds authored
      Pull initial ksmbd implementation from Steve French:
       "Initial merge of kernel smb3 file server, ksmbd.
      
        The SMB family of protocols is the most widely deployed network
        filesystem protocol, the default on Windows and Macs (and even on many
        phones and tablets), with clients and servers on all major operating
        systems, but lacked a kernel server for Linux. For many cases the
        current userspace server choices were suboptimal either due to memory
        footprint, performance or difficulty integrating well with advanced
        Linux features.
      
        ksmbd is a new kernel module which implements the server-side of the
        SMB3 protocol. The target is to provide optimized performance, GPLv2
        SMB server, and better lease handling (distributed caching). The
        bigger goal is to add new features more rapidly (e.g. RDMA aka
        "smbdirect", and recent encryption and signing improvements to the
        protocol) which are easier to develop on a smaller, more tightly
        optimized kernel server than for example in Samba.
      
        The Samba project is much broader in scope (tools, security services,
        LDAP, Active Directory Domain Controller, and a cross platform file
        server for a wider variety of purposes) but the user space file server
        portion of Samba has proved hard to optimize for some Linux workloads,
        including for smaller devices.
      
        This is not meant to replace Samba, but rather be an extension to
        allow better optimizing for Linux, and will continue to integrate well
        with Samba user space tools and libraries where appropriate. Working
        with the Samba team we have already made sure that the configuration
        files and xattrs are in a compatible format between the kernel and
        user space server.
      
        Various types of functional and regression tests are regularly run
        against it. One example is the automated 'buildbot' regression tests
        which use the Linux client to test against ksmbd, e.g.
      
           http://smb3-test-rhel-75.southcentralus.cloudapp.azure.com/#/builders/8/builds/56
      
        but other test suites, including Samba's smbtorture functional test
        suite are also used regularly"
      
      * tag '5.15-rc-first-ksmbd-merge' of git://git.samba.org/ksmbd: (219 commits)
        ksmbd: fix __write_overflow warning in ndr_read_string
        MAINTAINERS: ksmbd: add cifs_common directory to ksmbd entry
        MAINTAINERS: ksmbd: update my email address
        ksmbd: fix permission check issue on chown and chmod
        ksmbd: don't set FILE DELETE and FILE_DELETE_CHILD in access mask by default
        MAINTAINERS: add git adddress of ksmbd
        ksmbd: update SMB3 multi-channel support in ksmbd.rst
        ksmbd: smbd: fix kernel oops during server shutdown
        ksmbd: remove select FS_POSIX_ACL in Kconfig
        ksmbd: use proper errno instead of -1 in smb2_get_ksmbd_tcon()
        ksmbd: update the comment for smb2_get_ksmbd_tcon()
        ksmbd: change int data type to boolean
        ksmbd: Fix multi-protocol negotiation
        ksmbd: fix an oops in error handling in smb2_open()
        ksmbd: add ipv6_addr_v4mapped check to know if connection from client is ipv4
        ksmbd: fix missing error code in smb2_lock
        ksmbd: use channel signingkey for binding SMB2 session setup
        ksmbd: don't set RSS capable in FSCTL_QUERY_NETWORK_INTERFACE_INFO
        ksmbd: Return STATUS_OBJECT_PATH_NOT_FOUND if smb2_creat() returns ENOENT
        ksmbd: fix -Wstringop-truncation warnings
        ...
      e24c567b
    • Linus Torvalds's avatar
      Merge tag 'for-5.15/io_uring-vfs-2021-08-30' of git://git.kernel.dk/linux-block · b91db6a0
      Linus Torvalds authored
      Pull io_uring mkdirat/symlinkat/linkat support from Jens Axboe:
       "This adds io_uring support for mkdirat, symlinkat, and linkat"
      
      * tag 'for-5.15/io_uring-vfs-2021-08-30' of git://git.kernel.dk/linux-block:
        io_uring: add support for IORING_OP_LINKAT
        io_uring: add support for IORING_OP_SYMLINKAT
        io_uring: add support for IORING_OP_MKDIRAT
        namei: update do_*() helpers to return ints
        namei: make do_linkat() take struct filename
        namei: add getname_uflags()
        namei: make do_symlinkat() take struct filename
        namei: make do_mknodat() take struct filename
        namei: make do_mkdirat() take struct filename
        namei: change filename_parentat() calling conventions
        namei: ignore ERR/NULL names in putname()
      b91db6a0
    • Linus Torvalds's avatar
      Merge tag 'io_uring-bio-cache.5-2021-08-30' of git://git.kernel.dk/linux-block · 3b629f8d
      Linus Torvalds authored
      Pull support for struct bio recycling from Jens Axboe:
       "This adds bio recycling support for polled IO, allowing quick reuse of
        a bio for high IOPS scenarios via a percpu bio_set list.
      
        It's good for almost a 10% improvement in performance, bumping our
        per-core IO limit from ~3.2M IOPS to ~3.5M IOPS"
      
      * tag 'io_uring-bio-cache.5-2021-08-30' of git://git.kernel.dk/linux-block:
        bio: improve kerneldoc documentation for bio_alloc_kiocb()
        block: provide bio_clear_hipri() helper
        block: use the percpu bio cache in __blkdev_direct_IO
        io_uring: enable use of bio alloc cache
        block: clear BIO_PERCPU_CACHE flag if polling isn't supported
        bio: add allocation cache abstraction
        fs: add kiocb alloc cache flag
        bio: optimize initialization of a bio
      3b629f8d
    • Linus Torvalds's avatar
      Merge tag 'for-5.15/io_uring-2021-08-30' of git://git.kernel.dk/linux-block · c547d89a
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
      
       - cancellation cleanups (Hao, Pavel)
      
       - io-wq accounting cleanup (Hao)
      
       - io_uring submit locking fix (Hao)
      
       - io_uring link handling fixes (Hao)
      
       - fixed file improvements (wangyangbo, Pavel)
      
       - allow updates of linked timeouts like regular timeouts (Pavel)
      
       - IOPOLL fix (Pavel)
      
       - remove batched file get optimization (Pavel)
      
       - improve reference handling (Pavel)
      
       - IRQ task_work batching (Pavel)
      
       - allow pure fixed file, and add support for open/accept (Pavel)
      
       - GFP_ATOMIC RT kernel fix
      
       - multiple CQ ring waiter improvement
      
       - funnel IRQ completions through task_work
      
       - add support for limiting async workers explicitly
      
       - add different clocksource support for timeouts
      
       - io-wq wakeup race fix
      
       - lots of cleanups and improvement (Pavel et al)
      
      * tag 'for-5.15/io_uring-2021-08-30' of git://git.kernel.dk/linux-block: (87 commits)
        io-wq: fix wakeup race when adding new work
        io-wq: wqe and worker locks no longer need to be IRQ safe
        io-wq: check max_worker limits if a worker transitions bound state
        io_uring: allow updating linked timeouts
        io_uring: keep ltimeouts in a list
        io_uring: support CLOCK_BOOTTIME/REALTIME for timeouts
        io-wq: provide a way to limit max number of workers
        io_uring: add build check for buf_index overflows
        io_uring: clarify io_req_task_cancel() locking
        io_uring: add task-refs-get helper
        io_uring: fix failed linkchain code logic
        io_uring: remove redundant req_set_fail()
        io_uring: don't free request to slab
        io_uring: accept directly into fixed file table
        io_uring: hand code io_accept() fd installing
        io_uring: openat directly into fixed fd table
        net: add accept helper not installing fd
        io_uring: fix io_try_cancel_userdata race for iowq
        io_uring: IRQ rw completion batching
        io_uring: batch task work locking
        ...
      c547d89a
    • Linus Torvalds's avatar
      Merge tag 'for-5.15/libata-2021-08-30' of git://git.kernel.dk/linux-block · 44d7d3b0
      Linus Torvalds authored
      Pull libata updates from Jens Axboe:
       "libata changes for the 5.15 release:
      
         - NCQ priority improvements (Damien, Niklas)
      
         - coccinelle warning fix (Jing)
      
         - dwc_460ex phy fix (Andy)"
      
      * tag 'for-5.15/libata-2021-08-30' of git://git.kernel.dk/linux-block:
        include:libata: fix boolreturn.cocci warnings
        docs: sysfs-block-device: document ncq_prio_supported
        docs: sysfs-block-device: improve ncq_prio_enable documentation
        libata: Introduce ncq_prio_supported sysfs sttribute
        libata: print feature list on device scan
        libata: fix ata_read_log_page() warning
        libata: cleanup NCQ priority handling
        libata: cleanup ata_dev_configure()
        libata: cleanup device sleep capability detection
        libata: simplify ata_scsi_rbuf_fill()
        libata: fix ata_host_start()
        ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
      44d7d3b0
    • Linus Torvalds's avatar
      Merge tag 'for-5.15/drivers-2021-08-30' of git://git.kernel.dk/linux-block · 9a1d6c9e
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
       "Sitting on top of the core block changes, here are the driver changes
        for the 5.15 merge window:
      
         - NVMe updates via Christoph:
             - suspend improvements for devices with an HMB (Keith Busch)
             - handle double completions more gacefull (Sagi Grimberg)
             - cleanup the selects for the nvme core code a bit (Sagi Grimberg)
             - don't update queue count when failing to set io queues (Ruozhu Li)
             - various nvmet connect fixes (Amit Engel)
             - cleanup lightnvm leftovers (Keith Busch, me)
             - small cleanups (Colin Ian King, Hou Pu)
             - add tracing for the Set Features command (Hou Pu)
             - CMB sysfs cleanups (Keith Busch)
             - add a mutex_destroy call (Keith Busch)
      
         - remove lightnvm subsystem. It's served its purpose and ultimately
           led to zoned nvme support, we no longer need it (Christoph)
      
         - revert floppy O_NDELAY fix (Denis)
      
         - nbd fixes (Hou, Pavel, Baokun)
      
         - nbd locking fixes (Tetsuo)
      
         - nbd device removal fixes (Christoph)
      
         - raid10 rcu warning fix (Xiao)
      
         - raid1 write behind fix (Guoqing)
      
         - rnbd fixes (Gioh, Md Haris)
      
         - misc fixes (Colin)"
      
      * tag 'for-5.15/drivers-2021-08-30' of git://git.kernel.dk/linux-block: (42 commits)
        Revert "floppy: reintroduce O_NDELAY fix"
        raid1: ensure write behind bio has less than BIO_MAX_VECS sectors
        md/raid10: Remove unnecessary rcu_dereference in raid10_handle_discard
        nbd: remove nbd->destroy_complete
        nbd: only return usable devices from nbd_find_unused
        nbd: set nbd->index before releasing nbd_index_mutex
        nbd: prevent IDR lookups from finding partially initialized devices
        nbd: reset NBD to NULL when restarting in nbd_genl_connect
        nbd: add missing locking to the nbd_dev_add error path
        nvme: remove the unused NVME_NS_* enum
        nvme: remove nvm_ndev from ns
        nvme: Have NVME_FABRICS select NVME_CORE instead of transport drivers
        block: nbd: add sanity check for first_minor
        nvmet: check that host sqsize does not exceed ctrl MQES
        nvmet: avoid duplicate qid in connect cmd
        nvmet: pass back cntlid on successful completion
        nvme-rdma: don't update queue count when failing to set io queues
        nvme-tcp: don't update queue count when failing to set io queues
        nvme-tcp: pair send_mutex init with destroy
        nvme: allow user toggling hmb usage
        ...
      9a1d6c9e
    • Linus Torvalds's avatar
      Merge tag 'for-5.15/block-2021-08-30' of git://git.kernel.dk/linux-block · 67936911
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
       "Nothing major in here - lots of good cleanups and tech debt handling,
        which is also evident in the diffstats. In particular:
      
         - Add disk sequence numbers (Matteo)
      
         - Discard merge fix (Ming)
      
         - Relax disk zoned reporting restrictions (Niklas)
      
         - Bio error handling zoned leak fix (Pavel)
      
         - Start of proper add_disk() error handling (Luis, Christoph)
      
         - blk crypto fix (Eric)
      
         - Non-standard GPT location support (Dmitry)
      
         - IO priority improvements and cleanups (Damien)o
      
         - blk-throtl improvements (Chunguang)
      
         - diskstats_show() stack reduction (Abd-Alrhman)
      
         - Loop scheduler selection (Bart)
      
         - Switch block layer to use kmap_local_page() (Christoph)
      
         - Remove obsolete disk_name helper (Christoph)
      
         - block_device refcounting improvements (Christoph)
      
         - Ensure gendisk always has a request queue reference (Christoph)
      
         - Misc fixes/cleanups (Shaokun, Oliver, Guoqing)"
      
      * tag 'for-5.15/block-2021-08-30' of git://git.kernel.dk/linux-block: (129 commits)
        sg: pass the device name to blk_trace_setup
        block, bfq: cleanup the repeated declaration
        blk-crypto: fix check for too-large dun_bytes
        blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN
        blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
        block: mark blkdev_fsync static
        block: refine the disk_live check in del_gendisk
        mmc: sdhci-tegra: Enable MMC_CAP2_ALT_GPT_TEGRA
        mmc: block: Support alternative_gpt_sector() operation
        partitions/efi: Support non-standard GPT location
        block: Add alternative_gpt_sector() operation
        bio: fix page leak bio_add_hw_page failure
        block: remove CONFIG_DEBUG_BLOCK_EXT_DEVT
        block: remove a pointless call to MINOR() in device_add_disk
        null_blk: add error handling support for add_disk()
        virtio_blk: add error handling support for add_disk()
        block: add error handling for device_add_disk / add_disk
        block: return errors from disk_alloc_events
        block: return errors from blk_integrity_add
        block: call blk_register_queue earlier in device_add_disk
        ...
      67936911
  3. 30 Aug, 2021 16 commits
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8596e589
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "Updates for timekeeping, timers and related drivers:
      
        Core code:
      
         - Cure a couple of correctness issues in the posix CPU timer code to
           prevent that the tick dependency for NOHZ full is kept alive for no
           reason.
      
         - Avoid expensive double reprogramming of the clockevent device in
           hrtimer_start_range_ns().
      
         - Avoid pointless SMP function calls when the clock was set to avoid
           disturbing CPUs which do not have any affected timers queued.
      
         - Make the clocksource watchdog test work correctly when CONFIG_HZ is
           less than 100.
      
        Drivers:
      
         - Prefer the ARM architected timer over the Exynos timer which is way
           more expensive to access.
      
         - Add device tree bindings for new Ingenic SoCs
      
         - The usual improvements and cleanups all over the place"
      
      * tag 'timers-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (29 commits)
        clocksource: Make clocksource watchdog test safe for slow-HZ systems
        dt-bindings: timer: Add ABIs for new Ingenic SoCs
        clocksource/drivers/fttmr010: Pass around less pointers
        clocksource/drivers/mediatek: Optimize systimer irq clear flow on shutdown
        clocksource/drivers/ingenic: Use bitfield macro helpers
        clocksource/drivers/sh_cmt: Fix wrong setting if don't request IRQ for clock source channel
        dt-bindings: timer: convert rockchip,rk-timer.txt to YAML
        clocksource/drivers/exynos_mct: Mark MCT device as CLOCK_EVT_FEAT_PERCPU
        clocksource/drivers/exynos_mct: Prioritise Arm arch timer on arm64
        hrtimer: Unbreak hrtimer_force_reprogram()
        hrtimer: Use raw_cpu_ptr() in clock_was_set()
        hrtimer: Avoid more SMP function calls in clock_was_set()
        hrtimer: Avoid unnecessary SMP function calls in clock_was_set()
        hrtimer: Add bases argument to clock_was_set()
        time/timekeeping: Avoid invoking clock_was_set() twice
        timekeeping: Distangle resume and clock-was-set events
        timerfd: Provide timerfd_resume()
        hrtimer: Force clock_was_set() handling for the HIGHRES=n, NOHZ=y case
        hrtimer: Ensure timerfd notification for HIGHRES=n
        hrtimer: Consolidate reprogramming code
        ...
      8596e589
    • Linus Torvalds's avatar
      Merge tag 'x86-misc-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · bed91667
      Linus Torvalds authored
      Pull misc x86 updates from Thomas Gleixner:
       "A set of updates for the x86 reboot code:
      
         - Limit the Dell Optiplex 990 quirk to early BIOS versions to avoid
           the full 'power cycle' alike reboot which is required for the buggy
           BIOSes.
      
         - Update documentation for the reboot=pci command line option and
           document how DMI platform quirks can be overridden"
      
      * tag 'x86-misc-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/reboot: Limit Dell Optiplex 990 quirk to early BIOS versions
        x86/reboot: Document how to override DMI platform quirks
        x86/reboot: Document the "reboot=pci" option
      bed91667
    • Linus Torvalds's avatar
      Merge tag 'x86-irq-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ccd8ec4a
      Linus Torvalds authored
      Pull x86 PIRQ updates from Thomas Gleixner:
       "A set of updates to support port 0x22/0x23 based PCI configuration
        space which can be found on various ALi chipsets and is also available
        on older Intel systems which expose a PIRQ router.
      
        While the Intel support is more or less nostalgia, the ALi chips are
        still in use on popular embedded boards used for routers"
      
      * tag 'x86-irq-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86: Fix typo s/ECLR/ELCR/ for the PIC register
        x86: Avoid magic number with ELCR register accesses
        x86/PCI: Add support for the Intel 82426EX PIRQ router
        x86/PCI: Add support for the Intel 82374EB/82374SB (ESC) PIRQ router
        x86/PCI: Add support for the ALi M1487 (IBC) PIRQ router
        x86: Add support for 0x22/0x23 port I/O configuration space
      ccd8ec4a
    • Linus Torvalds's avatar
      Merge tag 'x86-cpu-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0a096f24
      Linus Torvalds authored
      Pull x86 cache flush updates from Thomas Gleixner:
       "A reworked version of the opt-in L1D flush mechanism.
      
        This is a stop gap for potential future speculation related hardware
        vulnerabilities and a mechanism for truly security paranoid
        applications.
      
        It allows a task to request that the L1D cache is flushed when the
        kernel switches to a different mm. This can be requested via prctl().
      
        Changes vs the previous versions:
      
         - Get rid of the software flush fallback
      
         - Make the handling consistent with other mitigations
      
         - Kill the task when it ends up on a SMT enabled core which defeats
           the purpose of L1D flushing obviously"
      
      * tag 'x86-cpu-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        Documentation: Add L1D flushing Documentation
        x86, prctl: Hook L1D flushing in via prctl
        x86/mm: Prepare for opt-in based L1D flush in switch_mm()
        x86/process: Make room for TIF_SPEC_L1D_FLUSH
        sched: Add task_work callback for paranoid L1D flush
        x86/mm: Refactor cond_ibpb() to support other use cases
        x86/smp: Add a per-cpu view of SMT state
      0a096f24
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7d6e3fa8
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Updates to the interrupt core and driver subsystems:
      
        Core changes:
      
         - The usual set of small fixes and improvements all over the place,
           but nothing stands out
      
        MSI changes:
      
         - Further consolidation of the PCI/MSI interrupt chip code
      
         - Make MSI sysfs code independent of PCI/MSI and expose the MSI
           interrupts of platform devices in the same way as PCI exposes them.
      
        Driver changes:
      
         - Support for ARM GICv3 EPPI partitions
      
         - Treewide conversion to generic_handle_domain_irq() for all chained
           interrupt controllers
      
         - Conversion to bitmap_zalloc() throughout the irq chip drivers
      
         - The usual set of small fixes and improvements"
      
      * tag 'irq-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (57 commits)
        platform-msi: Add ABI to show msi_irqs of platform devices
        genirq/msi: Move MSI sysfs handling from PCI to MSI core
        genirq/cpuhotplug: Demote debug printk to KERN_DEBUG
        irqchip/qcom-pdc: Trim unused levels of the interrupt hierarchy
        irqdomain: Export irq_domain_disconnect_hierarchy()
        irqchip/gic-v3: Fix priority comparison when non-secure priorities are used
        irqchip/apple-aic: Fix irq_disable from within irq handlers
        pinctrl/rockchip: drop the gpio related codes
        gpio/rockchip: drop irq_gc_lock/irq_gc_unlock for irq set type
        gpio/rockchip: support next version gpio controller
        gpio/rockchip: use struct rockchip_gpio_regs for gpio controller
        gpio/rockchip: add driver for rockchip gpio
        dt-bindings: gpio: change items restriction of clock for rockchip,gpio-bank
        pinctrl/rockchip: add pinctrl device to gpio bank struct
        pinctrl/rockchip: separate struct rockchip_pin_bank to a head file
        pinctrl/rockchip: always enable clock for gpio controller
        genirq: Fix kernel doc indentation
        EDAC/altera: Convert to generic_handle_domain_irq()
        powerpc: Bulk conversion to generic_handle_domain_irq()
        nios2: Bulk conversion to generic_handle_domain_irq()
        ...
      7d6e3fa8
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e5e726f7
      Linus Torvalds authored
      Pull locking and atomics updates from Thomas Gleixner:
       "The regular pile:
      
         - A few improvements to the mutex code
      
         - Documentation updates for atomics to clarify the difference between
           cmpxchg() and try_cmpxchg() and to explain the forward progress
           expectations.
      
         - Simplification of the atomics fallback generator
      
         - The addition of arch_atomic_long*() variants and generic arch_*()
           bitops based on them.
      
         - Add the missing might_sleep() invocations to the down*() operations
           of semaphores.
      
        The PREEMPT_RT locking core:
      
         - Scheduler updates to support the state preserving mechanism for
           'sleeping' spin- and rwlocks on RT.
      
           This mechanism is carefully preserving the state of the task when
           blocking on a 'sleeping' spin- or rwlock and takes regular wake-ups
           targeted at the same task into account. The preserved or updated
           (via a regular wakeup) state is restored when the lock has been
           acquired.
      
         - Restructuring of the rtmutex code so it can be utilized and
           extended for the RT specific lock variants.
      
         - Restructuring of the ww_mutex code to allow sharing of the ww_mutex
           specific functionality for rtmutex based ww_mutexes.
      
         - Header file disentangling to allow substitution of the regular lock
           implementations with the PREEMPT_RT variants without creating an
           unmaintainable #ifdef mess.
      
         - Shared base code for the PREEMPT_RT specific rw_semaphore and
           rwlock implementations.
      
           Contrary to the regular rw_semaphores and rwlocks the PREEMPT_RT
           implementation is writer unfair because it is infeasible to do
           priority inheritance on multiple readers. Experience over the years
           has shown that real-time workloads are not the typical workloads
           which are sensitive to writer starvation.
      
           The alternative solution would be to allow only a single reader
           which has been tried and discarded as it is a major bottleneck
           especially for mmap_sem. Aside of that many of the writer
           starvation critical usage sites have been converted to a writer
           side mutex/spinlock and RCU read side protections in the past
           decade so that the issue is less prominent than it used to be.
      
         - The actual rtmutex based lock substitutions for PREEMPT_RT enabled
           kernels which affect mutex, ww_mutex, rw_semaphore, spinlock_t and
           rwlock_t. The spin/rw_lock*() functions disable migration across
           the critical section to preserve the existing semantics vs per-CPU
           variables.
      
         - Rework of the futex REQUEUE_PI mechanism to handle the case of
           early wake-ups which interleave with a re-queue operation to
           prevent the situation that a task would be blocked on both the
           rtmutex associated to the outer futex and the rtmutex based hash
           bucket spinlock.
      
           While this situation cannot happen on !RT enabled kernels the
           changes make the underlying concurrency problems easier to
           understand in general. As a result the difference between !RT and
           RT kernels is reduced to the handling of waiting for the critical
           section. !RT kernels simply spin-wait as before and RT kernels
           utilize rcu_wait().
      
         - The substitution of local_lock for PREEMPT_RT with a spinlock which
           protects the critical section while staying preemptible. The CPU
           locality is established by disabling migration.
      
        The underlying concepts of this code have been in use in PREEMPT_RT for
        way more than a decade. The code has been refactored several times over
        the years and this final incarnation has been optimized once again to be
        as non-intrusive as possible, i.e. the RT specific parts are mostly
        isolated.
      
        It has been extensively tested in the 5.14-rt patch series and it has
        been verified that !RT kernels are not affected by these changes"
      
      * tag 'locking-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (92 commits)
        locking/rtmutex: Return success on deadlock for ww_mutex waiters
        locking/rtmutex: Prevent spurious EDEADLK return caused by ww_mutexes
        locking/rtmutex: Dequeue waiter on ww_mutex deadlock
        locking/rtmutex: Dont dereference waiter lockless
        locking/semaphore: Add might_sleep() to down_*() family
        locking/ww_mutex: Initialize waiter.ww_ctx properly
        static_call: Update API documentation
        locking/local_lock: Add PREEMPT_RT support
        locking/spinlock/rt: Prepare for RT local_lock
        locking/rtmutex: Add adaptive spinwait mechanism
        locking/rtmutex: Implement equal priority lock stealing
        preempt: Adjust PREEMPT_LOCK_OFFSET for RT
        locking/rtmutex: Prevent lockdep false positive with PI futexes
        futex: Prevent requeue_pi() lock nesting issue on RT
        futex: Simplify handle_early_requeue_pi_wakeup()
        futex: Reorder sanity checks in futex_requeue()
        futex: Clarify comment in futex_requeue()
        futex: Restructure futex_requeue()
        futex: Correct the number of requeued waiters for PI
        futex: Remove bogus condition for requeue PI
        ...
      e5e726f7
    • Linus Torvalds's avatar
      Merge tag 'smp-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 08403e21
      Linus Torvalds authored
      Pull SMP core updates from Thomas Gleixner:
      
       - Replace get/put_online_cpus() in various places. The final removal
         will happen shortly before v5.15-rc1 when the rest of the patches
         have been merged.
      
       - Add debug code to help the analysis of CPU hotplug failures
      
       - A set of kernel doc updates
      
      * tag 'smp-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        mm: Replace deprecated CPU-hotplug functions.
        md/raid5: Replace deprecated CPU-hotplug functions.
        Documentation: Replace deprecated CPU-hotplug functions.
        smp: Fix all kernel-doc warnings
        cpu/hotplug: Add debug printks for hotplug callback failures
        cpu/hotplug: Use DEVICE_ATTR_*() macro
        cpu/hotplug: Eliminate all kernel-doc warnings
        cpu/hotplug: Fix kernel doc warnings for __cpuhp_setup_state_cpuslocked()
        cpu/hotplug: Fix comment typo
        smpboot: Replace deprecated CPU-hotplug functions.
      08403e21
    • Linus Torvalds's avatar
      Merge tag 'core-debugobjects-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e4c3562e
      Linus Torvalds authored
      Pull debugobjects update from Thomas Gleixner:
       "A single commit for debugobjects to make them work on PREEMPT_RT by
        preventing object pool refill in atomic contexts"
      
      * tag 'core-debugobjects-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        debugobjects: Make them PREEMPT_RT aware
      e4c3562e
    • Linus Torvalds's avatar
      Merge tag 'efi-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 46f4945e
      Linus Torvalds authored
      Pull EFI updates from Ingo Molnar:
       "A handful of EFI changes for this cycle:
      
         - EFI CPER parsing improvements
      
         - Don't take the address of efi_guid_t internal fields"
      
      * tag 'efi-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: cper: check section header more appropriately
        efi: Don't use knowledge about efi_guid_t internals
        efi: cper: fix scnprintf() use in cper_mem_err_location()
      46f4945e
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4a2b88eb
      Linus Torvalds authored
      Pull x86 perf event updates from Ingo Molnar:
      
       - Add support for Intel Sapphire Rapids server CPU uncore events
      
       - Allow the AMD uncore driver to be built as a module
      
       - Misc cleanups and fixes
      
      * tag 'perf-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        perf/x86/amd/ibs: Add bitfield definitions in new <asm/amd-ibs.h> header
        perf/amd/uncore: Allow the driver to be built as a module
        x86/cpu: Add get_llc_id() helper function
        perf/amd/uncore: Clean up header use, use <linux/ include paths instead of <asm/
        perf/amd/uncore: Simplify code, use free_percpu()'s built-in check for NULL
        perf/hw_breakpoint: Replace deprecated CPU-hotplug functions
        perf/x86/intel: Replace deprecated CPU-hotplug functions
        perf/x86: Remove unused assignment to pointer 'e'
        perf/x86/intel/uncore: Fix IIO cleanup mapping procedure for SNR/ICX
        perf/x86/intel/uncore: Support IMC free-running counters on Sapphire Rapids server
        perf/x86/intel/uncore: Support IIO free-running counters on Sapphire Rapids server
        perf/x86/intel/uncore: Factor out snr_uncore_mmio_map()
        perf/x86/intel/uncore: Add alias PMU name
        perf/x86/intel/uncore: Add Sapphire Rapids server MDF support
        perf/x86/intel/uncore: Add Sapphire Rapids server M3UPI support
        perf/x86/intel/uncore: Add Sapphire Rapids server UPI support
        perf/x86/intel/uncore: Add Sapphire Rapids server M2M support
        perf/x86/intel/uncore: Add Sapphire Rapids server IMC support
        perf/x86/intel/uncore: Add Sapphire Rapids server PCU support
        perf/x86/intel/uncore: Add Sapphire Rapids server M2PCIe support
        ...
      4a2b88eb
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5d3c0db4
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
      
       - The biggest change in this cycle is scheduler support for asymmetric
         scheduling affinity, to support the execution of legacy 32-bit tasks
         on AArch32 systems that also have 64-bit-only CPUs.
      
         Architectures can fill in this functionality by defining their own
         task_cpu_possible_mask(p). When this is done, the scheduler will make
         sure the task will only be scheduled on CPUs that support it.
      
         (The actual arm64 specific changes are not part of this tree.)
      
         For other architectures there will be no change in functionality.
      
       - Add cgroup SCHED_IDLE support
      
       - Increase node-distance flexibility & delay determining it until a CPU
         is brought online. (This enables platforms where node distance isn't
         final until the CPU is only.)
      
       - Deadline scheduler enhancements & fixes
      
       - Misc fixes & cleanups.
      
      * tag 'sched-core-2021-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
        eventfd: Make signal recursion protection a task bit
        sched/fair: Mark tg_is_idle() an inline in the !CONFIG_FAIR_GROUP_SCHED case
        sched: Introduce dl_task_check_affinity() to check proposed affinity
        sched: Allow task CPU affinity to be restricted on asymmetric systems
        sched: Split the guts of sched_setaffinity() into a helper function
        sched: Introduce task_struct::user_cpus_ptr to track requested affinity
        sched: Reject CPU affinity changes based on task_cpu_possible_mask()
        cpuset: Cleanup cpuset_cpus_allowed_fallback() use in select_fallback_rq()
        cpuset: Honour task_cpu_possible_mask() in guarantee_online_cpus()
        cpuset: Don't use the cpu_possible_mask as a last resort for cgroup v1
        sched: Introduce task_cpu_possible_mask() to limit fallback rq selection
        sched: Cgroup SCHED_IDLE support
        sched/topology: Skip updating masks for non-online nodes
        sched: Replace deprecated CPU-hotplug functions.
        sched: Skip priority checks with SCHED_FLAG_KEEP_PARAMS
        sched: Fix UCLAMP_FLAG_IDLE setting
        sched/deadline: Fix missing clock update in migrate_task_rq_dl()
        sched/fair: Avoid a second scan of target in select_idle_cpu
        sched/fair: Use prev instead of new target as recent_used_cpu
        sched: Don't report SCHED_FLAG_SUGOV in sched_getattr()
        ...
      5d3c0db4
    • Linus Torvalds's avatar
      Merge tag 'x86_cleanups_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 230bda08
      Linus Torvalds authored
      Pull x86 cleanups from Borislav Petkov:
       "The usual round of minor cleanups and fixes"
      
      * tag 'x86_cleanups_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kaslr: Have process_mem_region() return a boolean
        x86/power: Fix kernel-doc warnings in cpu.c
        x86/mce/inject: Replace deprecated CPU-hotplug functions.
        x86/microcode: Replace deprecated CPU-hotplug functions.
        x86/mtrr: Replace deprecated CPU-hotplug functions.
        x86/mmiotrace: Replace deprecated CPU-hotplug functions.
      230bda08
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 42f6e869
      Linus Torvalds authored
      Pull x86 resource control updates from Borislav Petkov:
       "A first round of changes towards splitting the arch-specific bits from
        the filesystem bits of resctrl, the ultimate goal being to support
        ARM's equivalent technology MPAM, with the same fs interface (James
        Morse)"
      
      * tag 'x86_cache_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
        x86/resctrl: Make resctrl_arch_get_config() return its value
        x86/resctrl: Merge the CDP resources
        x86/resctrl: Expand resctrl_arch_update_domains()'s msr_param range
        x86/resctrl: Remove rdt_cdp_peer_get()
        x86/resctrl: Merge the ctrl_val arrays
        x86/resctrl: Calculate the index from the configuration type
        x86/resctrl: Apply offset correction when config is staged
        x86/resctrl: Make ctrlval arrays the same size
        x86/resctrl: Pass configuration type to resctrl_arch_get_config()
        x86/resctrl: Add a helper to read a closid's configuration
        x86/resctrl: Rename update_domains() to resctrl_arch_update_domains()
        x86/resctrl: Allow different CODE/DATA configurations to be staged
        x86/resctrl: Group staged configuration into a separate struct
        x86/resctrl: Move the schemata names into struct resctrl_schema
        x86/resctrl: Add a helper to read/set the CDP configuration
        x86/resctrl: Swizzle rdt_resource and resctrl_schema in pseudo_lock_region
        x86/resctrl: Pass the schema to resctrl filesystem functions
        x86/resctrl: Add resctrl_arch_get_num_closid()
        x86/resctrl: Store the effective num_closid in the schema
        x86/resctrl: Walk the resctrl schema list instead of an arch list
        ...
      42f6e869
    • Linus Torvalds's avatar
      Merge tag 'x86_build_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ced119b6
      Linus Torvalds authored
      Pull x86 build updates from Borislav Petkov:
      
       - Remove cc-option checks which are old and already supported by the
         minimal compiler version the kernel uses and thus avoid the need to
         invoke the compiler unnecessarily.
      
       - Cleanups
      
      * tag 'x86_build_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/build: Move the install rule to arch/x86/Makefile
        x86/build: Remove the left-over bzlilo target
        x86/tools/relocs: Mark die() with the printf function attr format
        x86/build: Remove stale cc-option checks
      ced119b6
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8f645b42
      Linus Torvalds authored
      Pull RAS update from Borislav Petkov:
       "A single RAS change for 5.15:
      
         - Do not start processing MCEs logged early because the decoding
           chain is not up yet - delay that processing until everything is
           ready"
      
      * tag 'ras_core_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce: Defer processing of early errors
      8f645b42
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 05b5fdb2
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
       "The usual EDAC stuff which managed to trickle in for 5.15:
      
         - Add new HBM2 (High Bandwidth Memory Gen 2) type and add support for
           it to the Intel SKx drivers
      
         - Print additional useful per-channel error information on i10nm,
           like on SKL
      
         - Don't load the AMD EDAC decoder in virtual images
      
         - The usual round of fixes and cleanups"
      
      * tag 'edac_updates_for_v5.15' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/i10nm: Retrieve and print retry_rd_err_log registers
        EDAC/i10nm: Fix NVDIMM detection
        EDAC/skx_common: Set the memory type correctly for HBM memory
        EDAC/altera: Skip defining unused structures for specific configs
        EDAC/mce_amd: Do not load edac_mce_amd module on guests
        EDAC/mc: Add new HBM2 memory type
        EDAC/amd64: Use DEVICE_ATTR helper macros
      05b5fdb2