1. 09 8月, 2022 40 次提交
    • L
      Merge tag '5.20-rc-ksmbd-server-fixes' of git://git.samba.org/ksmbd · eb555cb5
      Linus Torvalds 提交于
      Pull ksmbd updates from Steve French:
      
       - fixes for memory access bugs (out of bounds access, oops, leak)
      
       - multichannel fixes
      
       - session disconnect performance improvement, and session register
         improvement
      
       - cleanup
      
      * tag '5.20-rc-ksmbd-server-fixes' of git://git.samba.org/ksmbd:
        ksmbd: fix heap-based overflow in set_ntacl_dacl()
        ksmbd: prevent out of bound read for SMB2_TREE_CONNNECT
        ksmbd: prevent out of bound read for SMB2_WRITE
        ksmbd: fix use-after-free bug in smb2_tree_disconect
        ksmbd: fix memory leak in smb2_handle_negotiate
        ksmbd: fix racy issue while destroying session on multichannel
        ksmbd: use wait_event instead of schedule_timeout()
        ksmbd: fix kernel oops from idr_remove()
        ksmbd: add channel rwlock
        ksmbd: replace sessions list in connection with xarray
        MAINTAINERS: ksmbd: add entry for documentation
        ksmbd: remove unused ksmbd_share_configs_cleanup function
      eb555cb5
    • L
      Merge tag 'pull-work.iov_iter-rebased' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · f30adc0d
      Linus Torvalds 提交于
      Pull more iov_iter updates from Al Viro:
      
       - more new_sync_{read,write}() speedups - ITER_UBUF introduction
      
       - ITER_PIPE cleanups
      
       - unification of iov_iter_get_pages/iov_iter_get_pages_alloc and
         switching them to advancing semantics
      
       - making ITER_PIPE take high-order pages without splitting them
      
       - handling copy_page_from_iter() for high-order pages properly
      
      * tag 'pull-work.iov_iter-rebased' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (32 commits)
        fix copy_page_from_iter() for compound destinations
        hugetlbfs: copy_page_to_iter() can deal with compound pages
        copy_page_to_iter(): don't split high-order page in case of ITER_PIPE
        expand those iov_iter_advance()...
        pipe_get_pages(): switch to append_pipe()
        get rid of non-advancing variants
        ceph: switch the last caller of iov_iter_get_pages_alloc()
        9p: convert to advancing variant of iov_iter_get_pages_alloc()
        af_alg_make_sg(): switch to advancing variant of iov_iter_get_pages()
        iter_to_pipe(): switch to advancing variant of iov_iter_get_pages()
        block: convert to advancing variants of iov_iter_get_pages{,_alloc}()
        iov_iter: advancing variants of iov_iter_get_pages{,_alloc}()
        iov_iter: saner helper for page array allocation
        fold __pipe_get_pages() into pipe_get_pages()
        ITER_XARRAY: don't open-code DIV_ROUND_UP()
        unify the rest of iov_iter_get_pages()/iov_iter_get_pages_alloc() guts
        unify xarray_get_pages() and xarray_get_pages_alloc()
        unify pipe_get_pages() and pipe_get_pages_alloc()
        iov_iter_get_pages(): sanity-check arguments
        iov_iter_get_pages_alloc(): lift freeing pages array on failure exits into wrapper
        ...
      f30adc0d
    • A
      fix copy_page_from_iter() for compound destinations · c03f05f1
      Al Viro 提交于
      had been broken for ITER_BVEC et.al. since ever (OK, v3.17 when
      ITER_BVEC had first appeared)...
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      c03f05f1
    • A
      hugetlbfs: copy_page_to_iter() can deal with compound pages · c7d57ab1
      Al Viro 提交于
      ... since April 2021
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      c7d57ab1
    • A
      copy_page_to_iter(): don't split high-order page in case of ITER_PIPE · f0f6b614
      Al Viro 提交于
      ... just shove it into one pipe_buffer.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      f0f6b614
    • A
      expand those iov_iter_advance()... · 310d9d5a
      Al Viro 提交于
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      310d9d5a
    • A
      pipe_get_pages(): switch to append_pipe() · 746de1f8
      Al Viro 提交于
      now that we are advancing the iterator, there's no need to
      treat the first page separately - just call append_pipe()
      in a loop.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      746de1f8
    • A
      get rid of non-advancing variants · eba2d3d7
      Al Viro 提交于
      mechanical change; will be further massaged in subsequent commits
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      eba2d3d7
    • A
      ceph: switch the last caller of iov_iter_get_pages_alloc() · b5358992
      Al Viro 提交于
      here nothing even looks at the iov_iter after the call, so we couldn't
      care less whether it advances or not.
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      b5358992
    • A
      9p: convert to advancing variant of iov_iter_get_pages_alloc() · 7f024647
      Al Viro 提交于
      that one is somewhat clumsier than usual and needs serious testing.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      7f024647
    • A
      af_alg_make_sg(): switch to advancing variant of iov_iter_get_pages() · dc5801f6
      Al Viro 提交于
      ... and adjust the callers
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      dc5801f6
    • A
      iter_to_pipe(): switch to advancing variant of iov_iter_get_pages() · 7d690c15
      Al Viro 提交于
      ... and untangle the cleanup on failure to add into pipe.
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      7d690c15
    • A
      block: convert to advancing variants of iov_iter_get_pages{,_alloc}() · 480cb846
      Al Viro 提交于
      ... doing revert if we end up not using some pages
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      480cb846
    • A
      iov_iter: advancing variants of iov_iter_get_pages{,_alloc}() · 1ef255e2
      Al Viro 提交于
      Most of the users immediately follow successful iov_iter_get_pages()
      with advancing by the amount it had returned.
      
      Provide inline wrappers doing that, convert trivial open-coded
      uses of those.
      
      BTW, iov_iter_get_pages() never returns more than it had been asked
      to; such checks in cifs ought to be removed someday...
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      1ef255e2
    • A
      iov_iter: saner helper for page array allocation · 3cf42da3
      Al Viro 提交于
      All call sites of get_pages_array() are essenitally identical now.
      Replace with common helper...
      
      Returns number of slots available in resulting array or 0 on OOM;
      it's up to the caller to make sure it doesn't ask to zero-entry
      array (i.e. neither maxpages nor size are allowed to be zero).
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      3cf42da3
    • A
      fold __pipe_get_pages() into pipe_get_pages() · 85200084
      Al Viro 提交于
      ... and don't mangle maxsize there - turn the loop into counting
      one instead.  Easier to see that we won't run out of array that
      way.  Note that special treatment of the partial buffer in that
      thing is an artifact of the non-advancing semantics of
      iov_iter_get_pages() - if not for that, it would be append_pipe(),
      same as the body of the loop that follows it.  IOW, once we make
      iov_iter_get_pages() advancing, the whole thing will turn into
      	calculate how many pages do we want
      	allocate an array (if needed)
      	call append_pipe() that many times.
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      85200084
    • A
      ITER_XARRAY: don't open-code DIV_ROUND_UP() · 0aa4fc32
      Al Viro 提交于
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      0aa4fc32
    • A
      unify the rest of iov_iter_get_pages()/iov_iter_get_pages_alloc() guts · 451c0ba9
      Al Viro 提交于
      same as for pipes and xarrays; after that iov_iter_get_pages() becomes
      a wrapper for __iov_iter_get_pages_alloc().
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      451c0ba9
    • A
      unify xarray_get_pages() and xarray_get_pages_alloc() · 68fe506f
      Al Viro 提交于
      same as for pipes
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      68fe506f
    • A
      unify pipe_get_pages() and pipe_get_pages_alloc() · acbdeb83
      Al Viro 提交于
      	The differences between those two are
      * pipe_get_pages() gets a non-NULL struct page ** value pointing to
      preallocated array + array size.
      * pipe_get_pages_alloc() gets an address of struct page ** variable that
      contains NULL, allocates the array and (on success) stores its address in
      that variable.
      
      	Not hard to combine - always pass struct page ***, have
      the previous pipe_get_pages_alloc() caller pass ~0U as cap for
      array size.
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      acbdeb83
    • A
      iov_iter_get_pages(): sanity-check arguments · c81ce28d
      Al Viro 提交于
      zero maxpages is bogus, but best treated as "just return 0";
      NULL pages, OTOH, should be treated as a hard bug.
      
      get rid of now completely useless checks in xarray_get_pages{,_alloc}().
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      c81ce28d
    • A
      iov_iter_get_pages_alloc(): lift freeing pages array on failure exits into wrapper · 91329559
      Al Viro 提交于
      Incidentally, ITER_XARRAY did *not* free the sucker in case when
      iter_xarray_populate_pages() returned 0...
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      91329559
    • A
      ITER_PIPE: fold data_start() and pipe_space_for_user() together · 12d426ab
      Al Viro 提交于
      All their callers are next to each other; all of them
      want the total amount of pages and, possibly, the
      offset in the partial final buffer.
      
      Combine into a new helper (pipe_npages()), fix the
      bogosity in pipe_space_for_user(), while we are at it.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      12d426ab
    • A
      ITER_PIPE: cache the type of last buffer · 10f525a8
      Al Viro 提交于
      We often need to find whether the last buffer is anon or not, and
      currently it's rather clumsy:
      	check if ->iov_offset is non-zero (i.e. that pipe is not empty)
      	if so, get the corresponding pipe_buffer and check its ->ops
      	if it's &default_pipe_buf_ops, we have an anon buffer.
      
      Let's replace the use of ->iov_offset (which is nowhere near similar to
      its role for other flavours) with signed field (->last_offset), with
      the following rules:
      	empty, no buffers occupied:		0
      	anon, with bytes up to N-1 filled:	N
      	zero-copy, with bytes up to N-1 filled:	-N
      
      That way abs(i->last_offset) is equal to what used to be in i->iov_offset
      and empty vs. anon vs. zero-copy can be distinguished by the sign of
      i->last_offset.
      
      	Checks for "should we extend the last buffer or should we start
      a new one?" become easier to follow that way.
      
      	Note that most of the operations can only be done in a sane
      state - i.e. when the pipe has nothing past the current position of
      iterator.  About the only thing that could be done outside of that
      state is iov_iter_advance(), which transitions to the sane state by
      truncating the pipe.  There are only two cases where we leave the
      sane state:
      	1) iov_iter_get_pages()/iov_iter_get_pages_alloc().  Will be
      dealt with later, when we make get_pages advancing - the callers are
      actually happier that way.
      	2) iov_iter copied, then something is put into the copy.  Since
      they share the underlying pipe, the original gets behind.  When we
      decide that we are done with the copy (original is not usable until then)
      we advance the original.  direct_io used to be done that way; nowadays
      it operates on the original and we do iov_iter_revert() to discard
      the excessive data.  At the moment there's nothing in the kernel that
      could do that to ITER_PIPE iterators, so this reason for insane state
      is theoretical right now.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      10f525a8
    • A
      ITER_PIPE: clean iov_iter_revert() · 92acdc4f
      Al Viro 提交于
      Fold pipe_truncate() into it, clean up.  We can release buffers
      in the same loop where we walk backwards to the iterator beginning
      looking for the place where the new position will be.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      92acdc4f
    • A
      ITER_PIPE: clean pipe_advance() up · 2c855de9
      Al Viro 提交于
      instead of setting ->iov_offset for new position and calling
      pipe_truncate() to adjust ->len of the last buffer and discard
      everything after it, adjust ->len at the same time we set ->iov_offset
      and use pipe_discard_from() to deal with buffers past that.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      2c855de9
    • A
      ITER_PIPE: lose iter_head argument of __pipe_get_pages() · ca591967
      Al Viro 提交于
      it's only used to get to the partial buffer we can add to,
      and that's always the last one, i.e. pipe->head - 1.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      ca591967
    • A
      ITER_PIPE: fold push_pipe() into __pipe_get_pages() · e3b42964
      Al Viro 提交于
      	Expand the only remaining call of push_pipe() (in
      __pipe_get_pages()), combine it with the page-collecting loop there.
      
      Note that the only reason it's not a loop doing append_pipe() is
      that append_pipe() is advancing, while iov_iter_get_pages() is not.
      As soon as it switches to saner semantics, this thing will switch
      to using append_pipe().
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      e3b42964
    • A
      ITER_PIPE: allocate buffers as we go in copy-to-pipe primitives · 8fad7767
      Al Viro 提交于
      New helper: append_pipe().  Extends the last buffer if possible,
      allocates a new one otherwise.  Returns page and offset in it
      on success, NULL on failure.  iov_iter is advanced past the
      data we've got.
      
      Use that instead of push_pipe() in copy-to-pipe primitives;
      they get simpler that way.  Handling of short copy (in "mc" one)
      is done simply by iov_iter_revert() - iov_iter is in consistent
      state after that one, so we can use that.
      
      [Fix for braino caught by Liu Xinpeng <liuxp11@chinatelecom.cn> folded in]
      [another braino fix, this time in copy_pipe_to_iter() and pipe_zero();
      caught by testcase from Hugh Dickins]
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      8fad7767
    • A
      ITER_PIPE: helpers for adding pipe buffers · 47b7fcae
      Al Viro 提交于
      There are only two kinds of pipe_buffer in the area used by ITER_PIPE.
      
      1) anonymous - copy_to_iter() et.al. end up creating those and copying
      data there.  They have zero ->offset, and their ->ops points to
      default_pipe_page_ops.
      
      2) zero-copy ones - those come from copy_page_to_iter(), and page
      comes from caller.  ->offset is also caller-supplied - it might be
      non-zero.  ->ops points to page_cache_pipe_buf_ops.
      
      Move creation and insertion of those into helpers - push_anon(pipe, size)
      and push_page(pipe, page, offset, size) resp., separating them from
      the "could we avoid creating a new buffer by merging with the current
      head?" logics.
      Acked-by: NJeff Layton <jlayton@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      47b7fcae
    • A
      ITER_PIPE: helper for getting pipe buffer by index · 2dcedb2a
      Al Viro 提交于
      pipe_buffer instances of a pipe are organized as a ring buffer,
      with power-of-2 size.  Indices are kept *not* reduced modulo ring
      size, so the buffer refered to by index N is
      	pipe->bufs[N & (pipe->ring_size - 1)].
      
      Ring size can change over the lifetime of a pipe, but not while
      the pipe is locked.  So for any iov_iter primitives it's a constant.
      Original conversion of pipes to this layout went overboard trying
      to microoptimize that - calculating pipe->ring_size - 1, storing
      it in a local variable and using through the function.  In some
      cases it might be warranted, but most of the times it only
      obfuscates what's going on in there.
      
      Introduce a helper (pipe_buf(pipe, N)) that would encapsulate
      that and use it in the obvious cases.  More will follow...
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Reviewed-by: NChristian Brauner (Microsoft) <brauner@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      2dcedb2a
    • A
      splice: stop abusing iov_iter_advance() to flush a pipe · 0d964934
      Al Viro 提交于
      Use pipe_discard_from() explicitly in generic_file_read_iter(); don't bother
      with rather non-obvious use of iov_iter_advance() in there.
      Reviewed-by: NJeff Layton <jlayton@kernel.org>
      Reviewed-by: NChristian Brauner (Microsoft) <brauner@kernel.org>
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      0d964934
    • A
      3e20a751
    • A
      new iov_iter flavour - ITER_UBUF · fcb14cb1
      Al Viro 提交于
      Equivalent of single-segment iovec.  Initialized by iov_iter_ubuf(),
      checked for by iter_is_ubuf(), otherwise behaves like ITER_IOVEC
      ones.
      
      We are going to expose the things like ->write_iter() et.al. to those
      in subsequent commits.
      
      New predicate (user_backed_iter()) that is true for ITER_IOVEC and
      ITER_UBUF; places like direct-IO handling should use that for
      checking that pages we modify after getting them from iov_iter_get_pages()
      would need to be dirtied.
      
      DO NOT assume that replacing iter_is_iovec() with user_backed_iter()
      will solve all problems - there's code that uses iter_is_iovec() to
      decide how to poke around in iov_iter guts and for that the predicate
      replacement obviously won't suffice.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      fcb14cb1
    • L
      Merge tag 'rproc-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · 5d5d353b
      Linus Torvalds 提交于
      Pull remoteproc updates from Bjorn Andersson:
       "This introduces support for the remoteproc on Mediatek MT8188, and
        enables caches for MT8186 SCP. It adds support for PRU cores found on
        the TI K3 AM62x SoCs.
      
        It moves the recovery work after a firmware crash to an unbound
        workqueue, to allow recovery to happen in parallel.
      
        A new DMA API is introduced to release dma_mem for a device.
      
        It adds support a panic handler for the Qualcomm modem remoteproc,
        with the goal of having caches flushed in memory dumps for post-mortem
        debugging and it introduces a mechanism to wait for the modem firmware
        on SM8450 to decrypt part of its memory for post-mortem debugging.
      
        Qualcomm sysmon is restricted to only inform remote processors about
        peers that are actually running, to avoid a race where Linux tries to
        notify a recovering remote processor about its peers new state. A
        mechanism for waiting for the sysmon connection to be established is
        also introduced, to avoid out-of-sync updates for rapidly restarting
        remote processors.
      
        A number of Devicetree binding cleanups and conversions to YAML are
        introduced, to facilitate Devicetree validation. Lastly it introduces
        a number of smaller fixes and cleanups in the core and a few different
        drivers"
      
      * tag 'rproc-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux: (42 commits)
        remoteproc: qcom_q6v5_pas: Do not fail if regulators are not found
        drivers/remoteproc: fix repeated words in comments
        remoteproc: Directly use ida_alloc()/free()
        remoteproc: Use unbounded workqueue for recovery work
        remoteproc: using pm_runtime_resume_and_get instead of pm_runtime_get_sync
        remoteproc: qcom_q6v5_pas: Deal silently with optional px and cx regulators
        remoteproc: sysmon: Send sysmon state only for running rprocs
        remoteproc: sysmon: Wait for SSCTL service to come up
        remoteproc: qcom: q6v5: Set q6 state to offline on receiving wdog irq
        remoteproc: qcom: pas: Check if coredump is enabled
        remoteproc: qcom: pas: Mark devices as wakeup capable
        remoteproc: qcom: pas: Mark va as io memory
        remoteproc: qcom: pas: Add decrypt shutdown support for modem
        remoteproc: qcom: q6v5-mss: add powerdomains to MSM8996 config
        remoteproc: qcom_q6v5: Introduce panic handler for MSS
        remoteproc: qcom_q6v5_mss: Update MBA log info
        remoteproc: qcom: correct kerneldoc
        remoteproc: qcom_q6v5_mss: map/unmap metadata region before/after use
        remoteproc: qcom: using pm_runtime_resume_and_get to simplify the code
        remoteproc: mediatek: Support MT8188 SCP
        ...
      5d5d353b
    • L
      Merge tag 'rpmsg-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux · c7268761
      Linus Torvalds 提交于
      Pull rpmsg updates from Bjorn Andersson:
       "This contains fixes and cleanups in the rpmsg core, Qualcomm SMD and
        GLINK drivers, a circular lock dependency in the Mediatek driver and
        a possible race condition in the rpmsg_char driver is resolved"
      
      * tag 'rpmsg-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/remoteproc/linux:
        rpmsg: convert sysfs snprintf to sysfs_emit
        rpmsg: qcom_smd: Fix refcount leak in qcom_smd_parse_edge
        rpmsg: qcom: correct kerneldoc
        rpmsg: qcom: glink: remove unused name
        rpmsg: qcom: glink: replace strncpy() with strscpy_pad()
        rpmsg: Strcpy is not safe, use strscpy_pad() instead
        rpmsg: Fix possible refcount leak in rpmsg_register_device_override()
        rpmsg: Fix parameter naming for announce_create/destroy ops
        rpmsg: mtk_rpmsg: Fix circular locking dependency
        rpmsg: char: Add mutex protection for rpmsg_eptdev_open()
      c7268761
    • L
      Merge tag 'linux-watchdog-5.20-rc1' of git://www.linux-watchdog.org/linux-watchdog · e6cc0b56
      Linus Torvalds 提交于
      Pull watchdog updates from Wim Van Sebroeck:
      
       - add RTL9310 support
      
       - sp805_wdt: add arm cmsdk apb wdt support
      
       - Remove #ifdef guards for PM related functions for several watchdog
         device drivers
      
       - pm8916_wdt reboot improvements
      
       - Several other fixes and improvements
      
      * tag 'linux-watchdog-5.20-rc1' of git://www.linux-watchdog.org/linux-watchdog: (24 commits)
        watchdog: armada_37xx_wdt: check the return value of devm_ioremap() in armada_37xx_wdt_probe()
        watchdog: dw_wdt: Fix comment typo
        watchdog: Fix comment typo
        dt-bindings: watchdog: Add fsl,scu-wdt yaml file
        watchdog:Fix typo in comment
        watchdog: pm8916_wdt: Handle watchdog enabled by bootloader
        watchdog: pm8916_wdt: Report reboot reason
        watchdog: pm8916_wdt: Avoid read of write-only PET register
        watchdog: wdat_wdt: Remove #ifdef guards for PM related functions
        watchdog: tegra_wdt: Remove #ifdef guards for PM related functions
        watchdog: st_lpc_wdt: Remove #ifdef guards for PM related functions
        watchdog: sama5d4_wdt: Remove #ifdef guards for PM related functions
        watchdog: s3c2410_wdt: Remove #ifdef guards for PM related functions
        watchdog: mtk_wdt: Remove #ifdef guards for PM related functions
        watchdog: dw_wdt: Remove #ifdef guards for PM related functions
        watchdog: bcm7038_wdt: Remove #ifdef guards for PM related functions
        watchdog: realtek-otto: add RTL9310 support
        dt-bindings: watchdog: realtek,otto-wdt: add RTL9310
        watchdog: sp805_wdt: add arm cmsdk apb wdt support
        watchdog: sp5100_tco: Fix a memory leak of EFCH MMIO resource
        ...
      e6cc0b56
    • L
      Merge tag 'pm-5.20-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 507f811f
      Linus Torvalds 提交于
      Pull more power management updates from Rafael Wysocki:
       "These are ARM cpufreq updates and operating performance points (OPP)
        updates plus one cpuidle update adding a new trace point.
      
        Specifics:
      
         - Fix return error code in mtk_cpu_dvfs_info_init (Yang Yingliang).
      
         - Minor cleanups and support for new boards for Qcom cpufreq drivers
           (Bryan O'Donoghue, Konrad Dybcio, Pierre Gondois, and Yicong Yang).
      
         - Fix sparse warnings for Tegra cpufreq driver (Viresh Kumar).
      
         - Make dev_pm_opp_set_regulators() accept NULL terminated list
           (Viresh Kumar).
      
         - Add dev_pm_opp_set_config() and friends and migrate other users and
           helpers to using them (Viresh Kumar).
      
         - Add support for multiple clocks for a device (Viresh Kumar and
           Krzysztof Kozlowski).
      
         - Configure resources before adding OPP table for Venus (Stanimir
           Varbanov).
      
         - Keep reference count up for opp->np and opp_table->np while they
           are still in use (Liang He).
      
         - Minor OPP cleanups (Viresh Kumar and Yang Li).
      
         - Add a trace event for cpuidle to track missed (too deep or too
           shallow) wakeups (Kajetan Puchalski)"
      
      * tag 'pm-5.20-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (55 commits)
        cpuidle: Add cpu_idle_miss trace event
        venus: pm_helpers: Fix warning in OPP during probe
        OPP: Don't drop opp->np reference while it is still in use
        OPP: Don't drop opp_table->np reference while it is still in use
        cpufreq: tegra194: Staticize struct tegra_cpufreq_soc instances
        dt-bindings: cpufreq: cpufreq-qcom-hw: Add SM6375 compatible
        dt-bindings: opp: Add msm8939 to the compatible list
        dt-bindings: opp: Add missing compat devices
        dt-bindings: opp: opp-v2-kryo-cpu: Fix example binding checks
        cpufreq: Change order of online() CB and policy->cpus modification
        cpufreq: qcom-hw: Remove deprecated irq_set_affinity_hint() call
        cpufreq: qcom-hw: Disable LMH irq when disabling policy
        cpufreq: qcom-hw: Reset cancel_throttle when policy is re-enabled
        cpufreq: qcom-cpufreq-hw: use HZ_PER_KHZ macro in units.h
        cpufreq: mediatek: fix error return code in mtk_cpu_dvfs_info_init()
        OPP: Remove dev{m}_pm_opp_of_add_table_noclk()
        PM / devfreq: tegra30: Register config_clks helper
        OPP: Allow config_clks helper for single clk case
        OPP: Provide a simple implementation to configure multiple clocks
        OPP: Assert clk_count == 1 for single clk helpers
        ...
      507f811f
    • L
      Merge tag 'thermal-5.20-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 033c88d5
      Linus Torvalds 提交于
      Pull more thermal control updates from Rafael Wysocki:
       "These fix an error code path issue leading to a NULL pointer
        dereference, drop Kconfig dependencies that are not needed any more
        after recent changes, add CPU IDs for new chips to a driver and fix up
        the tmon utility.
      
        Specifics:
      
         - Fix NULL pointer dereference in the thermal sysfs interface that
           results from an error code path mishandling (Rafael Wysocki).
      
         - Drop COMPILE_TEST dependency that's not needed any more from two
           thermal Kconfig entries (Jean Delvare).
      
         - Make the Intel TCC cooling driver support Alder Lake-N and Raptor
           Lake-P (Sumeet Pawnikar).
      
         - Fix possible path truncations in the tmon utility (Florian
           Fainelli)"
      
      * tag 'thermal-5.20-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        tools/thermal: Fix possible path truncations
        thermal: Drop obsolete dependency on COMPILE_TEST
        thermal: sysfs: Fix cooling_device_stats_setup() error code path
        thermal: intel: Add TCC cooling support for Alder Lake-N and Raptor Lake-P
      033c88d5
    • L
      Merge tag 'sysctl-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux · d5af75f7
      Linus Torvalds 提交于
      Pull sysctl updates from Luis Chamberlain:
       "There isn't much for 6.0 for sysctl stuff, most of the stuff went
        through the networking subsystem (Kuniyuki Iwashima's trove of fixes
        using READ_ONCE/WRITE_ONCE helpers) as most of the issues there have
        been identified on networking side. So it is good we don't have much
        updates as we would have ended up with tons of conflicts. I rebased my
        delta just now to your tree so to avoid conflicts with that stuff.
        This merge request is just minor fluff cleanups then. Perhaps for 6.1
        kernel/sysctl.c will get more love than this release"
      
      * tag 'sysctl-6.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux:
        kernel/sysctl.c: Remove trailing white space
        kernel/sysctl.c: Clean up indentation, replace spaces with tab.
        sysctl: Merge adjacent CONFIG_TREE_RCU blocks
      d5af75f7