1. 11 8月, 2022 1 次提交
    • L
      Merge tag 'kbuild-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 0af5cb34
      Linus Torvalds 提交于
      Pull Kbuild updates from Masahiro Yamada:
      
       - Remove the support for -O3 (CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3)
      
       - Fix error of rpm-pkg cross-builds
      
       - Support riscv for checkstack tool
      
       - Re-enable -Wformwat warnings for Clang
      
       - Clean up modpost, Makefiles, and misc scripts
      
      * tag 'kbuild-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
        modpost: remove .symbol_white_list field entirely
        modpost: remove unneeded .symbol_white_list initializers
        modpost: add PATTERNS() helper macro
        modpost: shorten warning messages in report_sec_mismatch()
        Revert "Kbuild, lto, workaround: Don't warn for initcall_reference in modpost"
        modpost: use more reliable way to get fromsec in section_rel(a)()
        modpost: add array range check to sec_name()
        modpost: refactor get_secindex()
        kbuild: set EXIT trap before creating temporary directory
        modpost: remove unused Elf_Sword macro
        Makefile.extrawarn: re-enable -Wformat for clang
        kbuild: add dtbs_prepare target
        kconfig: Qt5: tell the user which packages are required
        modpost: use sym_get_data() to get module device_table data
        modpost: drop executable ELF support
        checkstack: add riscv support for scripts/checkstack.pl
        kconfig: shorten the temporary directory name for cc-option
        scripts: headers_install.sh: Update config leak ignore entries
        kbuild: error out if $(INSTALL_MOD_PATH) contains % or :
        kbuild: error out if $(KBUILD_EXTMOD) contains % or :
        ...
      0af5cb34
  2. 10 8月, 2022 8 次提交
    • M
      add barriers to buffer_uptodate and set_buffer_uptodate · d4252071
      Mikulas Patocka 提交于
      Let's have a look at this piece of code in __bread_slow:
      
      	get_bh(bh);
      	bh->b_end_io = end_buffer_read_sync;
      	submit_bh(REQ_OP_READ, 0, bh);
      	wait_on_buffer(bh);
      	if (buffer_uptodate(bh))
      		return bh;
      
      Neither wait_on_buffer nor buffer_uptodate contain any memory barrier.
      Consequently, if someone calls sb_bread and then reads the buffer data,
      the read of buffer data may be executed before wait_on_buffer(bh) on
      architectures with weak memory ordering and it may return invalid data.
      
      Fix this bug by adding a memory barrier to set_buffer_uptodate and an
      acquire barrier to buffer_uptodate (in a similar way as
      folio_test_uptodate and folio_mark_uptodate).
      Signed-off-by: NMikulas Patocka <mpatocka@redhat.com>
      Reviewed-by: NMatthew Wilcox (Oracle) <willy@infradead.org>
      Cc: stable@vger.kernel.org
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d4252071
    • L
      Merge tag 'nfsd-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · e394ff83
      Linus Torvalds 提交于
      Pull nfsd updates from Chuck Lever:
       "Work on 'courteous server', which was introduced in 5.19, continues
        apace. This release introduces a more flexible limit on the number of
        NFSv4 clients that NFSD allows, now that NFSv4 clients can remain in
        courtesy state long after the lease expiration timeout. The client
        limit is adjusted based on the physical memory size of the server.
      
        The NFSD filecache is a cache of files held open by NFSv4 clients or
        recently touched by NFSv2 or NFSv3 clients. This cache had some
        significant scalability constraints that have been relieved in this
        release. Thanks to all who contributed to this work.
      
        A data corruption bug found during the most recent NFS bake-a-thon
        that involves NFSv3 and NFSv4 clients writing the same file has been
        addressed in this release.
      
        This release includes several improvements in CPU scalability for
        NFSv4 operations. In addition, Neil Brown provided patches that
        simplify locking during file lookup, creation, rename, and removal
        that enables subsequent work on making these operations more scalable.
        We expect to see that work materialize in the next release.
      
        There are also numerous single-patch fixes, clean-ups, and the usual
        improvements in observability"
      
      * tag 'nfsd-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (78 commits)
        lockd: detect and reject lock arguments that overflow
        NFSD: discard fh_locked flag and fh_lock/fh_unlock
        NFSD: use (un)lock_inode instead of fh_(un)lock for file operations
        NFSD: use explicit lock/unlock for directory ops
        NFSD: reduce locking in nfsd_lookup()
        NFSD: only call fh_unlock() once in nfsd_link()
        NFSD: always drop directory lock in nfsd_unlink()
        NFSD: change nfsd_create()/nfsd_symlink() to unlock directory before returning.
        NFSD: add posix ACLs to struct nfsd_attrs
        NFSD: add security label to struct nfsd_attrs
        NFSD: set attributes when creating symlinks
        NFSD: introduce struct nfsd_attrs
        NFSD: verify the opened dentry after setting a delegation
        NFSD: drop fh argument from alloc_init_deleg
        NFSD: Move copy offload callback arguments into a separate structure
        NFSD: Add nfsd4_send_cb_offload()
        NFSD: Remove kmalloc from nfsd4_do_async_copy()
        NFSD: Refactor nfsd4_do_copy()
        NFSD: Refactor nfsd4_cleanup_inter_ssc() (2/2)
        NFSD: Refactor nfsd4_cleanup_inter_ssc() (1/2)
        ...
      e394ff83
    • L
      Merge tag 'fscache-fixes-20220809' of... · 15205c28
      Linus Torvalds 提交于
      Merge tag 'fscache-fixes-20220809' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
      
      Pull fscache updates from David Howells:
      
       - Fix a cookie access ref leak if a cookie is invalidated a second time
         before the first invalidation is actually processed.
      
       - Add a tracepoint to log cookie lookup failure
      
      * tag 'fscache-fixes-20220809' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        fscache: add tracepoint when failing cookie
        fscache: don't leak cookie access refs if invalidation is in progress or failed
      15205c28
    • L
      Merge tag 'afs-fixes-20220802' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs · 4b22e207
      Linus Torvalds 提交于
      Pull AFS fixes from David Howells:
       "Fix AFS refcount handling.
      
        The first patch converts afs to use refcount_t for its refcounts and
        the second patch fixes afs_put_call() and afs_put_server() to save the
        values they're going to log in the tracepoint before decrementing the
        refcount"
      
      * tag 'afs-fixes-20220802' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
        afs: Fix access after dec in put functions
        afs: Use refcount_t rather than atomic_t
      4b22e207
    • L
      Merge tag 'fs.setgid.v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 426b4ca2
      Linus Torvalds 提交于
      Pull setgid updates from Christian Brauner:
       "This contains the work to move setgid stripping out of individual
        filesystems and into the VFS itself.
      
        Creating files that have both the S_IXGRP and S_ISGID bit raised in
        directories that themselves have the S_ISGID bit set requires
        additional privileges to avoid security issues.
      
        When a filesystem creates a new inode it needs to take care that the
        caller is either in the group of the newly created inode or they have
        CAP_FSETID in their current user namespace and are privileged over the
        parent directory of the new inode. If any of these two conditions is
        true then the S_ISGID bit can be raised for an S_IXGRP file and if not
        it needs to be stripped.
      
        However, there are several key issues with the current implementation:
      
         - S_ISGID stripping logic is entangled with umask stripping.
      
           For example, if the umask removes the S_IXGRP bit from the file
           about to be created then the S_ISGID bit will be kept.
      
           The inode_init_owner() helper is responsible for S_ISGID stripping
           and is called before posix_acl_create(). So we can end up with two
           different orderings:
      
           1. FS without POSIX ACL support
      
              First strip umask then strip S_ISGID in inode_init_owner().
      
              In other words, if a filesystem doesn't support or enable POSIX
              ACLs then umask stripping is done directly in the vfs before
              calling into the filesystem:
      
           2. FS with POSIX ACL support
      
              First strip S_ISGID in inode_init_owner() then strip umask in
              posix_acl_create().
      
              In other words, if the filesystem does support POSIX ACLs then
              unmask stripping may be done in the filesystem itself when
              calling posix_acl_create().
      
           Note that technically filesystems are free to impose their own
           ordering between posix_acl_create() and inode_init_owner() meaning
           that there's additional ordering issues that influence S_ISGID
           inheritance.
      
           (Note that the commit message of commit 1639a49c ("fs: move
           S_ISGID stripping into the vfs_*() helpers") gets the ordering
           between inode_init_owner() and posix_acl_create() the wrong way
           around. I realized this too late.)
      
         - Filesystems that don't rely on inode_init_owner() don't get S_ISGID
           stripping logic.
      
           While that may be intentional (e.g. network filesystems might just
           defer setgid stripping to a server) it is often just a security
           issue.
      
           Note that mandating the use of inode_init_owner() was proposed as
           an alternative solution but that wouldn't fix the ordering issues
           and there are examples such as afs where the use of
           inode_init_owner() isn't possible.
      
           In any case, we should also try the cleaner and generalized
           solution first before resorting to this approach.
      
         - We still have S_ISGID inheritance bugs years after the initial
           round of S_ISGID inheritance fixes:
      
             e014f37d ("xfs: use setattr_copy to set vfs inode attributes")
             01ea173e ("xfs: fix up non-directory creation in SGID directories")
             fd84bfdd ("ceph: fix up non-directory creation in SGID directories")
      
        All of this led us to conclude that the current state is too messy.
        While we won't be able to make it completely clean as
        posix_acl_create() is still a filesystem specific call we can improve
        the S_SIGD stripping situation quite a bit by hoisting it out of
        inode_init_owner() and into the respective vfs creation operations.
      
        The obvious advantage is that we don't need to rely on individual
        filesystems getting S_ISGID stripping right and instead can
        standardize the ordering between S_ISGID and umask stripping directly
        in the VFS.
      
        A few short implementation notes:
      
         - The stripping logic needs to happen in vfs_*() helpers for the sake
           of stacking filesystems such as overlayfs that rely on these
           helpers taking care of S_ISGID stripping.
      
         - Security hooks have never seen the mode as it is ultimately seen by
           the filesystem because of the ordering issue we mentioned. Nothing
           is changed for them. We simply continue to strip the umask before
           passing the mode down to the security hooks.
      
         - The following filesystems use inode_init_owner() and thus relied on
           S_ISGID stripping: spufs, 9p, bfs, btrfs, ext2, ext4, f2fs,
           hfsplus, hugetlbfs, jfs, minix, nilfs2, ntfs3, ocfs2, omfs,
           overlayfs, ramfs, reiserfs, sysv, ubifs, udf, ufs, xfs, zonefs,
           bpf, tmpfs.
      
           We've audited all callchains as best as we could. More details can
           be found in the commit message to 1639a49c ("fs: move S_ISGID
           stripping into the vfs_*() helpers")"
      
      * tag 'fs.setgid.v6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        ceph: rely on vfs for setgid stripping
        fs: move S_ISGID stripping into the vfs_*() helpers
        fs: Add missing umask strip in vfs_tmpfile
        fs: add mode_strip_sgid() helper
      426b4ca2
    • L
      Merge tag 'memblock-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock · b8dcef87
      Linus Torvalds 提交于
      Pull memblock updates from Mike Rapoport:
      
       - An optimization in memblock_add_range() to reduce array traversals
      
       - Improvements to the memblock test suite
      
      * tag 'memblock-v5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/memblock:
        memblock test: Modify the obsolete description in README
        memblock tests: fix compilation errors
        memblock tests: change build options to run-time options
        memblock tests: remove completed TODO items
        memblock tests: set memblock_debug to enable memblock_dbg() messages
        memblock tests: add verbose output to memblock tests
        memblock tests: Makefile: add arguments to control verbosity
        memblock: avoid some repeat when add new range
      b8dcef87
    • L
      Merge tag 'm68knommu-for-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 15886321
      Linus Torvalds 提交于
      Pull m68knommu fixes from Greg Ungerer:
      
       - spelling in comment
      
       - compilation when flexcan driver enabled
      
       - sparse warning
      
      * tag 'm68knommu-for-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k: Fix syntax errors in comments
        m68k: coldfire: make symbol m523x_clk_lookup static
        m68k: coldfire/device.c: protect FLEXCAN blocks
      15886321
    • L
      Merge tag 'x86_bugs_pbrsb' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5318b987
      Linus Torvalds 提交于
      Pull x86 eIBRS fixes from Borislav Petkov:
       "More from the CPU vulnerability nightmares front:
      
        Intel eIBRS machines do not sufficiently mitigate against RET
        mispredictions when doing a VM Exit therefore an additional RSB,
        one-entry stuffing is needed"
      
      * tag 'x86_bugs_pbrsb' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/speculation: Add LFENCE to RSB fill sequence
        x86/speculation: Add RSB VM Exit protections
      5318b987
  3. 09 8月, 2022 31 次提交