Skip to content
Permalink
lvaro-Fern-nde…
Switch branches/tags

Commits on Mar 15, 2021

  1. clk: bcm: Add BCM63268 timer clock and reset driver

    Add driver for BCM63268 timer clock and reset controller.
    
    Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
    Noltari authored and intel-lab-lkp committed Mar 15, 2021
  2. dt-bindings: clock: Add BCM63268 timer binding

    Document the Broadcom BCM63268 Clock and Reset controller.
    
    Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Noltari authored and intel-lab-lkp committed Mar 15, 2021
  3. dt-bindings: reset: add BCM63268 timer reset definitions

    Add missing timer reset definitions for BCM63268.
    
    Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
    Acked-by: Rob Herring <robh@kernel.org>
    Noltari authored and intel-lab-lkp committed Mar 15, 2021
  4. dt-bindings: clk: add BCM63268 timer clock definitions

    Add missing timer clock definitions for BCM63268.
    
    Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
    Acked-by: Rob Herring <robh@kernel.org>
    Noltari authored and intel-lab-lkp committed Mar 15, 2021

Commits on Mar 13, 2021

  1. Merge branch 'clk-cleanup' into clk-next

    * clk-cleanup:
      clk: at91: Trivial typo fixes in the file sama7g5.c
    bebarino committed Mar 13, 2021
  2. clk: at91: Trivial typo fixes in the file sama7g5.c

    s/critial/critical/  ......two different places
    s/parrent/parent/
    
    Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com>
    Link: https://lore.kernel.org/r/20210313053222.14706-1-unixbhaskar@gmail.com
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    unixbhaskar authored and bebarino committed Mar 13, 2021
  3. Merge branch 'clk-fixes' into clk-next

    * clk-fixes:
      clk: qcom: gcc-sc7180: Use floor ops for the correct sdcc1 clk
      clk: qcom: rcg2: Rectify clk_gfx3d rate rounding without mux division
      clk: qcom: rpmh: Update the XO clock source for SC7280
    bebarino committed Mar 13, 2021
  4. clk: qcom: gcc-sc7180: Use floor ops for the correct sdcc1 clk

    While picking commit a8cd989 ("mmc: sdhci-msm: Warn about
    overclocking SD/MMC") back to my tree I was surprised that it was
    reporting warnings.  I thought I fixed those!  Looking closer at the
    fix, I see that I totally bungled it (or at least I halfway bungled
    it).  The SD card clock got fixed (and that was the one I was really
    focused on fixing), but I totally adjusted the wrong clock for eMMC.
    Sigh.  Let's fix my dumb mistake.
    
    Now both SD and eMMC have floor for the "apps" clock.
    
    This doesn't matter a lot for the final clock rate for HS400 eMMC but
    could matter if someone happens to put some slower eMMC on a sc7180.
    We also transition through some of these lower rates sometimes and
    having them wrong could cause problems during these transitions.
    These were the messages I was seeing at boot:
      mmc1: Card appears overclocked; req 52000000 Hz, actual 100000000 Hz
      mmc1: Card appears overclocked; req 52000000 Hz, actual 100000000 Hz
      mmc1: Card appears overclocked; req 104000000 Hz, actual 192000000 Hz
    
    Fixes: 6d37a8d ("clk: qcom: gcc-sc7180: Use floor ops for sdcc clks")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Link: https://lore.kernel.org/r/20210224095013.1.I2e2ba4978cfca06520dfb5d757768f9c42140f7c@changeid
    Reviewed-by: Taniya Das <tdas@codeaurora.org>
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    dianders authored and bebarino committed Mar 13, 2021
  5. clk: qcom: rcg2: Rectify clk_gfx3d rate rounding without mux division

    In case the mux is not divided parent_req was mistakenly not assigned to
    leading __clk_determine_rate to determine the best frequency setting for
    a requested rate of 0, resulting in the msm8996 platform not booting.
    Rectify this by refactoring the logic to unconditionally assign to
    parent_req.rate with the clock rate the caller is expecting.
    
    Fixes: 7cbb78a ("clk: qcom: rcg2: Stop hardcoding gfx3d pingpong parent numbers")
    Reported-by: Konrad Dybcio <konrad.dybcio@somainline.org>
    Tested-by: Konrad Dybcio <konrad.dybcio@somainline.org>
    Reviewed-By: AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org>
    Signed-off-by: Marijn Suijten <marijn.suijten@somainline.org>
    Link: https://lore.kernel.org/r/20210302234106.3418665-1-marijn.suijten@somainline.org
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    MarijnS95 authored and bebarino committed Mar 13, 2021
  6. clk: qcom: rpmh: Update the XO clock source for SC7280

    The bi_tcxo clock source for SC7280 requires a div 4 to derive 19.2MHz
    from the xo_board. Thus update the same.
    
    Fixes: fff2b9a ("clk: qcom: rpmh: Add support for RPMH clocks on SC7280")
    Signed-off-by: Taniya Das <tdas@codeaurora.org>
    Link: https://lore.kernel.org/r/1615400283-20100-1-git-send-email-tdas@codeaurora.org
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Taniya Das authored and bebarino committed Mar 13, 2021
  7. Merge branch 'clk-cleanup' into clk-next

    * clk-cleanup:
      clk: use clk_core_enable_lock() a bit more
    bebarino committed Mar 13, 2021
  8. clk: use clk_core_enable_lock() a bit more

    Use clk_core_enable_lock() and clk_core_disable_lock() in a few places
    rather than open-coding them.
    
    Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Link: https://lore.kernel.org/r/20210305003334.575831-1-linux@rasmusvillemoes.dk
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Villemoes authored and bebarino committed Mar 13, 2021

Commits on Mar 6, 2021

  1. Linux 5.12-rc2

    torvalds committed Mar 6, 2021
  2. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/rdma/rdma
    
    Pull rdma fixes from Jason Gunthorpe:
     "Nothing special here, though Bob's regression fixes for rxe would have
      made it before the rc cycle had there not been such strong winter
      weather!
    
       - Fix corner cases in the rxe reference counting cleanup that are
         causing regressions in blktests for SRP
    
       - Two kdoc fixes so W=1 is clean
    
       - Missing error return in error unwind for mlx5
    
       - Wrong lock type nesting in IB CM"
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
      RDMA/rxe: Fix errant WARN_ONCE in rxe_completer()
      RDMA/rxe: Fix extra deref in rxe_rcv_mcast_pkt()
      RDMA/rxe: Fix missed IB reference counting in loopback
      RDMA/uverbs: Fix kernel-doc warning of _uverbs_alloc
      RDMA/mlx5: Set correct kernel-doc identifier
      IB/mlx5: Add missing error code
      RDMA/rxe: Fix missing kconfig dependency on CRYPTO
      RDMA/cm: Fix IRQ restore in ib_send_cm_sidr_rep
    torvalds committed Mar 6, 2021
  3. Merge tag 'gcc-plugins-v5.12-rc2' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/kees/linux
    
    Pull gcc-plugins fixes from Kees Cook:
     "Tiny gcc-plugin fixes for v5.12-rc2. These issues are small but have
      been reported a couple times now by static analyzers, so best to get
      them fixed to reduce the noise. :)
    
       - Fix coding style issues (Jason Yan)"
    
    * tag 'gcc-plugins-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
      gcc-plugins: latent_entropy: remove unneeded semicolon
      gcc-plugins: structleak: remove unneeded variable 'ret'
    torvalds committed Mar 6, 2021
  4. Merge tag 'pstore-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/kees/linux
    
    Pull pstore fixes from Kees Cook:
    
     - Rate-limit ECC warnings (Dmitry Osipenko)
    
     - Fix error path check for NULL (Tetsuo Handa)
    
    * tag 'pstore-v5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
      pstore/ram: Rate-limit "uncorrectable error in header" message
      pstore: Fix warning in pstore_kill_sb()
    torvalds committed Mar 6, 2021

