1. 02 Jul, 2021 3 commits
    • Linus Torvalds's avatar
      Merge branch 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 3dbdb38e
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
      
       - cgroup.kill is added which implements atomic killing of the whole
         subtree.
      
         Down the line, this should be able to replace the multiple userland
         implementations of "keep killing till empty".
      
       - PSI can now be turned off at boot time to avoid overhead for
         configurations which don't care about PSI.
      
      * 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: make per-cgroup pressure stall tracking configurable
        cgroup: Fix kernel-doc
        cgroup: inline cgroup_task_freeze()
        tests/cgroup: test cgroup.kill
        tests/cgroup: move cg_wait_for(), cg_prepare_for_wait()
        tests/cgroup: use cgroup.kill in cg_killall()
        docs/cgroup: add entry for cgroup.kill
        cgroup: introduce cgroup.kill
      3dbdb38e
    • Linus Torvalds's avatar
      Merge branch 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu · e267992f
      Linus Torvalds authored
      Pull percpu updates from Dennis Zhou:
      
       - percpu chunk depopulation - depopulate backing pages for chunks with
         empty pages when we exceed a global threshold without those pages.
         This lets us reclaim a portion of memory that would previously be
         lost until the full chunk would be freed (possibly never).
      
       - memcg accounting cleanup - previously separate chunks were managed
         for normal allocations and __GFP_ACCOUNT allocations. These are now
         consolidated which cleans up the code quite a bit.
      
       - a few misc clean ups for clang warnings
      
      * 'for-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu:
        percpu: optimize locking in pcpu_balance_workfn()
        percpu: initialize best_upa variable
        percpu: rework memcg accounting
        mm, memcg: introduce mem_cgroup_kmem_disabled()
        mm, memcg: mark cgroup_memory_nosocket, nokmem and noswap as __ro_after_init
        percpu: make symbol 'pcpu_free_slot' static
        percpu: implement partial chunk depopulation
        percpu: use pcpu_free_slot instead of pcpu_nr_slots - 1
        percpu: factor out pcpu_check_block_hint()
        percpu: split __pcpu_balance_workfn()
        percpu: fix a comment about the chunks ordering
      e267992f
    • Linus Torvalds's avatar
      Merge tag 'mips_5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 19b43859
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - add support for OpeneEmbed SOM9331 board
      
       - Ingenic fixes/improvments
      
       - other fixes and cleanups
      
      * tag 'mips_5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (39 commits)
        MIPS: Fix PKMAP with 32-bit MIPS huge page support
        MIPS: CI20: Add second percpu timer for SMP.
        MIPS: CI20: Reduce clocksource to 750 kHz.
        MIPS: Ingenic: Add MAC syscon nodes for Ingenic SoCs.
        dt-bindings: clock: Add documentation for MAC PHY control bindings.
        MIPS: X1830: Respect cell count of common properties.
        MIPS: set mips32r5 for virt extensions
        MIPS: loongsoon64: Reserve memory below starting pfn to prevent Oops
        MIPS: MT extensions are not available on MIPS32r1
        mips/kvm: Use BUG_ON instead of if condition followed by BUG
        MIPS: OCTEON: octeon-usb: Use devm_platform_get_and_ioremap_resource()
        MIPS: add PMD table accounting into MIPS'pmd_alloc_one
        MIPS: Loongson64: fix spelling of SPDX tag
        MIPS: ingenic: rs90: Add dedicated VRAM memory region
        MIPS: ingenic: gcw0: Set codec to cap-less mode for FM radio
        MIPS: ingenic: jz4780: Fix I2C nodes to match DT doc
        MIPS: ingenic: Select CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
        MIPS: Kconfig: ingenic: Ensure MACH_INGENIC_GENERIC selects all SoCs
        MIPS: cpu-probe: Fix FPU detection on Ingenic JZ4760(B)
        MIPS: boot: Support specifying UART port on Ingenic SoCs
        ...
      19b43859
  2. 01 Jul, 2021 8 commits
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · a32b344e
      Linus Torvalds authored
      Pull pin control updates from Linus Walleij:
       "This is the bulk of pin control changes for the v5.14 kernel. Not so
        much going on. No core changes, just drivers.
      
        The most interesting would be that MIPS Ralink is migrating to pin
        control and we have some bindings but not yet code for the Apple M1
        pin controller.
      
        New drivers:
      
         - Last merge window we created a driver for the Ralink RT2880. We are
           now moving the Ralink SoC pin control drivers out of the MIPS
           architecture code and into the pin control subsystem. This concerns
           RT288X, MT7620, RT305X, RT3883 and MT7621.
      
         - Qualcomm SM6125 SoC pin control driver.
      
         - Qualcomm spmi-gpio support for PM7325.
      
         - Qualcomm spmi-mpp also handles PMI8994 (just a compatible string)
      
         - Mediatek MT8365 SoC pin controller.
      
         - New device HID for the AMD GPIO controller.
      
        Improvements:
      
         - Pin bias config support for a slew of Renesas pin controllers.
      
         - Incremental improvements and non-urgent bug fixes to the Renesas
           SoC drivers.
      
         - Implement irq_set_wake on the AMD pin controller so we can wake up
           from external pin events.
      
        Misc:
      
         - Devicetree bindings for the Apple M1 pin controller, we will
           probably see a proper driver for this soon as well"
      
      * tag 'pinctrl-v5.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (54 commits)
        pinctrl: ralink: rt305x: add missing include
        pinctrl: stm32: check for IRQ MUX validity during alloc()
        pinctrl: zynqmp: some code cleanups
        drivers: qcom: pinctrl: Add pinctrl driver for sm6125
        dt-bindings: pinctrl: qcom: sm6125: Document SM6125 pinctrl driver
        dt-bindings: pinctrl: mcp23s08: add documentation for reset-gpios
        pinctrl: mcp23s08: Add optional reset GPIO
        pinctrl: mediatek: fix mode encoding
        pinctrl: mcp23s08: Fix missing unlock on error in mcp23s08_irq()
        pinctrl: bcm: Constify static pinmux_ops
        pinctrl: bcm: Constify static pinctrl_ops
        pinctrl: ralink: move RT288X SoC pinmux config into a new 'pinctrl-rt288x.c' file
        pinctrl: ralink: move MT7620 SoC pinmux config into a new 'pinctrl-mt7620.c' file
        pinctrl: ralink: move RT305X SoC pinmux config into a new 'pinctrl-rt305x.c' file
        pinctrl: ralink: move RT3883 SoC pinmux config into a new 'pinctrl-rt3883.c' file
        pinctrl: ralink: move MT7621 SoC pinmux config into a new 'pinctrl-mt7621.c' file
        pinctrl: ralink: move ralink architecture pinmux header into the driver
        pinctrl: single: config: enable the pin's input
        pinctrl: mtk: Fix mt8365 Kconfig dependency
        pinctrl: mcp23s08: fix race condition in irq handler
        ...
      a32b344e
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · e04360a2
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "This contains a replacement driver for Intel iWarp hardware. This new
        driver supports the old ethernet hardware and also newer chips that
        can do ROCE.
      
        Other than that, this contains the typical mix of patches:
      
         - Driver updates and cleanups for bnxt_re, cxgb4, mlx4, and mlx5
      
         - Many static checker driven code clean ups, including a wide
           refcount_t conversion
      
         - Several series for the hns driver, more HIP09 HW capabilities,
           migration to new HW register manipulators, and code cleanups
      
         - Minor fixes and improvements in srp, rts, and cm
      
         - Improvements throughout for sysfs related code to use
           DEVICE_ATTR_*, make the ib_port sysfs first-class, and overall use
           sysfs APIs properly
      
         - Intel's new irdma driver replacing i40iw
      
         - rxe general clean ups and Memory Window support"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (211 commits)
        RDMA/core: Always release restrack object
        RDMA/mlx5: Don't access NULL-cleared mpi pointer
        RDMA/irdma: Fix potential overflow expression in irdma_prm_get_pbles
        RDMA/irdma: Check contents of user-space irdma_mem_reg_req object
        RDMA/rxe: Missing unlock on error in get_srq_wqe()
        RDMA/cma: Fix rdma_resolve_route() memory leak
        RDMA/core/sa_query: Remove unused argument
        RDMA/cma: Fix incorrect Packet Lifetime calculation
        RDMA/cma: Protect RMW with qp_mutex
        RDMA/cma: Remove unnecessary INIT->INIT transition
        RDMA/hns: Add window selection field of congestion control
        RDMA/hfi1: Remove use of kmap()
        RDMA/irdma: Remove use of kmap()
        RDMA/bnxt_re: Fix uninitialized struct bit field rsvd1
        IB/isert: Align target max I/O size to initiator size
        RDMA/hns: Fix incorrect vlan enable bit in QPC
        MAINTAINERS: Update Broadcom RDMA maintainers
        RDMA/irdma: Use the queried port attributes
        RDMA/rxe: Fix redundant skb_put_zero
        RDMA/rxe: Fix extra copy in prepare_ack_packet
        ...
      e04360a2
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 514798d3
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "This round has a diffstat dominated by Qualcomm clk drivers. Honestly
        though that's just a bunch of data so the diffstat reflects that.
        Looking beyond that there's just a bunch of updates all around in
        various clk drivers. Renesas and NXP (for i.MX) are two SoC vendors
        that have a lot of patches in here.
      
        Overall the driver changes look to be mostly enabling more clks and
        non-critical fixes that we could hold until the next merge window.
      
        I'm especially excited about the series from Arnd that graduates
        clkdev to be the only implementation of clk_get() and clk_put().
        That's a good step in the right direction to migreate eveerything over
        to the common clk framework. Now we don't have to worry about clkdev
        specific details, they're just part of the clk API now.
      
        Core:
         - clkdev is now the only option, i.e. clk_get()/clk_put() is
           implemented in only one place in the kernel instead of in
           drivers/clk/clkdev.c and in architectures that want their own
           implementation
      
        New Drivers:
         - Texas Instruments' LMK04832 Ultra Low-Noise JESD204B Compliant
           Clock Jitter Cleaner With Dual Loop PLLs
         - Qualcomm MDM9607 GCC
         - Qualcomm SC8180X display clks
         - Qualcomm SM6125 GCC
         - Qualcomm SM8250 CAMCC (camera)
         - Renesas RZ/G2L SoC
         - Hisilicon hi3559A SoC
      
        Updates:
         - Stop using clock-output-names in ST clk drivers (yay!)
         - Support secure mode of STM32MP1 SoCs
         - Improve clock support for Actions S500 SoC
         - duty cycle setting support on qcom clks
         - Add TI am33xx spread spectrum clock support
         - Use determine_rate() for the Amlogic pll ops instead of
           round_rate()
         - Restrict Amlogic gp0/1 and audio plls range on g12a/sm1
         - Improve Amlogic axg-audio controller error on deferral
         - Add NNA clocks on Amlogic g12a
         - Reduce memory footprint of Rockchip PLL rate tables
         - A fix for the newly added Rockchip rk3568 clk driver
         - Exported clock for the newly added Rockchip video decoder
         - Remove audio ipg clock from i.MX8MP
         - Remove deprecated legacy clock binding for i.MX SCU clock driver
         - Use common clk-imx8qxp for both i.MX8QXP and i.MX8QM
         - Add multiple clocks to clk-imx8qxp driver (enet, hdmi, lcdif,
           audio, parallel interface)
         - Add dedicated clock ops for i.MX paralel interface
         - Different fixes for clocks controlled by ATF on i.MX SoCs
         - Add A53/A72 frequency scaling support i.MX clk-scu driver
         - Add special case for DCSS clock on suspend for i.MX clk-scu driver
         - Add parent save/restore on suspend/resume to i.MX clk-scu driver
         - Skip runtime PM enablement for CPU clocks in i.MX clk-scu driver
         - Remove the sys1_pll/sys2_pll clock gates for i.MX8MQ and their
           bindings
         - Tegra clk driver no longer deasserts resets on clk_enable as it
           gets in the way of certain power-up sequences
         - Fix compile testing for Tegra clk driver
         - One patch to fix a divider on the Allwinner v3s Audio PLL
         - Add support for CPU core clock boost modes on Renesas R-Car Gen3
         - Add ISPCS (Image Signal Processor) clocks on Renesas R-Car V3U
         - Switch SH/R-Mobile and R-Car "DIV6" clocks to .determine_rate() and
           improve support for multiple parents
         - Switch Renesas RZ/N1 divider clocks to .determine_rate()
         - Add ZA2 (Audio Clock Generator) clock on Renesas R-Car D3
         - Convert ar7 to common clk framework
         - Convert ralink to common clk framework"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (161 commits)
        clk: zynqmp: Handle divider specific read only flag
        clk: zynqmp: Use firmware specific mux clock flags
        clk: zynqmp: Use firmware specific divider clock flags
        clk: zynqmp: Use firmware specific common clock flags
        clk: lmk04832: Use of match table
        clk: lmk04832: Depend on SPI
        clk: stm32mp1: new compatible for secure RCC support
        dt-bindings: clock: stm32mp1 new compatible for secure rcc
        dt-bindings: reset: add MCU HOLD BOOT ID for SCMI reset domains on stm32mp15
        dt-bindings: reset: add IDs for SCMI reset domains on stm32mp15
        dt-bindings: clock: add IDs for SCMI clocks on stm32mp15
        reset: stm32mp1: remove stm32mp1 reset
        clk: hisilicon: Add clock driver for hi3559A SoC
        dt-bindings: Document the hi3559a clock bindings
        clk: si5341: Add sysfs properties to allow checking/resetting device faults
        clk: si5341: Add silabs,iovdd-33 property
        clk: si5341: Add silabs,xaxb-ext-clk property
        clk: si5341: Allow different output VDD_SEL values
        clk: si5341: Update initialization magic
        clk: si5341: Check for input clock presence and PLL lock on startup
        ...
      514798d3
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2021-07-01' of git://anongit.freedesktop.org/drm/drm · e058a84b
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "Highlights:
      
         - AMD enables two more GPUs, with resulting header files
      
         - i915 has started to move to TTM for discrete GPU and enable DG1
           discrete GPU support (not by default yet)
      
         - new HyperV drm driver
      
         - vmwgfx adds arm64 support
      
         - TTM refactoring ongoing
      
         - 16bpc display support for AMD hw
      
        Otherwise it's just the usual insane amounts of work all over the
        place in lots of drivers and the core, as mostly summarised below:
      
        Core:
         - mark AGP ioctls as legacy
         - disable force probing for non-master clients
         - HDR metadata property helpers
         - HDMI infoframe signal colorimetry support
         - remove drm_device.pdev pointer
         - remove DRM_KMS_FB_HELPER config option
         - remove drm_pci_alloc/free
         - drm_err_*/drm_dbg_* helpers
         - use drm driver names for fbdev
         - leaked DMA handle fix
         - 16bpc fixed point format fourcc
         - add prefetching memcpy for WC
         - Documentation fixes
      
        aperture:
         - add aperture ownership helpers
      
        dp:
         - aux fixes
         - downstream 0 port handling
         - use extended base receiver capability DPCD
         - Rename DP_PSR_SELECTIVE_UPDATE to better mach eDP spec
         - mst: use khz as link rate during init
         - VCPI fixes for StarTech hub
      
        ttm:
         - provide tt_shrink file via debugfs
         - warn about freeing pinned BOs
         - fix swapping error handling
         - move page alignment into BO
         - cleanup ttm_agp_backend
         - add ttm_sys_manager
         - don't override vm_ops
         - ttm_bo_mmap removed
         - make ttm_resource base of all managers
         - remove VM_MIXEDMAP usage
      
        panel:
         - sysfs_emit support
         - simple: runtime PM support
         - simple: power up panel when reading EDID + caching
      
        bridge:
         - MHDP8546: HDCP support + DT bindings
         - MHDP8546: Register DP AUX channel with userspace
         - TI SN65DSI83 + SN65DSI84: add driver
         - Sil8620: Fix module dependencies
         - dw-hdmi: make CEC driver loading optional
         - Ti-sn65dsi86: refclk fixes, subdrivers, runtime pm
         - It66121: Add driver + DT bindings
         - Adv7511: Support I2S IEC958 encoding
         - Anx7625: fix power-on delay
         - Nwi-dsi: Modesetting fixes; Cleanups
         - lt6911: add missing MODULE_DEVICE_TABLE
         - cdns: fix PM reference leak
      
        hyperv:
         - add new DRM driver for HyperV graphics
      
        efifb:
         - non-PCI device handling fixes
      
        i915:
         - refactor IP/device versioning
         - XeLPD Display IP preperation work
         - ADL-P enablement patches
         - DG1 uAPI behind BROKEN
         - disable mmap ioctl for discerte GPUs
         - start enabling HuC loading for Gen12+
         - major GuC backend rework for new platforms
         - initial TTM support for Discrete GPUs
         - locking rework for TTM prep
         - use correct max source link rate for eDP
         - %p4cc format printing
         - GLK display fixes
         - VLV DSI panel power fixes
         - PSR2 disabled for RKL and ADL-S
         - ACPI _DSM invalid access fixed
         - DMC FW path abstraction
         - ADL-S PCI ID update
         - uAPI headers converted to kerneldoc
         - initial LMEM support for DG1
         - x86/gpu: add Jasperlake to gen11 early quirks
      
        amdgpu:
         - Aldebaran updates + initial SR-IOV
         - new GPU: Beige Goby and Yellow Carp support
         - more LTTPR display work
         - Vangogh updates
         - SDMA 5.x GCR fixes
         - PCIe ASPM support
         - Renoir TMZ enablement
         - initial multiple eDP panel support
         - use fdinfo to track devices/process info
         - pin/unpin TTM fixes
         - free resource on fence usage query
         - fix fence calculation
         - fix hotunplug/suspend issues
         - GC/MM register access macro cleanup for SR-IOV
         - W=1 fixes
         - ACPI ATCS/ATIF handling rework
         - 16bpc fixed point format support
         - Initial smartshift support
         - RV/PCO power tuning fixes
         - new INFO query for additional vbios info
      
        amdkfd:
         - SR-IOV aldebaran support
         - HMM SVM support
      
        radeon:
         - SMU regression fixes
         - Oland flickering fix
      
        vmwgfx:
         - enable console with fbdev emulation
         - fix cpu updates of coherent multisample surfaces
         - remove reservation semaphore
         - add initial SVGA3 support
         - support arm64
      
        msm:
         - devcoredump support for display errors
         - dpu/dsi: yaml bindings conversion
         - mdp5: alpha/blend_mode/zpos support
         - a6xx: cached coherent buffer support
         - gpu iova fault improvement
         - a660 support
      
        rockchip:
         - RK3036 win1 scaling support
         - RK3066/3188 missing register support
         - RK3036/3066/3126/3188 alpha support
      
        mediatek:
         - MT8167 HDMI support
         - MT8183 DPI dual edge support
      
        tegra:
         - fixed YUV support/scaling on Tegra186+
      
        ast:
         - use pcim_iomap
         - fix DP501 EDID
      
        bochs:
         - screen blanking support
      
        etnaviv:
         - export more GPU ID values to userspace
         - add HWDB entry for GPU on i.MX8MP
         - rework linear window calcs
      
        exynos:
         - pm runtime changes
      
        imx:
         - Annotate dma_fence critical section
         - fix PRG modifiers after drmm conversion
         - Add 8 pixel alignment fix for 1366x768
         - fix YUV advertising
         - add color properties
      
        ingenic:
         - IPU planes fix
      
        panfrost:
         - Mediatek MT8183 support + DT bindings
         - export AFBC_FEATURES register to userspace
      
        simpledrm:
         - %pr for printing resources
      
        nouveau:
         - pin/unpin TTM fixes
      
        qxl:
         - unpin shadow BO
      
        virtio:
         - create dumb BOs as guest blob
      
        vkms:
         - drmm_universal_plane_alloc
         - add XRGB plane composition
         - overlay support"
      
      * tag 'drm-next-2021-07-01' of git://anongit.freedesktop.org/drm/drm: (1570 commits)
        drm/i915: Reinstate the mmap ioctl for some platforms
        drm/i915/dsc: abstract helpers to get bigjoiner primary/secondary crtc
        Revert "drm/msm/mdp5: provide dynamic bandwidth management"
        drm/msm/mdp5: provide dynamic bandwidth management
        drm/msm/mdp5: add perf blocks for holding fudge factors
        drm/msm/mdp5: switch to standard zpos property
        drm/msm/mdp5: add support for alpha/blend_mode properties
        drm/msm/mdp5: use drm_plane_state for pixel blend mode
        drm/msm/mdp5: use drm_plane_state for storing alpha value
        drm/msm/mdp5: use drm atomic helpers to handle base drm plane state
        drm/msm/dsi: do not enable PHYs when called for the slave DSI interface
        drm/msm: Add debugfs to trigger shrinker
        drm/msm/dpu: Avoid ABBA deadlock between IRQ modules
        drm/msm: devcoredump iommu fault support
        iommu/arm-smmu-qcom: Add stall support
        drm/msm: Improve the a6xx page fault handler
        iommu/arm-smmu-qcom: Add an adreno-smmu-priv callback to get pagefault info
        iommu/arm-smmu: Add support for driver IOMMU fault handlers
        drm/msm: export hangcheck_period in debugfs
        drm/msm/a6xx: add support for Adreno 660 GPU
        ...
      e058a84b
    • Linus Torvalds's avatar
      Merge tag 'for-5.14/io_uring-2021-06-30' of git://git.kernel.dk/linux-block · c288d9cd
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
      
       - Multi-queue iopoll improvement (Fam)
      
       - Allow configurable io-wq CPU masks (me)
      
       - renameat/linkat tightening (me)
      
       - poll re-arm improvement (Olivier)
      
       - SQPOLL race fix (Olivier)
      
       - Cancelation unification (Pavel)
      
       - SQPOLL cleanups (Pavel)
      
       - Enable file backed buffers for shmem/memfd (Pavel)
      
       - A ton of cleanups and performance improvements (Pavel)
      
       - Followup and misc fixes (Colin, Fam, Hao, Olivier)
      
      * tag 'for-5.14/io_uring-2021-06-30' of git://git.kernel.dk/linux-block: (83 commits)
        io_uring: code clean for kiocb_done()
        io_uring: spin in iopoll() only when reqs are in a single queue
        io_uring: pre-initialise some of req fields
        io_uring: refactor io_submit_flush_completions
        io_uring: optimise hot path restricted checks
        io_uring: remove not needed PF_EXITING check
        io_uring: mainstream sqpoll task_work running
        io_uring: refactor io_arm_poll_handler()
        io_uring: reduce latency by reissueing the operation
        io_uring: add IOPOLL and reserved field checks to IORING_OP_UNLINKAT
        io_uring: add IOPOLL and reserved field checks to IORING_OP_RENAMEAT
        io_uring: refactor io_openat2()
        io_uring: simplify struct io_uring_sqe layout
        io_uring: update sqe layout build checks
        io_uring: fix code style problems
        io_uring: refactor io_sq_thread()
        io_uring: don't change sqpoll creds if not needed
        io_uring: Create define to modify a SQPOLL parameter
        io_uring: Fix race condition when sqp thread goes to sleep
        io_uring: improve in tctx_task_work() resubmission
        ...
      c288d9cd
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 911a2997
      Linus Torvalds authored
      Pull misc fs updates from Jan Kara:
       "The new quotactl_fd() syscall (remake of quotactl_path() syscall that
        got introduced & disabled in 5.13 cycle), and couple of udf, reiserfs,
        isofs, and writeback fixes and cleanups"
      
      * tag 'fs_for_v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        writeback: fix obtain a reference to a freeing memcg css
        quota: remove unnecessary oom message
        isofs: remove redundant continue statement
        quota: Wire up quotactl_fd syscall
        quota: Change quotactl_path() systcall to an fd-based one
        reiserfs: Remove unneed check in reiserfs_write_full_page()
        udf: Fix NULL pointer dereference in udf_symlink function
        reiserfs: add check for invalid 1st journal block
      911a2997
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · a6ecc2a4
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "In addition to bug fixes and cleanups, there are two new features for
        ext4 in 5.14:
      
         - Allow applications to poll on changes to
           /sys/fs/ext4/*/errors_count
      
         - Add the ioctl EXT4_IOC_CHECKPOINT which allows the journal to be
           checkpointed, truncated and discarded or zero'ed"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (32 commits)
        jbd2: export jbd2_journal_[un]register_shrinker()
        ext4: notify sysfs on errors_count value change
        fs: remove bdev_try_to_free_page callback
        ext4: remove bdev_try_to_free_page() callback
        jbd2: simplify journal_clean_one_cp_list()
        jbd2,ext4: add a shrinker to release checkpointed buffers
        jbd2: remove redundant buffer io error checks
        jbd2: don't abort the journal when freeing buffers
        jbd2: ensure abort the journal if detect IO error when writing original buffer back
        jbd2: remove the out label in __jbd2_journal_remove_checkpoint()
        ext4: no need to verify new add extent block
        jbd2: clean up misleading comments for jbd2_fc_release_bufs
        ext4: add check to prevent attempting to resize an fs with sparse_super2
        ext4: consolidate checks for resize of bigalloc into ext4_resize_begin
        ext4: remove duplicate definition of ext4_xattr_ibody_inline_set()
        ext4: fsmap: fix the block/inode bitmap comment
        ext4: fix comment for s_hash_unsigned
        ext4: use local variable ei instead of EXT4_I() macro
        ext4: fix avefreec in find_group_orlov
        ext4: correct the cache_nr in tracepoint ext4_es_shrink_exit
        ...
      a6ecc2a4
    • Linus Torvalds's avatar
      Merge tag 'for-5.14/dm-changes' of... · 2cfa582b
      Linus Torvalds authored
      Merge tag 'for-5.14/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Various DM persistent-data library improvements and fixes that
         benefit both the DM thinp and cache targets.
      
       - A few small DM kcopyd efficiency improvements.
      
       - Significant zoned related block core, DM core and DM zoned target
         changes that culminate with adding zoned append emulation (which is
         required to properly fix DM crypt's zoned support).
      
       - Various DM writecache target changes that improve efficiency. Adds an
         optional "metadata_only" feature that only promotes bios flagged with
         REQ_META. But the most significant improvement is writecache's
         ability to pause writeback, for a confiurable time, if/when the
         working set is larger than the cache (and the cache is full) -- this
         ensures performance is no worse than the slower origin device.
      
      * tag 'for-5.14/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (35 commits)
        dm writecache: make writeback pause configurable
        dm writecache: pause writeback if cache full and origin being written directly
        dm io tracker: factor out IO tracker
        dm btree remove: assign new_root only when removal succeeds
        dm zone: fix dm_revalidate_zones() memory allocation
        dm ps io affinity: remove redundant continue statement
        dm writecache: add optional "metadata_only" parameter
        dm writecache: add "cleaner" and "max_age" to Documentation
        dm writecache: write at least 4k when committing
        dm writecache: flush origin device when writing and cache is full
        dm writecache: have ssd writeback wait if the kcopyd workqueue is busy
        dm writecache: use list_move instead of list_del/list_add in writecache_writeback()
        dm writecache: commit just one block, not a full page
        dm writecache: remove unused gfp_t argument from wc_add_block()
        dm crypt: Fix zoned block device support
        dm: introduce zone append emulation
        dm: rearrange core declarations for extended use from dm-zone.c
        block: introduce BIO_ZONE_WRITE_LOCKED bio flag
        block: introduce bio zone helpers
        block: improve handling of all zones reset operation
        ...
      2cfa582b
  3. 30 Jun, 2021 29 commits
    • Linus Torvalds's avatar
      Merge tag 'net-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · dbe69e43
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "Core:
      
         - BPF:
            - add syscall program type and libbpf support for generating
              instructions and bindings for in-kernel BPF loaders (BPF loaders
              for BPF), this is a stepping stone for signed BPF programs
            - infrastructure to migrate TCP child sockets from one listener to
              another in the same reuseport group/map to improve flexibility
              of service hand-off/restart
            - add broadcast support to XDP redirect
      
         - allow bypass of the lockless qdisc to improving performance (for
           pktgen: +23% with one thread, +44% with 2 threads)
      
         - add a simpler version of "DO_ONCE()" which does not require jump
           labels, intended for slow-path usage
      
         - virtio/vsock: introduce SOCK_SEQPACKET support
      
         - add getsocketopt to retrieve netns cookie
      
         - ip: treat lowest address of a IPv4 subnet as ordinary unicast
           address allowing reclaiming of precious IPv4 addresses
      
         - ipv6: use prandom_u32() for ID generation
      
         - ip: add support for more flexible field selection for hashing
           across multi-path routes (w/ offload to mlxsw)
      
         - icmp: add support for extended RFC 8335 PROBE (ping)
      
         - seg6: add support for SRv6 End.DT46 behavior
      
         - mptcp:
            - DSS checksum support (RFC 8684) to detect middlebox meddling
            - support Connection-time 'C' flag
            - time stamping support
      
         - sctp: packetization Layer Path MTU Discovery (RFC 8899)
      
         - xfrm: speed up state addition with seq set
      
         - WiFi:
            - hidden AP discovery on 6 GHz and other HE 6 GHz improvements
            - aggregation handling improvements for some drivers
            - minstrel improvements for no-ack frames
            - deferred rate control for TXQs to improve reaction times
            - switch from round robin to virtual time-based airtime scheduler
      
         - add trace points:
            - tcp checksum errors
            - openvswitch - action execution, upcalls
            - socket errors via sk_error_report
      
        Device APIs:
      
         - devlink: add rate API for hierarchical control of max egress rate
           of virtual devices (VFs, SFs etc.)
      
         - don't require RCU read lock to be held around BPF hooks in NAPI
           context
      
         - page_pool: generic buffer recycling
      
        New hardware/drivers:
      
         - mobile:
            - iosm: PCIe Driver for Intel M.2 Modem
            - support for Qualcomm MSM8998 (ipa)
      
         - WiFi: Qualcomm QCN9074 and WCN6855 PCI devices
      
         - sparx5: Microchip SparX-5 family of Enterprise Ethernet switches
      
         - Mellanox BlueField Gigabit Ethernet (control NIC of the DPU)
      
         - NXP SJA1110 Automotive Ethernet 10-port switch
      
         - Qualcomm QCA8327 switch support (qca8k)
      
         - Mikrotik 10/25G NIC (atl1c)
      
        Driver changes:
      
         - ACPI support for some MDIO, MAC and PHY devices from Marvell and
           NXP (our first foray into MAC/PHY description via ACPI)
      
         - HW timestamping (PTP) support: bnxt_en, ice, sja1105, hns3, tja11xx
      
         - Mellanox/Nvidia NIC (mlx5)
            - NIC VF offload of L2 bridging
            - support IRQ distribution to Sub-functions
      
         - Marvell (prestera):
            - add flower and match all
            - devlink trap
            - link aggregation
      
         - Netronome (nfp): connection tracking offload
      
         - Intel 1GE (igc): add AF_XDP support
      
         - Marvell DPU (octeontx2): ingress ratelimit offload
      
         - Google vNIC (gve): new ring/descriptor format support
      
         - Qualcomm mobile (rmnet & ipa): inline checksum offload support
      
         - MediaTek WiFi (mt76)
            - mt7915 MSI support
            - mt7915 Tx status reporting
            - mt7915 thermal sensors support
            - mt7921 decapsulation offload
            - mt7921 enable runtime pm and deep sleep
      
         - Realtek WiFi (rtw88)
            - beacon filter support
            - Tx antenna path diversity support
            - firmware crash information via devcoredump
      
         - Qualcomm WiFi (wcn36xx)
            - Wake-on-WLAN support with magic packets and GTK rekeying
      
         - Micrel PHY (ksz886x/ksz8081): add cable test support"
      
      * tag 'net-next-5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2168 commits)
        tcp: change ICSK_CA_PRIV_SIZE definition
        tcp_yeah: check struct yeah size at compile time
        gve: DQO: Fix off by one in gve_rx_dqo()
        stmmac: intel: set PCI_D3hot in suspend
        stmmac: intel: Enable PHY WOL option in EHL
        net: stmmac: option to enable PHY WOL with PMT enabled
        net: say "local" instead of "static" addresses in ndo_dflt_fdb_{add,del}
        net: use netdev_info in ndo_dflt_fdb_{add,del}
        ptp: Set lookup cookie when creating a PTP PPS source.
        net: sock: add trace for socket errors
        net: sock: introduce sk_error_report
        net: dsa: replay the local bridge FDB entries pointing to the bridge dev too
        net: dsa: ensure during dsa_fdb_offload_notify that dev_hold and dev_put are on the same dev
        net: dsa: include fdb entries pointing to bridge in the host fdb list
        net: dsa: include bridge addresses which are local in the host fdb list
        net: dsa: sync static FDB entries on foreign interfaces to hardware
        net: dsa: install the host MDB and FDB entries in the master's RX filter
        net: dsa: reference count the FDB addresses at the cross-chip notifier level
        net: dsa: introduce a separate cross-chip notifier type for host FDBs
        net: dsa: reference count the MDB entries at the cross-chip notifier level
        ...
      dbe69e43
    • Linus Torvalds's avatar
      Merge tag 'sched-urgent-2021-06-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a6eaf385
      Linus Torvalds authored
      Pull scheduler fixes from Ingo Molnar:
      
       - Fix a small inconsistency (bug) in load tracking, caught by a new
         warning that several people reported.
      
       - Flip CONFIG_SCHED_CORE to default-disabled, and update the Kconfig
         help text.
      
      * tag 'sched-urgent-2021-06-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/core: Disable CONFIG_SCHED_CORE by default
        sched/fair: Ensure _sum and _avg values stay consistent
      a6eaf385
    • Linus Torvalds's avatar
      Merge tag 'microblaze-v5.14' of git://git.monstr.eu/linux-2.6-microblaze · f4cc74c9
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek:
      
       - Remove unused PAGE_UP/DOWN macros
      
       - Fix trivial spelling mistake
      
      * tag 'microblaze-v5.14' of git://git.monstr.eu/linux-2.6-microblaze:
        arch: microblaze: Fix spelling mistake "vesion" -> "version"
        microblaze: Cleanup unused functions
      f4cc74c9
    • Linus Torvalds's avatar
      Merge tag 'safesetid-5.14' of git://github.com/micah-morton/linux · 92183137
      Linus Torvalds authored
      Pull SafeSetID update from Micah Morton:
       "One very minor code cleanup change that marks a variable as
        __initdata"
      
      * tag 'safesetid-5.14' of git://github.com/micah-morton/linux:
        LSM: SafeSetID: Mark safesetid_initialized as __initdata
      92183137
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-5.14' of git://github.com/cschaufler/smack-next · 5c874a5b
      Linus Torvalds authored
      Pull smack updates from Casey Schaufler:
       "There is nothing more significant than an improvement to a byte count
        check in smackfs.
      
        All changes have been in next for weeks"
      
      * tag 'Smack-for-5.14' of git://github.com/cschaufler/smack-next:
        Smack: fix doc warning
        Revert "Smack: Handle io_uring kernel thread privileges"
        smackfs: restrict bytes count in smk_set_cipso()
        security/smack/: fix misspellings using codespell tool
      5c874a5b
    • Linus Torvalds's avatar
      Merge tag 'audit-pr-20210629' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit · 290fe0fa
      Linus Torvalds authored
      Pull audit updates from Paul Moore:
       "Another merge window, another small audit pull request.
      
        Four patches in total: one is cosmetic, one removes an unnecessary
        initialization, one renames some enum values to prevent name
        collisions, and one converts list_del()/list_add() to list_move().
      
        None of these are earth shattering and all pass the audit-testsuite
        tests while merging cleanly on top of your tree from earlier today"
      
      * tag 'audit-pr-20210629' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit:
        audit: remove unnecessary 'ret' initialization
        audit: remove trailing spaces and tabs
        audit: Use list_move instead of list_del/list_add
        audit: Rename enum audit_state constants to avoid AUDIT_DISABLED redefinition
        audit: add blank line after variable declarations
      290fe0fa
    • Linus Torvalds's avatar
      Merge tag 'selinux-pr-20210629' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux · 6bd344e5
      Linus Torvalds authored
      Pull SELinux updates from Paul Moore:
      
       - The slow_avc_audit() function is now non-blocking so we can remove
         the AVC_NONBLOCKING tricks; this also includes the 'flags' variant of
         avc_has_perm().
      
       - Use kmemdup() instead of kcalloc()+copy when copying parts of the
         SELinux policydb.
      
       - The InfiniBand device name is now passed by reference when possible
         in the SELinux code, removing a strncpy().
      
       - Minor cleanups including: constification of avtab function args,
         removal of useless LSM/XFRM function args, SELinux kdoc fixes, and
         removal of redundant assignments.
      
      * tag 'selinux-pr-20210629' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
        selinux: kill 'flags' argument in avc_has_perm_flags() and avc_audit()
        selinux: slow_avc_audit has become non-blocking
        selinux: Fix kernel-doc
        selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC
        lsm_audit,selinux: pass IB device name by reference
        selinux: Remove redundant assignment to rc
        selinux: Corrected comment to match kernel-doc comment
        selinux: delete selinux_xfrm_policy_lookup() useless argument
        selinux: constify some avtab function arguments
        selinux: simplify duplicate_policydb_cond_list() by using kmemdup()
      6bd344e5
    • Linus Torvalds's avatar
      Merge tag 'clang-features-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 44b6ed4c
      Linus Torvalds authored
      Pull clang feature updates from Kees Cook:
      
       - Add CC_HAS_NO_PROFILE_FN_ATTR in preparation for PGO support in the
         face of the noinstr attribute, paving the way for PGO and fixing
         GCOV. (Nick Desaulniers)
      
       - x86_64 LTO coverage is expanded to 32-bit x86. (Nathan Chancellor)
      
       - Small fixes to CFI. (Mark Rutland, Nathan Chancellor)
      
      * tag 'clang-features-v5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        qemu_fw_cfg: Make fw_cfg_rev_attr a proper kobj_attribute
        Kconfig: Introduce ARCH_WANTS_NO_INSTR and CC_HAS_NO_PROFILE_FN_ATTR
        compiler_attributes.h: cleanups for GCC 4.9+
        compiler_attributes.h: define __no_profile, add to noinstr
        x86, lto: Enable Clang LTO for 32-bit as well
        CFI: Move function_nocfi() into compiler.h
        MAINTAINERS: Add Clang CFI section
      44b6ed4c
    • Hao Xu's avatar
      io_uring: code clean for kiocb_done() · e149bd74
      Hao Xu authored
      A simple code clean for kiocb_done()
      Signed-off-by: default avatarHao Xu <haoxu@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      e149bd74
    • Hao Xu's avatar
      io_uring: spin in iopoll() only when reqs are in a single queue · 915b3dde
      Hao Xu authored
      We currently spin in iopoll() when requests to be iopolled are for
      same file(device), while one device may have multiple hardware queues.
      given an example:
      
      hw_queue_0     |    hw_queue_1
      req(30us)           req(10us)
      
      If we first spin on iopolling for the hw_queue_0. the avg latency would
      be (30us + 30us) / 2 = 30us. While if we do round robin, the avg
      latency would be (30us + 10us) / 2 = 20us since we reap the request in
      hw_queue_1 in time. So it's better to do spinning only when requests
      are in same hardware queue.
      Signed-off-by: default avatarHao Xu <haoxu@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      915b3dde
    • Pavel Begunkov's avatar
      io_uring: pre-initialise some of req fields · 99ebe4ef
      Pavel Begunkov authored
      Most of requests are allocated from an internal cache, so it's waste of
      time fully initialising them every time. Instead, let's pre-init some of
      the fields we can during initial allocation (e.g. kmalloc(), see
      io_alloc_req()) and keep them valid on request recycling. There are four
      of them in this patch:
      
      ->ctx is always stays the same
      ->link is NULL on free, it's an invariant
      ->result is not even needed to init, just a precaution
      ->async_data we now clean in io_dismantle_req() as it's likely to
         never be allocated.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/892ba0e71309bba9fe9e0142472330bbf9d8f05d.1624739600.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      99ebe4ef
    • Pavel Begunkov's avatar
      io_uring: refactor io_submit_flush_completions · 5182ed2e
      Pavel Begunkov authored
      Don't init req_batch before we actually need it. Also, add a small clean
      up for req declaration.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/ad85512e12bd3a20d521e9782750300970e5afc8.1624739600.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      5182ed2e
    • Pavel Begunkov's avatar
      io_uring: optimise hot path restricted checks · 4cfb25bf
      Pavel Begunkov authored
      Move likely/unlikely from io_check_restriction() to specifically
      ctx->restricted check, because doesn't do what it supposed to and make
      the common path take an extra jump.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/22bf70d0a543dfc935d7276bdc73081784e30698.1624739600.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      4cfb25bf
    • Pavel Begunkov's avatar
      io_uring: remove not needed PF_EXITING check · e5dc480d
      Pavel Begunkov authored
      Since cancellation got moved before exit_signals(), there is no one left
      who can call io_run_task_work() with PF_EXIING set, so remove the check.
      Note that __io_req_task_submit() still needs a similar check.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/f7f305ececb1e6044ea649fb983ca754805bb884.1624739600.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      e5dc480d
    • Pavel Begunkov's avatar
      io_uring: mainstream sqpoll task_work running · dd432ea5
      Pavel Begunkov authored
      task_works are widely used, so place io_run_task_work() directly into
      the main path of io_sq_thread(), and remove it from other places where
      it's not needed anymore.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/24eb5e35d519c590d3dffbd694b4c61a5fe49029.1624739600.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      dd432ea5
    • Pavel Begunkov's avatar
      io_uring: refactor io_arm_poll_handler() · b2d9c3da
      Pavel Begunkov authored
      gcc 11 goes a weird path and duplicates most of io_arm_poll_handler()
      for READ and WRITE cases. Help it and move all pollin vs pollout
      specific bits under a single if-else, so there is no temptation for this
      kind of unfolding.
      
      before vs after:
         text    data     bss     dec     hex filename
        85362   12650       8   98020   17ee4 ./fs/io_uring.o
        85186   12650       8   97844   17e34 ./fs/io_uring.o
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/1deea0037293a922a0358e2958384b2e42437885.1624739600.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b2d9c3da
    • Olivier Langlois's avatar
      io_uring: reduce latency by reissueing the operation · 59b735ae
      Olivier Langlois authored
      It is quite frequent that when an operation fails and returns EAGAIN,
      the data becomes available between that failure and the call to
      vfs_poll() done by io_arm_poll_handler().
      
      Detecting the situation and reissuing the operation is much faster
      than going ahead and push the operation to the io-wq.
      
      Performance improvement testing has been performed with:
      Single thread, 1 TCP connection receiving a 5 Mbps stream, no sqpoll.
      
      4 measurements have been taken:
      1. The time it takes to process a read request when data is already available
      2. The time it takes to process by calling twice io_issue_sqe() after vfs_poll() indicated that data was available
      3. The time it takes to execute io_queue_async_work()
      4. The time it takes to complete a read request asynchronously
      
      2.25% of all the read operations did use the new path.
      
      ready data (baseline)
      avg	3657.94182918628
      min	580
      max	20098
      stddev	1213.15975908162
      
      reissue	completion
      average	7882.67567567568
      min	2316
      max	28811
      stddev	1982.79172973284
      
      insert io-wq time
      average	8983.82276995305
      min	3324
      max	87816
      stddev	2551.60056552038
      
      async time completion
      average	24670.4758861127
      min	10758
      max	102612
      stddev	3483.92416873804
      
      Conclusion:
      On average reissuing the sqe with the patch code is 1.1uSec faster and
      in the worse case scenario 59uSec faster than placing the request on
      io-wq
      
      On average completion time by reissuing the sqe with the patch code is
      16.79uSec faster and in the worse case scenario 73.8uSec faster than
      async completion.
      Signed-off-by: default avatarOlivier Langlois <olivier@trillion01.com>
      Reviewed-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/9e8441419bb1b8f3c3fcc607b2713efecdef2136.1624364038.git.olivier@trillion01.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      59b735ae
    • Jens Axboe's avatar
      io_uring: add IOPOLL and reserved field checks to IORING_OP_UNLINKAT · 22634bc5
      Jens Axboe authored
      We can't support IOPOLL with non-pollable request types, and we should
      check for unused/reserved fields like we do for other request types.
      
      Fixes: 14a1143b ("io_uring: add support for IORING_OP_UNLINKAT")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarDmitry Kadashev <dkadashev@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      22634bc5
    • Jens Axboe's avatar
      io_uring: add IOPOLL and reserved field checks to IORING_OP_RENAMEAT · ed7eb259
      Jens Axboe authored
      We can't support IOPOLL with non-pollable request types, and we should
      check for unused/reserved fields like we do for other request types.
      
      Fixes: 80a261fd ("io_uring: add support for IORING_OP_RENAMEAT")
      Cc: stable@vger.kernel.org
      Reported-by: default avatarDmitry Kadashev <dkadashev@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      ed7eb259
    • Pavel Begunkov's avatar
      io_uring: refactor io_openat2() · 12dcb58a
      Pavel Begunkov authored
      Put do_filp_open() fail path of io_openat2() under a single if,
      deduplicating put_unused_fd(), making it look better and helping
      the hot path.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/f4c84d25c049d0af2adc19c703bbfef607200209.1624543113.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      12dcb58a
    • Pavel Begunkov's avatar
      io_uring: simplify struct io_uring_sqe layout · 9ba6a1c0
      Pavel Begunkov authored
      Flatten struct io_uring_sqe, the last union is exactly 64B, so move them
      out of union { struct { ... }}, and decrease __pad2 size.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/2e21ef7aed136293d654450bc3088973a8adc730.1624543113.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9ba6a1c0
    • Pavel Begunkov's avatar
      io_uring: update sqe layout build checks · 16340eab
      Pavel Begunkov authored
      Add missing BUILD_BUG_SQE_ELEM() for ->buf_group verifying that SQE
      layout doesn't change.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/1f9d21bd74599b856b3a632be4c23ffa184a3ef0.1624543113.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      16340eab
    • Pavel Begunkov's avatar
      fe7e3257
    • Pavel Begunkov's avatar
      io_uring: refactor io_sq_thread() · 1a924a80
      Pavel Begunkov authored
      Move needs_sched declaration into the block where it's used, so it's
      harder to misuse/wrongfully reuse.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/e4a07db1353ee38b924dd1b45394cf8e746130b4.1624543113.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      1a924a80
    • Pavel Begunkov's avatar
      io_uring: don't change sqpoll creds if not needed · 948e1947
      Pavel Begunkov authored
      SQPOLL doesn't need to change creds if it's not submitting requests.
      Move creds overriding into __io_sq_thread() after checking if there are
      SQEs pending.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Link: https://lore.kernel.org/r/c54368da2357ac539e0a333f7cfff70d5fb045b2.1624543113.git.asml.silence@gmail.comSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      948e1947
    • Linus Torvalds's avatar
      Merge tag 'for-5.14/drivers-2021-06-29' of git://git.kernel.dk/linux-block · 44046219
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
       "Pretty calm round, mostly just NVMe and a bit of MD:
      
         - NVMe updates (via Christoph)
              - improve the APST configuration algorithm (Alexey Bogoslavsky)
              - look for StorageD3Enable on companion ACPI device
                (Mario Limonciello)
              - allow selecting the network interface for TCP connections
                (Martin Belanger)
              - misc cleanups (Amit Engel, Chaitanya Kulkarni, Colin Ian King,
                Christoph)
              - move the ACPI StorageD3 code to drivers/acpi/ and add quirks
                for certain AMD CPUs (Mario Limonciello)
              - zoned device support for nvmet (Chaitanya Kulkarni)
              - fix the rules for changing the serial number in nvmet
                (Noam Gottlieb)
              - various small fixes and cleanups (Dan Carpenter, JK Kim,
                Chaitanya Kulkarni, Hannes Reinecke, Wesley Sheng, Geert
                Uytterhoeven, Daniel Wagner)
      
         - MD updates (Via Song)
              - iostats rewrite (Guoqing Jiang)
              - raid5 lock contention optimization (Gal Ofri)
      
         - Fall through warning fix (Gustavo)
      
         - Misc fixes (Gustavo, Jiapeng)"
      
      * tag 'for-5.14/drivers-2021-06-29' of git://git.kernel.dk/linux-block: (78 commits)
        nvmet: use NVMET_MAX_NAMESPACES to set nn value
        loop: Fix missing discard support when using LOOP_CONFIGURE
        nvme.h: add missing nvme_lba_range_type endianness annotations
        nvme: remove zeroout memset call for struct
        nvme-pci: remove zeroout memset call for struct
        nvmet: remove zeroout memset call for struct
        nvmet: add ZBD over ZNS backend support
        nvmet: add Command Set Identifier support
        nvmet: add nvmet_req_bio put helper for backends
        nvmet: add req cns error complete helper
        block: export blk_next_bio()
        nvmet: remove local variable
        nvmet: use nvme status value directly
        nvmet: use u32 type for the local variable nsid
        nvmet: use u32 for nvmet_subsys max_nsid
        nvmet: use req->cmd directly in file-ns fast path
        nvmet: use req->cmd directly in bdev-ns fast path
        nvmet: make ver stable once connection established
        nvmet: allow mn change if subsys not discovered
        nvmet: make sn stable once connection was established
        ...
      44046219
    • Linus Torvalds's avatar
      Merge tag 'for-5.14/block-2021-06-29' of git://git.kernel.dk/linux-block · df668a5f
      Linus Torvalds authored
      Pull core block updates from Jens Axboe:
      
       - disk events cleanup (Christoph)
      
       - gendisk and request queue allocation simplifications (Christoph)
      
       - bdev_disk_changed cleanups (Christoph)
      
       - IO priority improvements (Bart)
      
       - Chained bio completion trace fix (Edward)
      
       - blk-wbt fixes (Jan)
      
       - blk-wbt enable/disable fix (Zhang)
      
       - Scheduler dispatch improvements (Jan, Ming)
      
       - Shared tagset scheduler improvements (John)
      
       - BFQ updates (Paolo, Luca, Pietro)
      
       - BFQ lock inversion fix (Jan)
      
       - Documentation improvements (Kir)
      
       - CLONE_IO block cgroup fix (Tejun)
      
       - Remove of ancient and deprecated block dump feature (zhangyi)
      
       - Discard merge fix (Ming)
      
       - Misc fixes or followup fixes (Colin, Damien, Dan, Long, Max, Thomas,
         Yang)
      
      * tag 'for-5.14/block-2021-06-29' of git://git.kernel.dk/linux-block: (129 commits)
        block: fix discard request merge
        block/mq-deadline: Remove a WARN_ON_ONCE() call
        blk-mq: update hctx->dispatch_busy in case of real scheduler
        blk: Fix lock inversion between ioc lock and bfqd lock
        bfq: Remove merged request already in bfq_requests_merged()
        block: pass a gendisk to bdev_disk_changed
        block: move bdev_disk_changed
        block: add the events* attributes to disk_attrs
        block: move the disk events code to a separate file
        block: fix trace completion for chained bio
        block/partitions/msdos: Fix typo inidicator -> indicator
        block, bfq: reset waker pointer with shared queues
        block, bfq: check waker only for queues with no in-flight I/O
        block, bfq: avoid delayed merge of async queues
        block, bfq: boost throughput by extending queue-merging times
        block, bfq: consider also creation time in delayed stable merge
        block, bfq: fix delayed stable merge check
        block, bfq: let also stably merged queues enjoy weight raising
        blk-wbt: make sure throttle is enabled properly
        blk-wbt: introduce a new disable state to prevent false positive by rwb_enabled()
        ...
      df668a5f
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · df04fbe8
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - patch series that ensures that hid-multitouch driver disables touch
         and button-press reporting on hid-mt devices during suspend when the
         device is not configured as a wakeup-source, from Hans de Goede
      
       - support for ISH DMA on Intel EHL platform, from Even Xu
      
       - support for Renoir and Cezanne SoCs, Ambient Light Sensor and Human
         Presence Detection sensor for amd-sfh driver, from Basavaraj Natikar
      
       - other assorted code cleanups and device-specific fixes/quirks
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (45 commits)
        HID: thrustmaster: Switch to kmemdup() when allocate change_request
        HID: multitouch: Disable event reporting on suspend when the device is not a wakeup-source
        HID: logitech-dj: Implement may_wakeup ll-driver callback
        HID: usbhid: Implement may_wakeup ll-driver callback
        HID: core: Add hid_hw_may_wakeup() function
        HID: input: Add support for Programmable Buttons
        HID: wacom: Correct base usage for capacitive ExpressKey status bits
        HID: amd_sfh: Add initial support for HPD sensor
        HID: amd_sfh: Extend ALS support for newer AMD platform
        HID: amd_sfh: Extend driver capabilities for multi-generation support
        HID: surface-hid: Fix get-report request
        HID: sony: fix freeze when inserting ghlive ps3/wii dongles
        HID: usbkbd: Avoid GFP_ATOMIC when GFP_KERNEL is possible
        HID: amd_sfh: change in maintainer
        HID: intel-ish-hid: ipc: Specify that EHL no cache snooping
        HID: intel-ish-hid: ishtp: Add dma_no_cache_snooping() callback
        HID: intel-ish-hid: Set ISH driver depends on x86
        HID: hid-input: add Surface Go battery quirk
        HID: intel-ish-hid: Fix minor typos in comments
        HID: usbmouse: Avoid GFP_ATOMIC when GFP_KERNEL is possible
        ...
      df04fbe8
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 4b5e35ce
      Linus Torvalds authored
      Pull EDAC updates from Tony Luck:
       "Various fixes and support for new CPUs:
      
         - Clean up error messages from thunderx_edac
      
         - Add MODULE_DEVICE_TABLE to ti_edac so it will autoload
      
         - Use %pR to print resources in aspeed_edac
      
         - Add Yazen Ghannam as MAINTAINER for AMD edac drivers
      
         - Fix Ice Lake and Sapphire Rapids drivers to report correct "near"
           or "far" device for errors in 2LM configurations
      
         - Add support of on package high bandwidth memory in Sapphire Rapids
      
         - New CPU support for three CPUs supporting in-band ECC (IOT SKUs for
           ICL-NNPI, Tiger Lake and Alder Lake)
      
         - Don't even try to load Intel EDAC drivers when running as a guest
      
         - Fix Kconfig dependency on X86_MCE_INTEL for EDAC_IGEN6"
      
      * tag 'edac_updates_for_v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/igen6: fix core dependency
        EDAC/Intel: Do not load EDAC driver when running as a guest
        EDAC/igen6: Add Intel Alder Lake SoC support
        EDAC/igen6: Add Intel Tiger Lake SoC support
        EDAC/igen6: Add Intel ICL-NNPI SoC support
        EDAC/i10nm: Add support for high bandwidth memory
        EDAC/i10nm: Add detection of memory levels for ICX/SPR servers
        EDAC/skx_common: Add new ADXL components for 2-level memory
        MAINTAINERS: Make Yazen Ghannam maintainer for EDAC-AMD64
        EDAC/aspeed: Use proper format string for printing resource
        EDAC/ti: Add missing MODULE_DEVICE_TABLE
        EDAC/thunderx: Remove irrelevant variable from error messages
      4b5e35ce