1. 25 5月, 2022 40 次提交
    • L
      Merge tag 'folio-5.19' of git://git.infradead.org/users/willy/pagecache · fdaf9a58
      Linus Torvalds 提交于
      Pull page cache updates from Matthew Wilcox:
      
       - Appoint myself page cache maintainer
      
       - Fix how scsicam uses the page cache
      
       - Use the memalloc_nofs_save() API to replace AOP_FLAG_NOFS
      
       - Remove the AOP flags entirely
      
       - Remove pagecache_write_begin() and pagecache_write_end()
      
       - Documentation updates
      
       - Convert several address_space operations to use folios:
           - is_dirty_writeback
           - readpage becomes read_folio
           - releasepage becomes release_folio
           - freepage becomes free_folio
      
       - Change filler_t to require a struct file pointer be the first
         argument like ->read_folio
      
      * tag 'folio-5.19' of git://git.infradead.org/users/willy/pagecache: (107 commits)
        nilfs2: Fix some kernel-doc comments
        Appoint myself page cache maintainer
        fs: Remove aops->freepage
        secretmem: Convert to free_folio
        nfs: Convert to free_folio
        orangefs: Convert to free_folio
        fs: Add free_folio address space operation
        fs: Convert drop_buffers() to use a folio
        fs: Change try_to_free_buffers() to take a folio
        jbd2: Convert release_buffer_page() to use a folio
        jbd2: Convert jbd2_journal_try_to_free_buffers to take a folio
        reiserfs: Convert release_buffer_page() to use a folio
        fs: Remove last vestiges of releasepage
        ubifs: Convert to release_folio
        reiserfs: Convert to release_folio
        orangefs: Convert to release_folio
        ocfs2: Convert to release_folio
        nilfs2: Remove comment about releasepage
        nfs: Convert to release_folio
        jfs: Convert to release_folio
        ...
      fdaf9a58
    • L
      Merge tag 'iomap-5.19-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 8642174b
      Linus Torvalds 提交于
      Pull iomap updates from Darrick Wong:
       "There's a couple of corrections sent in by Andreas for some accounting
        errors.
      
        The biggest change this time around is that writeback errors longer
        clear pageuptodate nor does XFS invalidate the page cache anymore.
        This brings XFS (and gfs2/zonefs) behavior in line with every other
        Linux filesystem driver, and fixes some UAF bugs that only cropped up
        after willy turned on multipage folios for XFS in 5.18-rc1.
      
        Regrettably, it took all the way to the end of the 5.18 cycle to find
        the source of these bugs and reach a consensus that XFS' writeback
        failure behavior from 20 years ago is no longer necessary.
      
        Summary:
      
         - Fix a couple of accounting errors in the buffered io code.
      
         - Discontinue the practice of marking folios !uptodate and
           invalidating them when writeback fails.
      
           This fixes some UAF bugs when multipage folios are enabled, and
           brings the behavior of XFS/gfs/zonefs into alignment with the
           behavior of all the other Linux filesystems"
      
      * tag 'iomap-5.19-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        iomap: don't invalidate folios after writeback errors
        iomap: iomap_write_end cleanup
        iomap: iomap_write_failed fix
      8642174b
    • L
      Merge tag 'dlm-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · f2898112
      Linus Torvalds 提交于
      Pull dlm updates from David Teigland:
       "This includes several large patches to improve endian handling and
        remove sparse warnings. The code previously used in/out, in-place
        endianness conversion functions.
      
        Other code cleanup includes the list iterator changes.
      
        Finally, a long standing bug was found and fixed, caused by missed
        decrement on an lock struct ref count"
      
      * tag 'dlm-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm: (28 commits)
        dlm: use kref_put_lock in __put_lkb
        dlm: use kref_put_lock in put_rsb
        dlm: remove unnecessary error assign
        dlm: fix missing lkb refcount handling
        fs: dlm: cast resource pointer to uintptr_t
        dlm: replace usage of found with dedicated list iterator variable
        dlm: remove usage of list iterator for list_add() after the loop body
        dlm: fix pending remove if msg allocation fails
        dlm: fix wake_up() calls for pending remove
        dlm: check required context while close
        dlm: cleanup lock handling in dlm_master_lookup
        dlm: remove found label in dlm_master_lookup
        dlm: remove __user conversion warnings
        dlm: move conversion to compile time
        dlm: use __le types for dlm messages
        dlm: use __le types for rcom messages
        dlm: use __le types for dlm header
        dlm: use __le types for options header
        dlm: add __CHECKER__ for false positives
        dlm: move global to static inits
        ...
      f2898112
    • L
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · fea30433
      Linus Torvalds 提交于
      Pull ext4 updates from Ted Ts'o:
       "Various bug fixes and cleanups for ext4.
      
        In particular, move the crypto related fucntions from fs/ext4/super.c
        into a new fs/ext4/crypto.c, and fix a number of bugs found by fuzzers
        and error injection tools"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits)
        ext4: only allow test_dummy_encryption when supported
        ext4: fix bug_on in __es_tree_search
        ext4: avoid cycles in directory h-tree
        ext4: verify dir block before splitting it
        ext4: filter out EXT4_FC_REPLAY from on-disk superblock field s_state
        ext4: fix bug_on in ext4_writepages
        ext4: refactor and move ext4_ioctl_get_encryption_pwsalt()
        ext4: cleanup function defs from ext4.h into crypto.c
        ext4: move ext4 crypto code to its own file crypto.c
        ext4: fix memory leak in parse_apply_sb_mount_options()
        ext4: reject the 'commit' option on ext2 filesystems
        ext4: remove duplicated #include of dax.h in inode.c
        ext4: fix race condition between ext4_write and ext4_convert_inline_data
        ext4: convert symlink external data block mapping to bdev
        ext4: add nowait mode for ext4_getblk()
        ext4: fix journal_ioprio mount option handling
        ext4: mark group as trimmed only if it was fully scanned
        ext4: fix use-after-free in ext4_rename_dir_prepare
        ext4: add unmount filesystem message
        ext4: remove unnecessary conditionals
        ...
      fea30433
    • L
      Merge tag 'gfs2-v5.18-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 7208c984
      Linus Torvalds 提交于
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Clean up the allocation of glocks that have an address space attached
      
       - Quota locking fix and quota iomap conversion
      
       - Fix the FITRIM error reporting
      
       - Some list iterator cleanups
      
      * tag 'gfs2-v5.18-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Convert function bh_get to use iomap
        gfs2: use i_lock spin_lock for inode qadata
        gfs2: Return more useful errors from gfs2_rgrp_send_discards()
        gfs2: Use container_of() for gfs2_glock(aspace)
        gfs2: Explain some direct I/O oddities
        gfs2: replace 'found' with dedicated list iterator variable
      7208c984
    • L
      Merge tag 'for-5.19-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · bd1b7c13
      Linus Torvalds 提交于
      Pull btrfs updates from David Sterba:
       "Features:
      
         - subpage:
            - support for PAGE_SIZE > 4K (previously only 64K)
            - make it work with raid56
      
         - repair super block num_devices automatically if it does not match
           the number of device items
      
         - defrag can convert inline extents to regular extents, up to now
           inline files were skipped but the setting of mount option
           max_inline could affect the decision logic
      
         - zoned:
            - minimal accepted zone size is explicitly set to 4MiB
            - make zone reclaim less aggressive and don't reclaim if there are
              enough free zones
            - add per-profile sysfs tunable of the reclaim threshold
      
         - allow automatic block group reclaim for non-zoned filesystems, with
           sysfs tunables
      
         - tree-checker: new check, compare extent buffer owner against owner
           rootid
      
        Performance:
      
         - avoid blocking on space reservation when doing nowait direct io
           writes (+7% throughput for reads and writes)
      
         - NOCOW write throughput improvement due to refined locking (+3%)
      
         - send: reduce pressure to page cache by dropping extent pages right
           after they're processed
      
        Core:
      
         - convert all radix trees to xarray
      
         - add iterators for b-tree node items
      
         - support printk message index
      
         - user bulk page allocation for extent buffers
      
         - switch to bio_alloc API, use on-stack bios where convenient, other
           bio cleanups
      
         - use rw lock for block groups to favor concurrent reads
      
         - simplify workques, don't allocate high priority threads for all
           normal queues as we need only one
      
         - refactor scrub, process chunks based on their constraints and
           similarity
      
         - allocate direct io structures on stack and pass around only
           pointers, avoids allocation and reduces potential error handling
      
        Fixes:
      
         - fix count of reserved transaction items for various inode
           operations
      
         - fix deadlock between concurrent dio writes when low on free data
           space
      
         - fix a few cases when zones need to be finished
      
        VFS, iomap:
      
         - add helper to check if sb write has started (usable for assertions)
      
         - new helper iomap_dio_alloc_bio, export iomap_dio_bio_end_io"
      
      * tag 'for-5.19-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (173 commits)
        btrfs: zoned: introduce a minimal zone size 4M and reject mount
        btrfs: allow defrag to convert inline extents to regular extents
        btrfs: add "0x" prefix for unsupported optional features
        btrfs: do not account twice for inode ref when reserving metadata units
        btrfs: zoned: fix comparison of alloc_offset vs meta_write_pointer
        btrfs: send: avoid trashing the page cache
        btrfs: send: keep the current inode open while processing it
        btrfs: allocate the btrfs_dio_private as part of the iomap dio bio
        btrfs: move struct btrfs_dio_private to inode.c
        btrfs: remove the disk_bytenr in struct btrfs_dio_private
        btrfs: allocate dio_data on stack
        iomap: add per-iomap_iter private data
        iomap: allow the file system to provide a bio_set for direct I/O
        btrfs: add a btrfs_dio_rw wrapper
        btrfs: zoned: zone finish unused block group
        btrfs: zoned: properly finish block group on metadata write
        btrfs: zoned: finish block group when there are no more allocatable bytes left
        btrfs: zoned: consolidate zone finish functions
        btrfs: zoned: introduce btrfs_zoned_bg_is_full
        btrfs: improve error reporting in lookup_inline_extent_backref
        ...
      bd1b7c13
    • L
      Merge tag 'zonefs-5.19-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs · 3842007b
      Linus Torvalds 提交于
      Pull zonefs fix from Damien Le Moal:
       "A single patch to fix zonefs_init_file_inode() return value"
      
      * tag 'zonefs-5.19-rc1-fix' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
        zonefs: Fix zonefs_init_file_inode() return value
      3842007b
    • L
      Merge tag 'erofs-for-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 65965d95
      Linus Torvalds 提交于
      Pull erofs (and fscache) updates from Gao Xiang:
       "After working on it on the mailing list for more than half a year, we
        finally form 'erofs over fscache' feature into shape. Hopefully it
        could bring more possibility to the communities.
      
        The story mainly started from a new project what we called "RAFS v6" [1]
        for Nydus image service almost a year ago, which enhances EROFS to be
        a new form of one bootstrap (which includes metadata representing the
        whole fs tree) + several data-deduplicated content addressable blobs
        (actually treated as multiple devices). Each blob can represent one
        container image layer but not quite exactly since all new data can be
        fully existed in the previous blobs so no need to introduce another
        new blob.
      
        It is actually not a new idea (at least on my side it's much like a
        simpilied casync [2] for now) and has many benefits over per-file
        blobs or some other exist ways since typically each RAFS v6 image only
        has dozens of device blobs instead of thousands of per-file blobs.
        It's easy to be signed with user keys as a golden image, transfered
        untouchedly with minimal overhead over the network, kept in some type
        of storage conveniently, and run with (optional) runtime verification
        but without involving too many irrelevant features crossing the system
        beyond EROFS itself. At least it's our final goal and we're keeping
        working on it. There was also a good summary of this approach from the
        casync author [3].
      
        Regardless further optimizations, this work is almost done in the
        previous Linux release cycles. In this round, we'd like to introduce
        on-demand load for EROFS with the fscache/cachefiles infrastructure,
        considering the following advantages:
      
         - Introduce new file-based backend to EROFS. Although each image only
           contains dozens of blobs but in densely-deployed runC host for
           example, there could still be massive blobs on a machine, which is
           messy if each blob is treated as a device. In contrast, fscache and
           cachefiles are really great interfaces for us to make them work.
      
         - Introduce on-demand load to fscache and EROFS. Previously, fscache
           is mainly used to caching network-likewise filesystems, now it can
           support on-demand downloading for local fses too with the exact
           localfs on-disk format. It has many advantages which we're been
           described in the latest patchset cover letter [4]. In addition to
           that, most importantly, the cached data is still stored in the
           original local fs on-disk format so that it's still the one signed
           with private keys but only could be partially available. Users can
           fully trust it during running. Later, users can also back up
           cachefiles easily to another machine.
      
         - More reliable on-demand approach in principle. After data is all
           available locally, user daemon can be no longer online in some use
           cases, which helps daemon crash recovery (filesystems can still in
           service) and hot-upgrade (user daemon can be upgraded more
           frequently due to new features or protocols introduced.)
      
         - Other format can also be converted to EROFS filesystem format over
           the internet on the fly with the new on-demand load feature and
           mounted. That is entirely possible with on-demand load feature as
           long as such archive format metadata can be fetched in advance like
           stargz.
      
        In addition, although currently our target user is Nydus image service [5],
        but laterly, it can be used for other use cases like on-demand system
        booting, etc. As for the fscache on-demand load feature itself,
        strictly it can be used for other local fses too. Laterly we could
        promote most code to the iomap infrastructure and also enhance it in
        the read-write way if other local fses are interested.
      
        Thanks David Howells for taking so much time and patience on this
        these months, many thanks with great respect here again! Thanks Jeffle
        for working on this feature and Xin Yin from Bytedance for
        asynchronous I/O implementation as well as Zichen Tian, Jia Zhu, and
        Yan Song for testing, much appeciated. We're also exploring more
        possibly over fscache cache management over FSDAX for secure
        containers and working on more improvements and useful features for
        fscache, cachefiles, and on-demand load.
      
        In addition to "erofs over fscache", NFS export and idmapped mount are
        also completed in this cycle for container use cases as well.
      
        Summary:
      
         - Add erofs on-demand load support over fscache
      
         - Support NFS export for erofs
      
         - Support idmapped mounts for erofs
      
         - Don't prompt for risk any more when using big pcluster
      
         - Fix buffer copy overflow of ztailpacking feature
      
         - Several minor cleanups"
      
      [1] https://lore.kernel.org/r/20210730194625.93856-1-hsiangkao@linux.alibaba.com
      [2] https://github.com/systemd/casync
      [3] http://0pointer.net/blog/casync-a-tool-for-distributing-file-system-images.html
      [4] https://lore.kernel.org/r/20220509074028.74954-1-jefflexu@linux.alibaba.com
      [5] https://github.com/dragonflyoss/image-service
      
      * tag 'erofs-for-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs: (29 commits)
        erofs: scan devices from device table
        erofs: change to use asynchronous io for fscache readpage/readahead
        erofs: add 'fsid' mount option
        erofs: implement fscache-based data readahead
        erofs: implement fscache-based data read for inline layout
        erofs: implement fscache-based data read for non-inline layout
        erofs: implement fscache-based metadata read
        erofs: register fscache context for extra data blobs
        erofs: register fscache context for primary data blob
        erofs: add erofs_fscache_read_folios() helper
        erofs: add anonymous inode caching metadata for data blobs
        erofs: add fscache context helper functions
        erofs: register fscache volume
        erofs: add fscache mode check helper
        erofs: make erofs_map_blocks() generally available
        cachefiles: document on-demand read mode
        cachefiles: add tracepoints for on-demand read mode
        cachefiles: enable on-demand read mode
        cachefiles: implement on-demand read
        cachefiles: notify the user daemon when withdrawing cookie
        ...
      65965d95
    • L
      Merge tag 'exfat-for-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat · 850f6033
      Linus Torvalds 提交于
      Pull exfat updates from Namjae Jeon:
      
       - fix referencing wrong parent directory information during rename
      
       - introduce a sys_tz mount option to use system timezone
      
       - improve performance while zeroing a cluster with dirsync mount option
      
       - fix slab-out-bounds in exat_clear_bitmap() reported from syzbot
      
      * tag 'exfat-for-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/linkinjeon/exfat:
        exfat: check if cluster num is valid
        exfat: reduce block requests when zeroing a cluster
        block: add sync_blockdev_range()
        exfat: introduce mount option 'sys_tz'
        exfat: fix referencing wrong parent directory information after renaming
      850f6033
    • L
      Merge tag 'fs.idmapped.v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · f30fabe7
      Linus Torvalds 提交于
      Pull fs idmapping updates from Christian Brauner:
       "This contains two minor updates:
      
         - An update to the idmapping documentation by Rodrigo making it
           easier to understand that we first introduce several use-cases that
           fail without idmapped mounts simply to explain how they can be
           handled with idmapped mounts.
      
         - When changing a mount's idmapping we now hold writers to make it
           more robust.
      
           This is similar to turning a mount ro with the difference that in
           contrast to turning a mount ro changing the idmapping can only ever
           be done once while a mount can transition between ro and rw as much
           as it wants.
      
           The vfs layer itself takes care to retrieve the idmapping of a
           mount once ensuring that the idmapping used for vfs permission
           checking is identical to the idmapping passed down to the
           filesystem. All filesystems with FS_ALLOW_IDMAP raised take the
           same precautions as the vfs in code-paths that are outside of
           direct control of the vfs such as ioctl()s.
      
           However, holding writers makes this more robust and predictable for
           both the kernel and userspace.
      
           This is a minor user-visible change. But it is extremely unlikely
           to matter. The caller must've created a detached mount via
           OPEN_TREE_CLONE and then handed that O_PATH fd to another process
           or thread which then must've gotten a writable fd for that mount
           and started creating files in there while the caller is still
           changing mount properties. While not impossible it will be an
           extremely rare corner-case and should in general be considered a
           bug in the application. Consider making a mount MOUNT_ATTR_NOEXEC
           or MOUNT_ATTR_NODEV while allowing someone else to perform lookups
           or exec'ing in parallel by handing them a copy of the
           OPEN_TREE_CLONE fd or another fd beneath that mount.
      
           I've pinged all major users of idmapped mounts pointing out this
           change and none of them have active writers on a mount while still
           changing mount properties. It would've been strange if they did.
      
        The rest and majority of the work will be coming through the overlayfs
        tree this cycle. In addition to overlayfs this cycle should also see
        support for idmapped mounts on erofs as I've acked a patch to this
        effect a little while ago"
      
      * tag 'fs.idmapped.v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        fs: hold writers when changing mount's idmapping
        docs: Add small intro to idmap examples
      f30fabe7
    • L
      Merge tag 'media/v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 82706026
      Linus Torvalds 提交于
      Pull media updates from Mauro Carvalho Chehab:
      
       - dvb-usb drivers entries got reworked to avoid usage of magic numbers
         to refer to data position inside tables
      
       - vcodec driver has gained support for MT8186 and for vp8 and vp9
         stateless codecs
      
       - hantro has gained support for Hantro G1 on RK366x
      
       - Added more h264 levels on coda960
      
       - ccs gained support for MIPI CSI-2 28 bits per pixel raw data type
      
       - venus driver gained support for Qualcomm custom compressed pixel
         formats
      
       - lots of driver fixes and updates
      
      * tag 'media/v5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (308 commits)
        media: hantro: Enable HOLD_CAPTURE_BUF for H.264
        media: hantro: Add H.264 field decoding support
        media: hantro: h264: Make dpb entry management more robust
        media: hantro: Stop using H.264 parameter pic_num
        media: rkvdec: Enable capture buffer holding for H264
        media: rkvdec-h264: Add field decoding support
        media: rkvdec: Ensure decoded resolution fit coded resolution
        media: rkvdec: h264: Fix reference frame_num wrap for second field
        media: rkvdec: h264: Validate and use pic width and height in mbs
        media: rkvdec: Move H264 SPS validation in rkvdec-h264
        media: rkvdec: h264: Fix bit depth wrap in pps packet
        media: rkvdec: h264: Fix dpb_valid implementation
        media: rkvdec: Stop overclocking the decoder
        media: v4l2: Reorder field reflist
        media: h264: Sort p/b reflist using frame_num
        media: v4l2: Trace calculated p/b0/b1 initial reflist
        media: h264: Store all fields into the unordered list
        media: h264: Store current picture fields
        media: h264: Increase reference lists size to 32
        media: h264: Use v4l2_h264_reference for reflist
        ...
      82706026
    • L
      Merge tag 'devprop-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 268db333
      Linus Torvalds 提交于
      Pull device properties framework updates from Rafael Wysocki:
       "These mostly extend the device property API and make it easier to use
        in some cases.
      
        Specifics:
      
         - Allow error pointer to be passed to fwnode APIs (Andy Shevchenko).
      
         - Introduce fwnode_for_each_parent_node() (Andy Shevchenko, Douglas
           Anderson).
      
         - Advertise fwnode and device property count API calls (Andy
           Shevchenko).
      
         - Clean up fwnode_is_ancestor_of() (Andy Shevchenko).
      
         - Convert device_{dma_supported,get_dma_attr} to fwnode (Sakari
           Ailus).
      
         - Release subnode properties with data nodes (Sakari Ailus).
      
         - Add ->iomap() and ->irq_get() to fwnode operations (Sakari Ailus)"
      
      * tag 'devprop-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        device property: Advertise fwnode and device property count API calls
        device property: Fix recent breakage of fwnode_get_next_parent_dev()
        device property: Drop 'test' prefix in parameters of fwnode_is_ancestor_of()
        device property: Introduce fwnode_for_each_parent_node()
        device property: Allow error pointer to be passed to fwnode APIs
        ACPI: property: Release subnode properties with data nodes
        device property: Add irq_get to fwnode operation
        device property: Add iomap to fwnode operations
        ACPI: property: Move acpi_fwnode_device_get_match_data() up
        device property: Convert device_{dma_supported,get_dma_attr} to fwnode
      268db333
    • L
      Merge tag 'thermal-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · f4fb8596
      Linus Torvalds 提交于
      Pull thermal control updates from Rafael Wysocki:
       "These add a thermal library and thermal tools to wrap the netlink
        interface into event-based callbacks, improve overheat condition
        handling during suspend-to-idle on Intel SoCs, add some new hardware
        support, fix bugs and clean up code.
      
        Specifics:
      
         - Add thermal library and thermal tools to encapsulate the netlink
           into event based callbacks (Daniel Lezcano, Jiapeng Chong).
      
         - Improve overheat condition handling during suspend-to-idle in the
           Intel PCH thermal driver (Zhang Rui).
      
         - Use local ops instead of global ops in devfreq_cooling (Kant Fan).
      
         - Clean up _OSC handling in int340x (Davidlohr Bueso).
      
         - Switch hisi_termal from CONFIG_PM_SLEEP guards to pm_sleep_ptr()
           (Hesham Almatary).
      
         - Add new k3 j72xx bangdap driver and the corresponding bindings
           (Keerthy).
      
         - Fix missing of_node_put() in the SC iMX driver at probe time
           (Miaoqian Lin).
      
         - Fix memory leak in __thermal_cooling_device_register()
           when device_register() fails by calling
           thermal_cooling_device_destroy_sysfs() (Yang Yingliang).
      
         - Add sc8180x and sc8280xp compatible string in the DT bindings and
           lMH support for QCom tsens driver (Bjorn Andersson).
      
         - Fix OTP Calibration Register values conforming to the documentation
           on RZ/G2L and bindings documentation for RZ/G2UL (Biju Das).
      
         - Fix type in kerneldoc description for __thermal_bind_params
           (Corentin Labbe).
      
         - Fix potential NULL dereference in sr_thermal_probe() on Broadcom
           platform (Zheng Yongjun).
      
         - Add change mode ops to the thermal-of sensor (Manaf Meethalavalappu
           Pallikunhi).
      
         - Fix non-negative value support by preventing the value to be clamp
           to zero (Stefan Wahren).
      
         - Add compatible string and DT bindings for MSM8960 tsens driver
           (Dmitry Baryshkov).
      
         - Add hwmon support for K3 driver (Massimiliano Minella).
      
         - Refactor and add multiple generations support for QCom ADC driver
           (Jishnu Prakash).
      
         - Use platform_get_irq_optional() to get the interrupt on RCar driver
           and document Document RZ/V2L bindings (Lad Prabhakar).
      
         - Remove NULL check after container_of() call from the Intel HFI
           thermal driver (Haowen Bai)"
      
      * tag 'thermal-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (38 commits)
        thermal: intel: pch: improve the cooling delay log
        thermal: intel: pch: enhance overheat handling
        thermal: intel: pch: move cooling delay to suspend_noirq phase
        PM: wakeup: expose pm_wakeup_pending to modules
        thermal: k3_j72xx_bandgap: Add the bandgap driver support
        dt-bindings: thermal: k3-j72xx: Add VTM bindings documentation
        thermal/drivers/imx_sc_thermal: Fix refcount leak in imx_sc_thermal_probe
        thermal/core: Fix memory leak in __thermal_cooling_device_register()
        dt-bindings: thermal: tsens: Add sc8280xp compatible
        dt-bindings: thermal: lmh: Add Qualcomm sc8180x compatible
        thermal/drivers/qcom/lmh: Add sc8180x compatible
        thermal/drivers/rz2gl: Fix OTP Calibration Register values
        dt-bindings: thermal: rzg2l-thermal: Document RZ/G2UL bindings
        thermal: thermal_of: fix typo on __thermal_bind_params
        tools/thermal: remove unneeded semicolon
        tools/lib/thermal: remove unneeded semicolon
        thermal/drivers/broadcom: Fix potential NULL dereference in sr_thermal_probe
        tools/thermal: Add thermal daemon skeleton
        tools/thermal: Add a temperature capture tool
        tools/thermal: Add util library
        ...
      f4fb8596
    • L
      Merge tag 'pm-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 09583dfe
      Linus Torvalds 提交于
      Pull power management updates from Rafael Wysocki:
       "These add support for 'artificial' Energy Models in which power
        numbers for different entities may be in different scales, add support
        for some new hardware, fix bugs and clean up code in multiple places.
      
        Specifics:
      
         - Update the Energy Model support code to allow the Energy Model to
           be artificial, which means that the power values may not be on a
           uniform scale with other devices providing power information, and
           update the cpufreq_cooling and devfreq_cooling thermal drivers to
           support artificial Energy Models (Lukasz Luba).
      
         - Make DTPM check the Energy Model type (Lukasz Luba).
      
         - Fix policy counter decrementation in cpufreq if Energy Model is in
           use (Pierre Gondois).
      
         - Add CPU-based scaling support to passive devfreq governor (Saravana
           Kannan, Chanwoo Choi).
      
         - Update the rk3399_dmc devfreq driver (Brian Norris).
      
         - Export dev_pm_ops instead of suspend() and resume() in the IIO
           chemical scd30 driver (Jonathan Cameron).
      
         - Add namespace variants of EXPORT[_GPL]_SIMPLE_DEV_PM_OPS and
           PM-runtime counterparts (Jonathan Cameron).
      
         - Move symbol exports in the IIO chemical scd30 driver into the
           IIO_SCD30 namespace (Jonathan Cameron).
      
         - Avoid device PM-runtime usage count underflows (Rafael Wysocki).
      
         - Allow dynamic debug to control printing of PM messages (David
           Cohen).
      
         - Fix some kernel-doc comments in hibernation code (Yang Li, Haowen
           Bai).
      
         - Preserve ACPI-table override during hibernation (Amadeusz
           Sławiński).
      
         - Improve support for suspend-to-RAM for PSCI OSI mode (Ulf Hansson).
      
         - Make Intel RAPL power capping driver support the RaptorLake and
           AlderLake N processors (Zhang Rui, Sumeet Pawnikar).
      
         - Remove redundant store to value after multiply in the RAPL power
           capping driver (Colin Ian King).
      
         - Add AlderLake processor support to the intel_idle driver (Zhang
           Rui).
      
         - Fix regression leading to no genpd governor in the PSCI cpuidle
           driver and fix the riscv-sbi cpuidle driver to allow a genpd
           governor to be used (Ulf Hansson).
      
         - Fix cpufreq governor clean up code to avoid using kfree() directly
           to free kobject-based items (Kevin Hao).
      
         - Prepare cpufreq for powerpc's asm/prom.h cleanup (Christophe
           Leroy).
      
         - Make intel_pstate notify frequency invariance code when no_turbo is
           turned on and off (Chen Yu).
      
         - Add Sapphire Rapids OOB mode support to intel_pstate (Srinivas
           Pandruvada).
      
         - Make cpufreq avoid unnecessary frequency updates due to mismatch
           between hardware and the frequency table (Viresh Kumar).
      
         - Make remove_cpu_dev_symlink() clear the real_cpus mask to simplify
           code (Viresh Kumar).
      
         - Rearrange cpufreq_offline() and cpufreq_remove_dev() to make the
           calling convention for some driver callbacks consistent (Rafael
           Wysocki).
      
         - Avoid accessing half-initialized cpufreq policies from the show()
           and store() sysfs functions (Schspa Shi).
      
         - Rearrange cpufreq_offline() to make the calling convention for some
           driver callbacks consistent (Schspa Shi).
      
         - Update CPPC handling in cpufreq (Pierre Gondois).
      
         - Extend dev_pm_domain_detach() doc (Krzysztof Kozlowski).
      
         - Move genpd's time-accounting to ktime_get_mono_fast_ns() (Ulf
           Hansson).
      
         - Improve the way genpd deals with its governors (Ulf Hansson).
      
         - Update the turbostat utility to version 2022.04.16 (Len Brown, Dan
           Merillat, Sumeet Pawnikar, Zephaniah E. Loss-Cutler-Hull, Chen Yu)"
      
      * tag 'pm-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (94 commits)
        PM: domains: Trust domain-idle-states from DT to be correct by genpd
        PM: domains: Measure power-on/off latencies in genpd based on a governor
        PM: domains: Allocate governor data dynamically based on a genpd governor
        PM: domains: Clean up some code in pm_genpd_init() and genpd_remove()
        PM: domains: Fix initialization of genpd's next_wakeup
        PM: domains: Fixup QoS latency measurements for IRQ safe devices in genpd
        PM: domains: Measure suspend/resume latencies in genpd based on governor
        PM: domains: Move the next_wakeup variable into the struct gpd_timing_data
        PM: domains: Allocate gpd_timing_data dynamically based on governor
        PM: domains: Skip another warning in irq_safe_dev_in_sleep_domain()
        PM: domains: Rename irq_safe_dev_in_no_sleep_domain() in genpd
        PM: domains: Don't check PM_QOS_FLAG_NO_POWER_OFF in genpd
        PM: domains: Drop redundant code for genpd always-on governor
        PM: domains: Add GENPD_FLAG_RPM_ALWAYS_ON for the always-on governor
        powercap: intel_rapl: remove redundant store to value after multiply
        cpufreq: CPPC: Enable dvfs_possible_from_any_cpu
        cpufreq: CPPC: Enable fast_switch
        ACPI: CPPC: Assume no transition latency if no PCCT
        ACPI: bus: Set CPPC _OSC bits for all and when CPPC_LIB is supported
        ACPI: CPPC: Check _OSC for flexible address space
        ...
      09583dfe
    • L
      Merge tag 'acpi-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 1961b06c
      Linus Torvalds 提交于
      Pull ACPI updates from Rafael Wysocki:
       "These update the ACPICA kernel code to upstream revision 20220331,
        improve handling of PCI devices that are in D3cold during system
        initialization, add support for a few features, fix bugs and clean up
        code.
      
        Specifics:
      
         - Update ACPICA code in the kernel to upstream revision 20220331
           including the following changes:
             - Add support for the Windows 11 _OSI string (Mario Limonciello)
             - Add the CFMWS subtable to the CEDT table (Lawrence Hileman).
             - iASL: NHLT: Treat Terminator as specific_config (Piotr
               Maziarz).
             - iASL: NHLT: Fix parsing undocumented bytes at the end of
               Endpoint Descriptor (Piotr Maziarz).
             - iASL: NHLT: Rename linux specific strucures to device_info
               (Piotr Maziarz).
             - Add new ACPI 6.4 semantics to Load() and LoadTable() (Bob
               Moore).
             - Clean up double word in comment (Tom Rix).
             - Update copyright notices to the year 2022 (Bob Moore).
             - Remove some tabs and // comments - automated cleanup (Bob
               Moore).
             - Replace zero-length array with flexible-array member (Gustavo
               A. R. Silva).
             - Interpreter: Add units to time variable names (Paul Menzel).
             - Add support for ARM Performance Monitoring Unit Table (Besar
               Wicaksono).
             - Inform users about ACPI spec violation related to sleep length
               (Paul Menzel).
             - iASL/MADT: Add OEM-defined subtable (Bob Moore).
             - Interpreter: Fix some typo mistakes (Selvarasu Ganesan).
             - Updates for revision E.d of IORT (Shameer Kolothum).
             - Use ACPI_FORMAT_UINT64 for 64-bit output (Bob Moore).
      
         - Improve debug messages in the ACPI device PM code (Rafael Wysocki).
      
         - Block ASUS B1400CEAE from suspend to idle by default (Mario
           Limonciello).
      
         - Improve handling of PCI devices that are in D3cold during system
           initialization (Rafael Wysocki).
      
         - Fix BERT error region memory mapping (Lorenzo Pieralisi).
      
         - Add support for NVIDIA 16550-compatible port subtype to the SPCR
           parsing code (Jeff Brasen).
      
         - Use static for BGRT_SHOW kobj_attribute defines (Tom Rix).
      
         - Fix missing prototype warning for acpi_agdi_init() (Ilkka
           Koskinen).
      
         - Fix missing ERST record ID in the APEI code (Liu Xinpeng).
      
         - Make APEI error injection to refuse to inject into the zero page
           (Tony Luck).
      
         - Correct description of INT3407 / INT3532 DPTF attributes in sysfs
           (Sumeet Pawnikar).
      
         - Add support for high frequency impedance notification to the DPTF
           driver (Sumeet Pawnikar).
      
         - Make mp_config_acpi_gsi() a void function (Li kunyu).
      
         - Unify Package () representation for properties in the ACPI device
           properties documentation (Andy Shevchenko).
      
         - Include UUID in _DSM evaluation warning (Michael Niewöhner)"
      
      * tag 'acpi-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (41 commits)
        Revert "ACPICA: executer/exsystem: Warn about sleeps greater than 10 ms"
        ACPI: utils: include UUID in _DSM evaluation warning
        ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default
        x86: ACPI: Make mp_config_acpi_gsi() a void function
        ACPI: DPTF: Add support for high frequency impedance notification
        ACPI: AGDI: Fix missing prototype warning for acpi_agdi_init()
        ACPI: bus: Avoid non-ACPI device objects in walks over children
        ACPI: DPTF: Correct description of INT3407 / INT3532 attributes
        ACPI: BGRT: use static for BGRT_SHOW kobj_attribute defines
        ACPI, APEI, EINJ: Refuse to inject into the zero page
        ACPI: PM: Always print final debug message in acpi_device_set_power()
        ACPI: SPCR: Add support for NVIDIA 16550-compatible port subtype
        ACPI: docs: enumeration: Unify Package () for properties (part 2)
        ACPI: APEI: Fix missing ERST record id
        ACPICA: Update version to 20220331
        ACPICA: exsystem.c: Use ACPI_FORMAT_UINT64 for 64-bit output
        ACPICA: IORT: Updates for revision E.d
        ACPICA: executer/exsystem: Fix some typo mistakes
        ACPICA: iASL/MADT: Add OEM-defined subtable
        ACPICA: executer/exsystem: Warn about sleeps greater than 10 ms
        ...
      1961b06c
    • L
      Merge tag 'for-linus-2022052401' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · aa051d36
      Linus Torvalds 提交于
      Pull HID updates from Jiri Kosina:
      
       - support for pens with 3 buttons with Wacom driver (Joshua Dickens)
      
       - support for HID_DG_SCANTIME to report the timestamp for pen and touch
         events in Wacom driver (Joshua Dickens)
      
       - support for sensor discovery in amd-sfh driver (Basavaraj Natikar)
      
       - support for wider variety of Huion tablets ported from DIGImend
         project (José Expósito, Nikolai Kondrashov)
      
       - new device IDs and other assorted small code cleanups
      
      * tag 'for-linus-2022052401' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (44 commits)
        HID: apple: Properly handle function keys on Keychron keyboards
        HID: uclogic: Switch to Digitizer usage for styluses
        HID: uclogic: Add pen support for XP-PEN Star 06
        HID: uclogic: Differentiate touch ring and touch strip
        HID: uclogic: Always shift touch reports to zero
        HID: uclogic: Do not focus on touch ring only
        HID: uclogic: Return raw parameters from v2 pen init
        HID: uclogic: Move param printing to a function
        HID: core: Display "SENSOR HUB" for sensor hub bus string in hid_info
        HID: amd_sfh: Move bus declaration outside of amd-sfh
        HID: amd_sfh: Add physical location to HID device
        HID: amd_sfh: Modify the hid name
        HID: amd_sfh: Modify the bus name
        HID: amd_sfh: Add sensor name by index for debug info
        HID: amd_sfh: Add support for sensor discovery
        HID: bigben: fix slab-out-of-bounds Write in bigben_probe
        Hid: wacom: Fix kernel test robot warning
        HID: uclogic: Disable pen usage for Huion keyboard interfaces
        HID: uclogic: Support disabling pen usage
        HID: uclogic: Pass keyboard reports as is
        ...
      aa051d36
    • L
      Merge tag 'spi-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · d8e0f976
      Linus Torvalds 提交于
      Pull spi updates from Mark Brown:
       "This is quite a quiet release but some new drivers mean that the
        diffstat is fairly large. The new drivers include the aspeed driver
        which is migrated from MTD as part of the ongoing move of controllers
        with specialised support for SPI flashes into the SPI subsystem.
      
         - Support for devices which flip CPHA during recieve only transfers
           (eg, if MOSI and MISO have inverted polarity).
      
         - Overhaul of the i.MX driver, including the addition of PIO support
           for better performance on small transfers.
      
         - Migration of the Aspeed driver from MTD.
      
         - Support for Aspeed AST2400, Ingenic JZ4775 and X1/2000 and MediaTek
           IPM and SFI"
      
      * tag 'spi-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (84 commits)
        spi: spi-au1550: replace ternary operator with min()
        mtd: spi-nor: aspeed: set the decoding size to at least 2MB for AST2600
        spi: aspeed: Calibrate read timings
        spi: aspeed: Add support for the AST2400 SPI controller
        spi: aspeed: Workaround AST2500 limitations
        spi: aspeed: Adjust direct mapping to device size
        spi: aspeed: Add support for direct mapping
        spi: spi-mem: Convert Aspeed SMC driver to spi-mem
        spi: Convert the Aspeed SMC controllers device tree binding
        spi: spi-cadence: Update ISR status variable type to irqreturn_t
        spi: Doc fix - Describe add_lock and dma_map_dev in spi_controller
        spi: cadence-quadspi: Handle spi_unregister_master() in remove()
        spi: stm32-qspi: Remove SR_BUSY bit check before sending command
        spi: stm32-qspi: Always check SR_TCF flags in stm32_qspi_wait_cmd()
        spi: stm32-qspi: Fix wait_cmd timeout in APM mode
        spi: cadence-quadspi: remove unnecessary (void *) casts
        spi: cadence-quadspi: Add missing blank line in cqspi_request_mmap_dma()
        spi: spi-imx: mx51_ecspi_prepare_message(): skip writing MX51_ECSPI_CONFIG register if unchanged
        spi: spi-imx: add PIO polling support
        spi: spi-imx: replace struct spi_imx_data::bitbang by pointer to struct spi_controller
        ...
      d8e0f976
    • L
      Merge tag 'regulator-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 9b18d07b
      Linus Torvalds 提交于
      Pull regulator updates from Mark Brown:
       "This is mostly a drivers update including a couple of new drivers but
        we do have some fixes and improvements to the core as well.
      
         - Make sure we don't log spuriously about uncontrollable regulators.
      
         - Don't use delays when we should use sleeps for regulators with
           larger ramp times.
      
         - Support for MediaTek MT6358 and MT6366, Richtek RT5759 and Silicon
           Mitus SM5703"
      
      * tag 'regulator-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (36 commits)
        regulator: scmi: Fix refcount leak in scmi_regulator_probe
        regulator: pfuze100: Fix refcount leak in pfuze_parse_regulators_dt
        regulator: qcom_smd: Fix up PM8950 regulator configuration
        regulator: core: Fix enable_count imbalance with EXCLUSIVE_GET
        regulator: core: Add error flags to sysfs attributes
        regulator: dt-bindings: qcom,rpmh: document vdd-l7-bob-supply on PMR735A
        regulator: dt-bindings: qcom,rpmh: document supplies per variant
        regulator: dt-bindings: qcom,rpmh: update maintainers
        regulator: mt6315: Enforce regulator-compatible, not name
        regulator: pca9450: Enable DVS control via PMIC_STBY_REQ
        regulator: pca9450: Make warm reset on WDOG_B assertion
        regulator: Add property for WDOG_B warm reset
        regulator: pca9450: Make I2C Level Translator configurable
        regulator: Add property for I2C level shifter
        regulator: sm5703: Correct reference to the common regulator schema
        regulator: sm5703-regulator: Add regulators support for SM5703 MFD
        dt-bindings: regulator: Add bindings for Silicon Mitus SM5703 regulators
        regulator: richtek,rt4801: parse GPIOs per regulator
        regulator: dt-bindings: richtek,rt4801: use existing ena_gpiod feature
        regulator: core: Sleep (not delay) in set_voltage()
        ...
      9b18d07b
    • L
      Merge tag 'regmap-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 5d23bb5f
      Linus Torvalds 提交于
      Pull regmap updates from Mark Brown:
       "The main change here is Marek's addition of bulk read/write callbacks
        for individual regmaps, we've supported single register operations for
        a while but there's enough hardware out there which can use bulk
        equivalents to make it worthwhile"
      
      * tag 'regmap-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: Add missing map->bus check
        regmap: Add bulk read/write callbacks into regmap_config
        regmap: cache: set max_register with reg_stride
        regmap: Constify static regmap_bus structs
      5d23bb5f
    • L
      Merge tag 'mmc-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 638971b7
      Linus Torvalds 提交于
      Pull MMC updates from Ulf Hansson:
       "MMC core:
      
         - Support zero-out using TRIM for eMMC
      
         - Allow to override the busy-timeout for the ioctl-cmds
      
        MMC host:
      
         - Continued the conversion of DT bindings into the JSON schema
      
         - jz4740: Apply DMA engine limits to maximum segment size
      
         - mmci_stm32: Use a buffer for unaligned DMA requests
      
         - mmc_spi: Enabled high-speed modes via parsing of DT
      
         - omap: Make clock management to be compliant with CCF
      
         - renesas_sdhi:
            - Support eMMC HS400 mode for R-Car V3H ES2.0
            - Don't allow support for eMMC HS400 for R-Car V3M/D3
      
         - sdhci_am654: Fix problem when SD card slot lacks the card detect
           line
      
         - sdhci-esdhc-imx: Add support for the imx8dxl variant
      
         - sdhci-brcmstb: Enable support for clock gating to save power
      
         - sdhci-msm:
            - Add support for the sdx65 variant
            - Add support for the sm8150 variant
      
         - sdhci-of-dwcmshc: Add support for the Rockchip rk3588 variant
      
         - sdhci-pci-gli: Add workaround to allow GL9755 to enter ASPM L1.2"
      
      * tag 'mmc-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (52 commits)
        mmc: sdhci-of-arasan: Add NULL check for data field
        mmc: core: Support zeroout using TRIM for eMMC
        mmc: sdhci-brcmstb: Fix compiler warning
        mmc: sdhci-msm: Add compatible string check for sdx65
        dt-bindings: mmc: sdhci-msm: Document the SDX65 compatible
        mmc: sdhci-msm: Add compatible string check for sm8150
        dt-bindings: mmc: sdhci-msm: Add compatible string for sm8150
        mmc: sdhci-msm: Add SoC specific compatibles
        dt-bindings: mmc: sdhci-msm: Convert bindings to yaml
        dt-bindings: mmc: brcm,sdhci-brcmstb: cleanup example
        dt-bindings: mmc: brcm,sdhci-brcmstb: correct number of reg entries
        mmc: sdhci-brcmstb: Enable Clock Gating to save power
        mmc: sdhci-brcmstb: Re-organize flags
        mmc: mmci: Remove custom ios handler
        mmc: atmel-mci: Simplify if(chan) and if(!chan)
        mmc: core: use kobj_to_dev()
        dt-bindings: mmc: sdhci-of-dwcmhsc: Add rk3588
        mmc: core: Add CIDs for cards to the entropy pool
        mmc: core: Allows to override the timeout value for ioctl() path
        mmc: sdhci-omap: Use of_device_get_match_data() helper
        ...
      638971b7
    • L
      Merge tag 'for-linus-4.19-1' of https://github.com/cminyard/linux-ipmi · b1b5bf16
      Linus Torvalds 提交于
      Pull IPMI update from Corey Minyard:
       "Add limits on the number of users and messages, plus sysfs interfaces
        to control those limits.
      
        Other than that, little cleanups, use dev_xxx() insted of pr_xxx(),
        create initializers for structures, fix a refcount leak, etc"
      
      * tag 'for-linus-4.19-1' of https://github.com/cminyard/linux-ipmi:
        ipmi:ipmb: Fix refcount leak in ipmi_ipmb_probe
        ipmi: remove unnecessary type castings
        ipmi: Make two logs unique
        ipmi:si: Convert pr_debug() to dev_dbg()
        ipmi: Convert pr_debug() to dev_dbg()
        ipmi: Fix pr_fmt to avoid compilation issues
        ipmi: Add an intializer for ipmi_recv_msg struct
        ipmi: Add an intializer for ipmi_smi_msg struct
        ipmi:ssif: Check for NULL msg when handling events and messages
        ipmi: use simple i2c probe function
        ipmi: Add a sysfs count of total outstanding messages for an interface
        ipmi: Add a sysfs interface to view the number of users
        ipmi: Limit the number of message a user may have outstanding
        ipmi: Add a limit on the number of users that may use IPMI
      b1b5bf16
    • L
      Merge tag 'mtd/for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · d3353719
      Linus Torvalds 提交于
      Pull mtd updates from Miquel Raynal:
       "MTD core changes:
         - Call of_platform_populate() for MTD partitions
         - Check devicetree alias for index
         - mtdoops:
            - Add a timestamp to the mtdoops header.
            - Create a header structure for the saved mtdoops.
            - Fix the size of the header read buffer.
         - mtdblock: Warn if opened on NAND
         - Bindings:
            - reserved-memory: Support MTD/block device
            - jedec,spi-nor: remove unneeded properties
            - Extend fixed-partitions binding
            - Add Sercomm (Suzhou) Corporation vendor prefix
      
        MTD driver changes:
         - st_spi_fsm: add missing clk_disable_unprepare() in stfsm_remove()
         - phram:
            - Allow cached mappings
            - Allow probing via reserved-memory
         - maps: ixp4xx: Drop driver
         - bcm47xxpart: Print correct offset on read error
      
        CFI driver changes:
         - Rename chip_ready variables
         - Add S29GL064N ID definition
         - Use chip_ready() for write on S29GL064N
         - Move and rename chip_check/chip_ready/chip_good_for_write
      
        NAND core changes:
         - Print offset instead of page number for bad blocks
      
        Raw NAND controller drivers:
         - Cadence: Fix possible null-ptr-deref in cadence_nand_dt_probe()
         - CS553X: simplify the return expression of cs553x_write_ctrl_byte()
         - Davinci: Remove redundant unsigned comparison to zero
         - Denali: Use managed device resources
         - GPMI:
            - Add large oob bch setting support
            - Rename the variable ecc_chunk_size
            - Uninline the gpmi_check_ecc function
            - Add strict ecc strength check
            - Refactor BCH geometry settings function
         - Intel: Fix possible null-ptr-deref in ebu_nand_probe()
         - MPC5121: Check before clk_disable_unprepare() not needed
         - Mtk:
            - MTD_NAND_ECC_MEDIATEK should depend on ARCH_MEDIATEK
            - Also parse the default nand-ecc-engine property if available
            - Make mtk_ecc.c a separated module
         - OMAP ELM:
            - Convert the bindings to yaml
            - Describe the bindings for AM64 ELM
            - Add support for its compatible
         - Renesas: Use runtime PM instead of the raw clock API and update the
           bindings accordingly
         - Rockchip: Check before clk_disable_unprepare() not needed
         - TMIO: Check return value after calling platform_get_resource()
      
        Raw NAND chip driver:
         - Kioxia: Add support for TH58NVG3S0HBAI4 and TC58NVG0S3HTA00
      
        SPI-NAND chip drivers:
         - Gigadevice:
            - Add support for:
               - GD5FxGM7xExxG
               - GD5F{2,4}GQ5xExxG
               - GD5F1GQ5RExxG
               - GD5FxGQ4xExxG
            - Fix Quad IO for GD5F1GQ5UExxG
         - XTX: Add support for XT26G0xA
      
        SPI NOR core changes:
         - Read back written SR value to make sure the write was done
           correctly.
         - Introduce a common function for Read ID that manufacturer drivers
           can use to verify the Octal DTR switch worked correctly.
         - Add helpers for read/write any register commands so manufacturer
           drivers don't open code it every time.
         - Clarify rdsr dummy cycles documentation.
         - Add debugfs entry to expose internal flash parameters and state.
      
        SPI NOR manufacturer drivers changes:
         - Add support for Winbond W25Q512NW-IM, and Eon EN25QH256A.
         - Move spi_nor_write_ear() to Winbond module since only Winbond
           flashes use it.
         - Rework Micron and Cypress Octal DTR enable methods to improve
           readability.
         - Use the common Read ID function to verify switch to Octal DTR mode
           for Micron and Cypress flashes.
         - Skip polling status on volatile register writes for Micron and
           Cypress flashes since the operation is instant"
      
      * tag 'mtd/for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (68 commits)
        mtd: st_spi_fsm: add missing clk_disable_unprepare() in stfsm_remove()
        dt-bindings: mtd: partitions: Extend fixed-partitions binding
        dt-bindings: Add Sercomm (Suzhou) Corporation vendor prefix
        mtd: phram: Allow cached mappings
        mtd: call of_platform_populate() for MTD partitions
        mtd: rawnand: renesas: Use runtime PM instead of the raw clock API
        dt-bindings: mtd: renesas: Fix the NAND controller description
        mtd: rawnand: mpc5121: Check before clk_disable_unprepare() not needed
        mtd: rawnand: rockchip: Check before clk_disable_unprepare() not needed
        mtd: nand: MTD_NAND_ECC_MEDIATEK should depend on ARCH_MEDIATEK
        mtd: rawnand: cs553x: simplify the return expression of cs553x_write_ctrl_byte()
        mtd: rawnand: kioxia: Add support for TH58NVG3S0HBAI4
        mtd: spi-nor: debugfs: fix format specifier
        mtd: spi-nor: support eon en25qh256a variant
        mtd: spi-nor: winbond: add support for W25Q512NW-IM
        mtd: spi-nor: expose internal parameters via debugfs
        mtd: spi-nor: export spi_nor_hwcaps_pp2cmd()
        mtd: spi-nor: move spi_nor_write_ear() to winbond module
        mtd: spi-nor: amend the rdsr dummy cycles documentation
        mtd: cfi_cmdset_0002: Rename chip_ready variables
        ...
      d3353719
    • L
      Merge tag 'hwmon-for-v5.19-rc1' of... · 076f222a
      Linus Torvalds 提交于
      Merge tag 'hwmon-for-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
       "New drivers:
      
         - Driver for the Microchip LAN966x SoC
      
         - PMBus driver for Infineon Digital Multi-phase xdp152 family
           controllers
      
        Chip support added to existing drivers:
      
         - asus-ec-sensors:
            - Support for ROG STRIX X570-E GAMING WIFI II, PRIME X470-PRO, and
              ProArt X570 Creator WIFI
            - External temperature sensor support for ASUS WS X570-ACE
      
         - nct6775:
            - Support for I2C driver
            - Support for ASUS PRO H410T / PRIME H410M-R /
              ROG X570-E GAMING WIFI II
      
         - lm75:
            - Support for - Atmel AT30TS74
      
         - pmbus/max16601:
            - Support for MAX16602
      
         - aquacomputer_d5next:
            - Support for Aquacomputer Farbwerk
            - Support for Aquacomputer Octo
      
         - jc42:
            - Support for S-34TS04A
      
        Kernel API changes / clarifications:
      
         - The chip parameter of with_info API is now mandatory
      
         - New hwmon_device_register_for_thermal API call for use by the
           thermal subsystem
      
        Improvements:
      
         - PMBus and JC42 drivers now register with thermal subsystem
      
         - PMBus drivers now support get_voltage/set_voltage power operations
      
         - The adt7475 driver now supports pin configuration
      
         - The lm90 driver now supports setting extended range temperatures
           configuration with a devicetree property
      
         - The dell-smm driver now registers as cooling device
      
         - The OCC driver delays hwmon registration until requested by
           userspace
      
        ... and various other minor fixes and improvements"
      
      * tag 'hwmon-for-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (71 commits)
        hwmon: (aquacomputer_d5next) Fix an error handling path in aqc_probe()
        hwmon: (sl28cpld) Fix typo in comment
        hwmon: (pmbus) Check PEC support before reading other registers
        hwmon: (dimmtemp) Fix bitmap handling
        hwmon: (lm90) enable extended range according to DTS node
        dt-bindings: hwmon: lm90: add ti,extended-range-enable property
        dt-bindings: hwmon: lm90: add missing ti,tmp461
        hwmon: (ibmaem) Directly use ida_alloc()/free()
        hwmon: Directly use ida_alloc()/free()
        hwmon: (asus-ec-sensors) fix Formula VIII definition
        dt-bindings: trivial-devices: Add xdp152
        hwmon: (sl28cpld-hwmon) Use HWMON_CHANNEL_INFO macro
        hwmon: (pwm-fan) Use HWMON_CHANNEL_INFO macro
        hwmon: (peci/dimmtemp) Use HWMON_CHANNEL_INFO macro
        hwmon: (peci/cputemp) Use HWMON_CHANNEL_INFO macro
        hwmon: (mr75203) Use HWMON_CHANNEL_INFO macro
        hwmon: (ltc2992) Use HWMON_CHANNEL_INFO macro
        hwmon: (as370-hwmon) Use HWMON_CHANNEL_INFO macro
        hwmon: Make chip parameter for with_info API mandatory
        thermal/drivers/thermal_hwmon: Use hwmon_device_register_for_thermal()
        ...
      076f222a
    • L
      Merge tag 'integrity-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity · 0350785b
      Linus Torvalds 提交于
      Pull IMA updates from Mimi Zohar:
       "New is IMA support for including fs-verity file digests and signatures
        in the IMA measurement list as well as verifying the fs-verity file
        digest based signatures, both based on policy.
      
        In addition, are two bug fixes:
      
         - avoid reading UEFI variables, which cause a page fault, on Apple
           Macs with T2 chips.
      
         - remove the original "ima" template Kconfig option to address a boot
           command line ordering issue.
      
        The rest is a mixture of code/documentation cleanup"
      
      * tag 'integrity-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity:
        integrity: Fix sparse warnings in keyring_handler
        evm: Clean up some variables
        evm: Return INTEGRITY_PASS for enum integrity_status value '0'
        efi: Do not import certificates from UEFI Secure Boot for T2 Macs
        fsverity: update the documentation
        ima: support fs-verity file digest based version 3 signatures
        ima: permit fsverity's file digests in the IMA measurement list
        ima: define a new template field named 'd-ngv2' and templates
        fs-verity: define a function to return the integrity protected file digest
        ima: use IMA default hash algorithm for integrity violations
        ima: fix 'd-ng' comments and documentation
        ima: remove the IMA_TEMPLATE Kconfig option
        ima: remove redundant initialization of pointer 'file'.
      0350785b
    • L
      Merge tag 'tpmdd-next-v5.19-rc1' of... · 7cf6a8a1
      Linus Torvalds 提交于
      Merge tag 'tpmdd-next-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd
      
      Pull tpm updates from Jarkko Sakkinen:
      
       - Tightened validation of key hashes for SYSTEM_BLACKLIST_HASH_LIST. An
         invalid hash format causes a compilation error. Previously, they got
         included to the kernel binary but were silently ignored at run-time.
      
       - Allow root user to append new hashes to the blacklist keyring.
      
       - Trusted keys backed with Cryptographic Acceleration and Assurance
         Module (CAAM), which part of some of the new NXP's SoC's. Now there
         is total three hardware backends for trusted keys: TPM, ARM TEE and
         CAAM.
      
       - A scattered set of fixes and small improvements for the TPM driver.
      
      * tag 'tpmdd-next-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd:
        MAINTAINERS: add KEYS-TRUSTED-CAAM
        doc: trusted-encrypted: describe new CAAM trust source
        KEYS: trusted: Introduce support for NXP CAAM-based trusted keys
        crypto: caam - add in-kernel interface for blob generator
        crypto: caam - determine whether CAAM supports blob encap/decap
        KEYS: trusted: allow use of kernel RNG for key material
        KEYS: trusted: allow use of TEE as backend without TCG_TPM support
        tpm: Add field upgrade mode support for Infineon TPM2 modules
        tpm: Fix buffer access in tpm2_get_tpm_pt()
        char: tpm: cr50_i2c: Suppress duplicated error message in .remove()
        tpm: cr50: Add new device/vendor ID 0x504a6666
        tpm: Remove read16/read32/write32 calls from tpm_tis_phy_ops
        tpm: ibmvtpm: Correct the return value in tpm_ibmvtpm_probe()
        tpm/tpm_ftpm_tee: Return true/false (not 1/0) from bool functions
        certs: Explain the rationale to call panic()
        certs: Allow root user to append signed hashes to the blacklist keyring
        certs: Check that builtin blacklist hashes are valid
        certs: Make blacklist_vet_description() more strict
        certs: Factor out the blacklist hash creation
        tools/certs: Add print-cert-tbs-hash.sh
      7cf6a8a1
    • L
      Merge tag 'Smack-for-5.19' of https://github.com/cschaufler/smack-next · a9d1046a
      Linus Torvalds 提交于
      Pull smack update from Casey Schaufler:
       "A single change to remove a pointless assignment"
      
      * tag 'Smack-for-5.19' of https://github.com/cschaufler/smack-next:
        smack: Remove redundant assignments
      a9d1046a
    • L
      Merge tag 'landlock-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · cb44e4f0
      Linus Torvalds 提交于
      Pull Landlock updates from Mickaël Salaün:
      
       - improve the path_rename LSM hook implementations for RENAME_EXCHANGE;
      
       - fix a too-restrictive filesystem control for a rare corner case;
      
       - set the nested sandbox limitation to 16 layers;
      
       - add a new LANDLOCK_ACCESS_FS_REFER access right to properly handle
         file reparenting (i.e. full rename and link support);
      
       - add new tests and documentation;
      
       - format code with clang-format to make it easier to maintain and
         contribute.
      
      * tag 'landlock-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux: (30 commits)
        landlock: Explain how to support Landlock
        landlock: Add design choices documentation for filesystem access rights
        landlock: Document good practices about filesystem policies
        landlock: Document LANDLOCK_ACCESS_FS_REFER and ABI versioning
        samples/landlock: Add support for file reparenting
        selftests/landlock: Add 11 new test suites dedicated to file reparenting
        landlock: Add support for file reparenting with LANDLOCK_ACCESS_FS_REFER
        LSM: Remove double path_rename hook calls for RENAME_EXCHANGE
        landlock: Move filesystem helpers and add a new one
        landlock: Fix same-layer rule unions
        landlock: Create find_rule() from unmask_layers()
        landlock: Reduce the maximum number of layers to 16
        landlock: Define access_mask_t to enforce a consistent access mask size
        selftests/landlock: Test landlock_create_ruleset(2) argument check ordering
        landlock: Change landlock_restrict_self(2) check ordering
        landlock: Change landlock_add_rule(2) argument check ordering
        selftests/landlock: Add tests for O_PATH
        selftests/landlock: Fully test file rename with "remove" access
        selftests/landlock: Extend access right tests to directories
        selftests/landlock: Add tests for unknown access rights
        ...
      cb44e4f0
    • L
      Merge tag 'selinux-pr-20220523' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · efd1df19
      Linus Torvalds 提交于
      Pull selinux updates from Paul Moore:
       "We've got twelve patches queued for v5.19, with most being fairly
        minor. The highlights are below:
      
         - The checkreqprot and runtime disable knobs have been deprecated for
           some time with no active users that we can find. In an effort to
           move things along we are adding a pause when the knobs are used to
           help make the deprecation more noticeable in case anyone is still
           using these hacks in the shadows.
      
         - We've added the anonymous inode class name to the AVC audit records
           when anonymous inodes are involved. This should make writing policy
           easier when anonymous inodes are involved.
      
         - More constification work. This is fairly straightforward and the
           source of most of the diffstat.
      
         - The usual minor cleanups: remove unnecessary assignments, assorted
           style/checkpatch fixes, kdoc fixes, macro while-loop
           encapsulations, #include tweaks, etc"
      
      * tag 'selinux-pr-20220523' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        security: declare member holding string literal const
        selinux: log anon inode class name
        selinux: declare data arrays const
        selinux: fix indentation level of mls_ops block
        selinux: include necessary headers in headers
        selinux: avoid extra semicolon
        selinux: update parameter documentation
        selinux: resolve checkpatch errors
        selinux: don't sleep when CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE is true
        selinux: checkreqprot is deprecated, add some ssleep() discomfort
        selinux: runtime disable is deprecated, add some ssleep() discomfort
        selinux: Remove redundant assignments
      efd1df19
    • L
      Merge tag 'execve-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · a6b45057
      Linus Torvalds 提交于
      Pull execve updates from Kees Cook:
      
       - Fix binfmt_flat GOT handling for riscv (Niklas Cassel)
      
       - Remove unused/broken binfmt_flat shared library and coredump code
         (Eric W. Biederman)
      
      * tag 'execve-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        binfmt_flat: Remove shared library support
        binfmt_flat: Drop vestiges of coredump support
        binfmt_flat: do not stop relocating GOT entries prematurely on riscv
      a6b45057
    • L
      Merge tag 'seccomp-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · dc8af1ff
      Linus Torvalds 提交于
      Pull seccomp updates from Kees Cook:
      
       - Rework USER_NOTIF notification ordering and kill logic (Sargun
         Dhillon)
      
       - Improved PTRACE_O_SUSPEND_SECCOMP selftest (Jann Horn)
      
       - Gracefully handle failed unshare() in selftests (Yang Guang)
      
       - Spelling fix (Colin Ian King)
      
      * tag 'seccomp-v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        selftests/seccomp: Fix spelling mistake "Coud" -> "Could"
        selftests/seccomp: Add test for wait killable notifier
        selftests/seccomp: Refactor get_proc_stat to split out file reading code
        seccomp: Add wait_killable semantic to seccomp user notifier
        selftests/seccomp: Ensure that notifications come in FIFO order
        seccomp: Use FIFO semantics to order notifications
        selftests/seccomp: Add SKIP for failed unshare()
        selftests/seccomp: Test PTRACE_O_SUSPEND_SECCOMP without CAP_SYS_ADMIN
      dc8af1ff
    • E
      ext4: only allow test_dummy_encryption when supported · 5f41fdae
      Eric Biggers 提交于
      Make the test_dummy_encryption mount option require that the encrypt
      feature flag be already enabled on the filesystem, rather than
      automatically enabling it.  Practically, this means that "-O encrypt"
      will need to be included in MKFS_OPTIONS when running xfstests with the
      test_dummy_encryption mount option.  (ext4/053 also needs an update.)
      
      Moreover, as long as the preconditions for test_dummy_encryption are
      being tightened anyway, take the opportunity to start rejecting it when
      !CONFIG_FS_ENCRYPTION rather than ignoring it.
      
      The motivation for requiring the encrypt feature flag is that:
      
      - Having the filesystem auto-enable feature flags is problematic, as it
        bypasses the usual sanity checks.  The specific issue which came up
        recently is that in kernel versions where ext4 supports casefold but
        not encrypt+casefold (v5.1 through v5.10), the kernel will happily add
        the encrypt flag to a filesystem that has the casefold flag, making it
        unmountable -- but only for subsequent mounts, not the initial one.
        This confused the casefold support detection in xfstests, causing
        generic/556 to fail rather than be skipped.
      
      - The xfstests-bld test runners (kvm-xfstests et al.) already use the
        required mkfs flag, so they will not be affected by this change.  Only
        users of test_dummy_encryption alone will be affected.  But, this
        option has always been for testing only, so it should be fine to
        require that the few users of this option update their test scripts.
      
      - f2fs already requires it (for its equivalent feature flag).
      Signed-off-by: NEric Biggers <ebiggers@google.com>
      Reviewed-by: NGabriel Krisman Bertazi <krisman@collabora.com>
      Link: https://lore.kernel.org/r/20220519204437.61645-1-ebiggers@kernel.orgSigned-off-by: NTheodore Ts'o <tytso@mit.edu>
      5f41fdae
    • B
      ext4: fix bug_on in __es_tree_search · d36f6ed7
      Baokun Li 提交于
      Hulk Robot reported a BUG_ON:
      ==================================================================
      kernel BUG at fs/ext4/extents_status.c:199!
      [...]
      RIP: 0010:ext4_es_end fs/ext4/extents_status.c:199 [inline]
      RIP: 0010:__es_tree_search+0x1e0/0x260 fs/ext4/extents_status.c:217
      [...]
      Call Trace:
       ext4_es_cache_extent+0x109/0x340 fs/ext4/extents_status.c:766
       ext4_cache_extents+0x239/0x2e0 fs/ext4/extents.c:561
       ext4_find_extent+0x6b7/0xa20 fs/ext4/extents.c:964
       ext4_ext_map_blocks+0x16b/0x4b70 fs/ext4/extents.c:4384
       ext4_map_blocks+0xe26/0x19f0 fs/ext4/inode.c:567
       ext4_getblk+0x320/0x4c0 fs/ext4/inode.c:980
       ext4_bread+0x2d/0x170 fs/ext4/inode.c:1031
       ext4_quota_read+0x248/0x320 fs/ext4/super.c:6257
       v2_read_header+0x78/0x110 fs/quota/quota_v2.c:63
       v2_check_quota_file+0x76/0x230 fs/quota/quota_v2.c:82
       vfs_load_quota_inode+0x5d1/0x1530 fs/quota/dquot.c:2368
       dquot_enable+0x28a/0x330 fs/quota/dquot.c:2490
       ext4_quota_enable fs/ext4/super.c:6137 [inline]
       ext4_enable_quotas+0x5d7/0x960 fs/ext4/super.c:6163
       ext4_fill_super+0xa7c9/0xdc00 fs/ext4/super.c:4754
       mount_bdev+0x2e9/0x3b0 fs/super.c:1158
       mount_fs+0x4b/0x1e4 fs/super.c:1261
      [...]
      ==================================================================
      
      Above issue may happen as follows:
      -------------------------------------
      ext4_fill_super
       ext4_enable_quotas
        ext4_quota_enable
         ext4_iget
          __ext4_iget
           ext4_ext_check_inode
            ext4_ext_check
             __ext4_ext_check
              ext4_valid_extent_entries
               Check for overlapping extents does't take effect
         dquot_enable
          vfs_load_quota_inode
           v2_check_quota_file
            v2_read_header
             ext4_quota_read
              ext4_bread
               ext4_getblk
                ext4_map_blocks
                 ext4_ext_map_blocks
                  ext4_find_extent
                   ext4_cache_extents
                    ext4_es_cache_extent
                     ext4_es_cache_extent
                      __es_tree_search
                       ext4_es_end
                        BUG_ON(es->es_lblk + es->es_len < es->es_lblk)
      
      The error ext4 extents is as follows:
      0af3 0300 0400 0000 00000000    extent_header
      00000000 0100 0000 12000000     extent1
      00000000 0100 0000 18000000     extent2
      02000000 0400 0000 14000000     extent3
      
      In the ext4_valid_extent_entries function,
      if prev is 0, no error is returned even if lblock<=prev.
      This was intended to skip the check on the first extent, but
      in the error image above, prev=0+1-1=0 when checking the second extent,
      so even though lblock<=prev, the function does not return an error.
      As a result, bug_ON occurs in __es_tree_search and the system panics.
      
      To solve this problem, we only need to check that:
      1. The lblock of the first extent is not less than 0.
      2. The lblock of the next extent  is not less than
         the next block of the previous extent.
      The same applies to extent_idx.
      
      Cc: stable@kernel.org
      Fixes: 5946d089 ("ext4: check for overlapping extents in ext4_valid_extent_entries()")
      Reported-by: NHulk Robot <hulkci@huawei.com>
      Signed-off-by: NBaokun Li <libaokun1@huawei.com>
      Reviewed-by: NJan Kara <jack@suse.cz>
      Link: https://lore.kernel.org/r/20220518120816.1541863-1-libaokun1@huawei.comSigned-off-by: NTheodore Ts'o <tytso@mit.edu>
      d36f6ed7
    • J
      ext4: avoid cycles in directory h-tree · 3ba733f8
      Jan Kara 提交于
      A maliciously corrupted filesystem can contain cycles in the h-tree
      stored inside a directory. That can easily lead to the kernel corrupting
      tree nodes that were already verified under its hands while doing a node
      split and consequently accessing unallocated memory. Fix the problem by
      verifying traversed block numbers are unique.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NJan Kara <jack@suse.cz>
      Link: https://lore.kernel.org/r/20220518093332.13986-2-jack@suse.czSigned-off-by: NTheodore Ts'o <tytso@mit.edu>
      3ba733f8
    • J
      ext4: verify dir block before splitting it · 46c116b9
      Jan Kara 提交于
      Before splitting a directory block verify its directory entries are sane
      so that the splitting code does not access memory it should not.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NJan Kara <jack@suse.cz>
      Link: https://lore.kernel.org/r/20220518093332.13986-1-jack@suse.czSigned-off-by: NTheodore Ts'o <tytso@mit.edu>
      46c116b9
    • T
      ext4: filter out EXT4_FC_REPLAY from on-disk superblock field s_state · c878bea3
      Theodore Ts'o 提交于
      The EXT4_FC_REPLAY bit in sbi->s_mount_state is used to indicate that
      we are in the middle of replay the fast commit journal.  This was
      actually a mistake, since the sbi->s_mount_info is initialized from
      es->s_state.  Arguably s_mount_state is misleadingly named, but the
      name is historical --- s_mount_state and s_state dates back to ext2.
      
      What should have been used is the ext4_{set,clear,test}_mount_flag()
      inline functions, which sets EXT4_MF_* bits in sbi->s_mount_flags.
      
      The problem with using EXT4_FC_REPLAY is that a maliciously corrupted
      superblock could result in EXT4_FC_REPLAY getting set in
      s_mount_state.  This bypasses some sanity checks, and this can trigger
      a BUG() in ext4_es_cache_extent().  As a easy-to-backport-fix, filter
      out the EXT4_FC_REPLAY bit for now.  We should eventually transition
      away from EXT4_FC_REPLAY to something like EXT4_MF_REPLAY.
      
      Cc: stable@kernel.org
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      Link: https://lore.kernel.org/r/20220420192312.1655305-1-phind.uet@gmail.com
      Link: https://lore.kernel.org/r/20220517174028.942119-1-tytso@mit.edu
      Reported-by: syzbot+c7358a3cd05ee786eb31@syzkaller.appspotmail.com
      c878bea3
    • B
      gfs2: Convert function bh_get to use iomap · c360abbb
      Bob Peterson 提交于
      Before this patch, function bh_get used block_map to figure out the
      block it needed to read in from the quota_change file. This patch
      changes it to use iomap directly to make it more efficient.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      c360abbb
    • B
      gfs2: use i_lock spin_lock for inode qadata · 5fcff61e
      Bob Peterson 提交于
      Before this patch, functions gfs2_qa_get and _put used the i_rw_mutex to
      prevent simultaneous access to its i_qadata. But i_rw_mutex is now used
      for many other things, including iomap_begin and end, which causes a
      conflict according to lockdep. We cannot just remove the lock since
      simultaneous opens (gfs2_open -> gfs2_open_common -> gfs2_qa_get) can
      then stomp on each others values for i_qadata.
      
      This patch solves the conflict by using the i_lock spin_lock in the inode
      to prevent simultaneous access.
      Signed-off-by: NBob Peterson <rpeterso@redhat.com>
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      5fcff61e
    • A
      gfs2: Return more useful errors from gfs2_rgrp_send_discards() · f4a47561
      Andrew Price 提交于
      The bug that 27ca8273 ("gfs2: Make sure FITRIM minlen is rounded up to
      fs block size") fixes was a little confusing as the user saw
      "Input/output error" which masked the -EINVAL that sb_issue_discard()
      returned.
      
      sb_issue_discard() can fail for various reasons, so we should return its
      return value from gfs2_rgrp_send_discards() to avoid all errors being
      reported as IO errors.
      
      This improves error reporting for FITRIM and makes no difference to the
      -o discard code path because the return value from
      gfs2_rgrp_send_discards() gets thrown away in that case (and the option
      switches off). Presumably that's why it was ok to just return -EIO in
      the past, before FITRIM was implemented.
      
      Tested with xfstests.
      Signed-off-by: NAndrew Price <anprice@redhat.com>
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      f4a47561
    • K
      gfs2: Use container_of() for gfs2_glock(aspace) · 11d8b79e
      Kees Cook 提交于
      Clang's structure layout randomization feature gets upset when it sees
      struct address_space (which is randomized) cast to struct gfs2_glock.
      This is due to seeing the mapping pointer as being treated as an array
      of gfs2_glock, rather than "something else, before struct address_space":
      
      In file included from fs/gfs2/acl.c:23:
      fs/gfs2/meta_io.h:44:12: error: casting from randomized structure pointer type 'struct address_space *' to 'struct gfs2_glock *'
      	return (((struct gfs2_glock *)mapping) - 1)->gl_name.ln_sbd;
      		^
      
      Replace the instances of open-coded pointer math with container_of()
      usage, and update the allocator to match.
      
      Some cleanups and conversion of gfs2_glock_get() and
      gfs2_glock_dealloc() by Andreas.
      Reported-by: Nkernel test robot <lkp@intel.com>
      Link: https://lore.kernel.org/lkml/202205041550.naKxwCBj-lkp@intel.com
      Cc: Bob Peterson <rpeterso@redhat.com>
      Cc: Andreas Gruenbacher <agruenba@redhat.com>
      Cc: Bill Wendling <morbo@google.com>
      Cc: cluster-devel@redhat.com
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      11d8b79e
    • A
      gfs2: Explain some direct I/O oddities · 53bb540f
      Andreas Gruenbacher 提交于
      Add some comments explaining the oddities of partial direct I/O reads
      and writes.
      Signed-off-by: NAndreas Gruenbacher <agruenba@redhat.com>
      53bb540f