Commits on Mar 5, 2021

  1. Merge tag 'for-5.12/dm-fixes' of git://git.kernel.org/pub/scm/linux/k…

    …ernel/git/device-mapper/linux-dm
    
    Pull device mapper fixes from Mike Snitzer:
     "Fix DM verity target's optional Forward Error Correction (FEC) for
      Reed-Solomon roots that are unaligned to block size"
    
    * tag 'for-5.12/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
      dm verity: fix FEC for RS roots unaligned to block size
      dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size
    torvalds committed Mar 5, 2021
  2. Merge tag 'block-5.12-2021-03-05' of git://git.kernel.dk/linux-block

    Pull block fixes from Jens Axboe:
    
     - NVMe fixes:
          - more device quirks (Julian Einwag, Zoltán Böszörményi, Pascal
            Terjan)
          - fix a hwmon error return (Daniel Wagner)
          - fix the keep alive timeout initialization (Martin George)
          - ensure the model_number can't be changed on a used subsystem
            (Max Gurtovoy)
    
     - rsxx missing -EFAULT on copy_to_user() failure (Dan)
    
     - rsxx remove unused linux.h include (Tian)
    
     - kill unused RQF_SORTED (Jean)
    
     - updated outdated BFQ comments (Joseph)
    
     - revert work-around commit for bd_size_lock, since we removed the
       offending user in this merge window (Damien)
    
    * tag 'block-5.12-2021-03-05' of git://git.kernel.dk/linux-block:
      nvmet: model_number must be immutable once set
      nvme-fabrics: fix kato initialization
      nvme-hwmon: Return error code when registration fails
      nvme-pci: add quirks for Lexar 256GB SSD
      nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state
      nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
      rsxx: Return -EFAULT if copy_to_user() fails
      block/bfq: update comments and default value in docs for fifo_expire
      rsxx: remove unused including <linux/version.h>
      block: Drop leftover references to RQF_SORTED
      block: revert "block: fix bd_size_lock use"
    torvalds committed Mar 5, 2021
  3. Merge tag 'io_uring-5.12-2021-03-05' of git://git.kernel.dk/linux-block

    Pull io_uring fixes from Jens Axboe:
     "A bit of a mix between fallout from the worker change, cleanups and
      reductions now possible from that change, and fixes in general. In
      detail:
    
       - Fully serialize manager and worker creation, fixing races due to
         that.
    
       - Clean up some naming that had gone stale.
    
       - SQPOLL fixes.
    
       - Fix race condition around task_work rework that went into this
         merge window.
    
       - Implement unshare. Used for when the original task does unshare(2)
         or setuid/seteuid and friends, drops the original workers and forks
         new ones.
    
       - Drop the only remaining piece of state shuffling we had left, which
         was cred. Move it into issue instead, and we can drop all of that
         code too.
    
       - Kill f_op->flush() usage. That was such a nasty hack that we had
         out of necessity, we no longer need it.
    
       - Following from ->flush() removal, we can also drop various bits of
         ctx state related to SQPOLL and cancelations.
    
       - Fix an issue with IOPOLL retry, which originally was fallout from a
         filemap change (removing iov_iter_revert()), but uncovered an issue
         with iovec re-import too late.
    
       - Fix an issue with system suspend.
    
       - Use xchg() for fallback work, instead of cmpxchg().
    
       - Properly destroy io-wq on exec.
    
       - Add create_io_thread() core helper, and use that in io-wq and
         io_uring. This allows us to remove various silly completion events
         related to thread setup.
    
       - A few error handling fixes.
    
      This should be the grunt of fixes necessary for the new workers, next
      week should be quieter. We've got a pending series from Pavel on
      cancelations, and how tasks and rings are indexed. Outside of that,
      should just be minor fixes. Even with these fixes, we're still killing
      a net ~80 lines"
    
    * tag 'io_uring-5.12-2021-03-05' of git://git.kernel.dk/linux-block: (41 commits)
      io_uring: don't restrict issue_flags for io_openat
      io_uring: make SQPOLL thread parking saner
      io-wq: kill hashed waitqueue before manager exits
      io_uring: clear IOCB_WAITQ for non -EIOCBQUEUED return
      io_uring: don't keep looping for more events if we can't flush overflow
      io_uring: move to using create_io_thread()
      kernel: provide create_io_thread() helper
      io_uring: reliably cancel linked timeouts
      io_uring: cancel-match based on flags
      io-wq: ensure all pending work is canceled on exit
      io_uring: ensure that threads freeze on suspend
      io_uring: remove extra in_idle wake up
      io_uring: inline __io_queue_async_work()
      io_uring: inline io_req_clean_work()
      io_uring: choose right tctx->io_wq for try cancel
      io_uring: fix -EAGAIN retry with IOPOLL
      io-wq: fix error path leak of buffered write hash map
      io_uring: remove sqo_task
      io_uring: kill sqo_dead and sqo submission halting
      io_uring: ignore double poll add on the same waitqueue head
      ...
    torvalds committed Mar 5, 2021
  4. Merge tag 'pm-5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/…

    …git/rafael/linux-pm
    
    Pull power management fixes from Rafael Wysocki:
     "These fix the usage of device links in the runtime PM core code and
      update the DTPM (Dynamic Thermal Power Management) feature added
      recently.
    
      Specifics:
    
       - Make the runtime PM core code avoid attempting to suspend supplier
         devices before updating the PM-runtime status of a consumer to
         'suspended' (Rafael Wysocki).
    
       - Fix DTPM (Dynamic Thermal Power Management) root node
         initialization and label that feature as EXPERIMENTAL in Kconfig
         (Daniel Lezcano)"
    
    * tag 'pm-5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      powercap/drivers/dtpm: Add the experimental label to the option description
      powercap/drivers/dtpm: Fix root node initialization
      PM: runtime: Update device status before letting suppliers suspend
    torvalds committed Mar 5, 2021
  5. Merge tag 'acpi-5.12-rc2' of git://git.kernel.org/pub/scm/linux/kerne…

    …l/git/rafael/linux-pm
    
    Pull ACPI fix from Rafael Wysocki:
     "Make the empty stubs of some helper functions used when CONFIG_ACPI is
      not set actually match those functions (Andy Shevchenko)"
    
    * tag 'acpi-5.12-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
      ACPI: bus: Constify is_acpi_node() and friends (part 2)
    torvalds committed Mar 5, 2021
  6. Merge tag 'iommu-fixes-v5.12-rc1' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/joro/iommu
    
    Pull iommu fixes from Joerg Roedel:
    
     - Fix a sleeping-while-atomic issue in the AMD IOMMU code
    
     - Disable lazy IOTLB flush for untrusted devices in the Intel VT-d
       driver
    
     - Fix status code definitions for Intel VT-d
    
     - Fix IO Page Fault issue in Tegra IOMMU driver
    
    * tag 'iommu-fixes-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
      iommu/vt-d: Fix status code for Allocate/Free PASID command
      iommu: Don't use lazy flush for untrusted device
      iommu/tegra-smmu: Fix mc errors on tegra124-nyan
      iommu/amd: Fix sleeping in atomic in increase_address_space()
    torvalds committed Mar 5, 2021
  7. Merge tag 'for-5.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/kdave/linux
    
    Pull btrfs fixes from David Sterba:
     "More regression fixes and stabilization.
    
      Regressions:
    
       - zoned mode
          - count zone sizes in wider int types
          - fix space accounting for read-only block groups
    
       - subpage: fix page tail zeroing
    
      Fixes:
    
       - fix spurious warning when remounting with free space tree
    
       - fix warning when creating a directory with smack enabled
    
       - ioctl checks for qgroup inheritance when creating a snapshot
    
       - qgroup
          - fix missing unlock on error path in zero range
          - fix amount of released reservation on error
          - fix flushing from unsafe context with open transaction,
            potentially deadlocking
    
       - minor build warning fixes"
    
    * tag 'for-5.12-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
      btrfs: zoned: do not account freed region of read-only block group as zone_unusable
      btrfs: zoned: use sector_t for zone sectors
      btrfs: subpage: fix the false data csum mismatch error
      btrfs: fix warning when creating a directory with smack enabled
      btrfs: don't flush from btrfs_delayed_inode_reserve_metadata
      btrfs: export and rename qgroup_reserve_meta
      btrfs: free correct amount of space in btrfs_delayed_inode_reserve_metadata
      btrfs: fix spurious free_space_tree remount warning
      btrfs: validate qgroup inherit for SNAP_CREATE_V2 ioctl
      btrfs: unlock extents in btrfs_zero_range in case of quota reservation errors
      btrfs: ref-verify: use 'inline void' keyword ordering
    torvalds committed Mar 5, 2021
  8. Merge tag 'devicetree-fixes-for-5.12-1' of git://git.kernel.org/pub/s…

    …cm/linux/kernel/git/robh/linux
    
    Pull devicetree fixes from Rob Herring:
    
     - Another batch of graph and video-interfaces schema conversions
    
     - Drop DT header symlink for dropped C6X arch
    
     - Fix bcm2711-hdmi schema error
    
    * tag 'devicetree-fixes-for-5.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
      dt-bindings: media: Use graph and video-interfaces schemas, round 2
      dts: drop dangling c6x symlink
      dt-bindings: bcm2711-hdmi: Fix broken schema
    torvalds committed Mar 5, 2021
  9. Merge tag 'trace-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/rostedt/linux-trace
    
    Pull tracing fixes from Steven Rostedt:
     "Functional fixes:
    
       - Fix big endian conversion for arm64 in recordmcount processing
    
       - Fix timestamp corruption in ring buffer on discarding events
    
       - Fix memory leak in __create_synth_event()
    
       - Skip selftests if tracing is disabled as it will cause them to
         fail.
    
      Non-functional fixes:
    
       - Fix help text in Kconfig
    
       - Remove duplicate prototype for trace_empty()
    
       - Fix stale comment about the trace_event_call flags.
    
      Self test update:
    
       - Add more information to the validation output of when a corrupt
         timestamp is found in the ring buffer, and also trigger a warning
         to make sure that tests catch it"
    
    * tag 'trace-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
      tracing: Fix comment about the trace_event_call flags
      tracing: Skip selftests if tracing is disabled
      tracing: Fix memory leak in __create_synth_event()
      ring-buffer: Add a little more information and a WARN when time stamp going backwards is detected
      ring-buffer: Force before_stamp and write_stamp to be different on discard
      tracing: Fix help text of TRACEPOINT_BENCHMARK in Kconfig
      tracing: Remove duplicate declaration from trace.h
      ftrace: Have recordmcount use w8 to read relp->r_info in arm64_is_fake_mcount
    torvalds committed Mar 5, 2021
  10. RDMA/rxe: Fix errant WARN_ONCE in rxe_completer()

    In rxe_comp.c in rxe_completer() the function free_pkt() did not clear skb
    which triggered a warning at 'done:' and could possibly at 'exit:'. The
    WARN_ONCE() calls are not actually needed.  The call to free_pkt() is
    moved to the end to clearly show that all skbs are freed.
    
    Fixes: 899aba8 ("RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()")
    Link: https://lore.kernel.org/r/20210304192048.2958-1-rpearson@hpe.com
    Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Bob Pearson authored and jgunthorpe committed Mar 5, 2021
  11. RDMA/rxe: Fix extra deref in rxe_rcv_mcast_pkt()

    rxe_rcv_mcast_pkt() dropped a reference to ib_device when no error
    occurred causing an underflow on the reference counter.  This code is
    cleaned up to be clearer and easier to read.
    
    Fixes: 899aba8 ("RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()")
    Link: https://lore.kernel.org/r/20210304192048.2958-1-rpearson@hpe.com
    Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Bob Pearson authored and jgunthorpe committed Mar 5, 2021
  12. RDMA/rxe: Fix missed IB reference counting in loopback

    When the noted patch below extending the reference taken by
    rxe_get_dev_from_net() in rxe_udp_encap_recv() until each skb is freed it
    was not matched by a reference in the loopback path resulting in
    underflows.
    
    Fixes: 899aba8 ("RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()")
    Link: https://lore.kernel.org/r/20210304192048.2958-1-rpearson@hpe.com
    Signed-off-by: Bob Pearson <rpearsonhpe@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Bob Pearson authored and jgunthorpe committed Mar 5, 2021
  13. io_uring: don't restrict issue_flags for io_openat

    45d189c ("io_uring: replace force_nonblock with flags") did
    something strange for io_openat() slicing all issue_flags but
    IO_URING_F_NONBLOCK. Not a bug for now, but better to just forward the
    flags.
    
    Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    isilence authored and axboe committed Mar 5, 2021
  14. Merge tag 'nvme-5.12-2021-03-05' of git://git.infradead.org/nvme into…

    … block-5.12
    
    Pull NVMe fixes from Christoph:
    
    "nvme fixes for 5.12:
    
     - more device quirks (Julian Einwag, Zoltán Böszörményi, Pascal Terjan)
     - fix a hwmon error return (Daniel Wagner)
     - fix the keep alive timeout initialization (Martin George)
     - ensure the model_number can't be changed on a used subsystem
       (Max Gurtovoy)"
    
    * tag 'nvme-5.12-2021-03-05' of git://git.infradead.org/nvme:
      nvmet: model_number must be immutable once set
      nvme-fabrics: fix kato initialization
      nvme-hwmon: Return error code when registration fails
      nvme-pci: add quirks for Lexar 256GB SSD
      nvme-pci: mark Kingston SKC2000 as not supporting the deepest power state
      nvme-pci: mark Seagate Nytro XM1440 as QUIRK_NO_NS_DESC_LIST.
    axboe committed Mar 5, 2021
  15. io_uring: make SQPOLL thread parking saner

    We have this weird true/false return from parking, and then some of the
    callers decide to look at that. It can lead to unbalanced parks and
    sqd locking. Have the callers check the thread status once it's parked.
    We know we have the lock at that point, so it's either valid or it's NULL.
    
    Fix race with parking on thread exit. We need to be careful here with
    ordering of the sdq->lock and the IO_SQ_THREAD_SHOULD_PARK bit.
    
    Rename sqd->completion to sqd->parked to reflect that this is the only
    thing this completion event doesn.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Mar 5, 2021
  16. io-wq: kill hashed waitqueue before manager exits

    If we race with shutting down the io-wq context and someone queueing
    a hashed entry, then we can exit the manager with it armed. If it then
    triggers after the manager has exited, we can have a use-after-free where
    io_wqe_hash_wake() attempts to wake a now gone manager process.
    
    Move the killing of the hashed write queue into the manager itself, so
    that we know we've killed it before the task exits.
    
    Fixes: e941894 ("io-wq: make buffered file write hashed work map per-ctx")
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Mar 5, 2021
  17. io_uring: clear IOCB_WAITQ for non -EIOCBQUEUED return

    The callback can only be armed, if we get -EIOCBQUEUED returned. It's
    important that we clear the WAITQ bit for other cases, otherwise we can
    queue for async retry and filemap will assume that we're armed and
    return -EAGAIN instead of just blocking for the IO.
    
    Cc: stable@vger.kernel.org # 5.9+
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Mar 5, 2021
  18. io_uring: don't keep looping for more events if we can't flush overflow

    It doesn't make sense to wait for more events to come in, if we can't
    even flush the overflow we already have to the ring. Return -EBUSY for
    that condition, just like we do for attempts to submit with overflow
    pending.
    
    Cc: stable@vger.kernel.org # 5.11
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Mar 5, 2021
  19. io_uring: move to using create_io_thread()

    This allows us to do task creation and setup without needing to use
    completions to try and synchronize with the starting thread. Get rid of
    the old io_wq_fork_thread() wrapper, and the 'wq' and 'worker' startup
    completion events - we can now do setup before the task is running.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    axboe committed Mar 5, 2021
Older