tree 2767442425c32f7082205183033ce696f44e4e87
parent ed5d1e4b5713e5b74a9fcccde3e59832ca692e1c
parent 65859eca4dff1af0db5e36d1cfbac15b834c6a65
author Oleksandr Tymoshenko <ovt@google.com> 1622759193 +0000
committer Oleksandr Tymoshenko <ovt@google.com> 1622759195 +0000

merge-upstream/v5.10.42 from branch/tag: upstream/v5.10.42 into branch: cos-5.10

Changelog:
-------------------------------------------------------------

A. Cody Schuffelen (1):
      virt_wifi: Return micros for BSS TSF values

Abhijeet Rao (1):
      xhci-pci: Allow host runtime PM as default for Intel Alder Lake xHCI

Abhinav Kumar (1):
      drm/msm/dp: Fix incorrect NULL check kbot warnings in DP driver

Adam Ford (1):
      clk: imx: Fix reparenting of UARTs not associated with stdout

Adrian Hunter (8):
      perf inject: Fix repipe usage
      mmc: sdhci-pci: Fix initialization of some SD cards for Intel BYT-based controllers
      mmc: sdhci-pci: Add PCI IDs for Intel LKF
      perf intel-pt: Fix sample instruction bytes
      perf intel-pt: Fix transaction abort handling
      perf scripts python: exported-sql-viewer.py: Fix copy to clipboard from Top Calls by elapsed Time report
      perf scripts python: exported-sql-viewer.py: Fix Array TypeError
      perf scripts python: exported-sql-viewer.py: Fix warning display

Ahmed S. Darwish (1):
      net: xfrm: Localize sequence counter per network namespace

Ajish Koshy (1):
      scsi: pm80xx: Fix drives missing during rmmod/insmod loop

Al Cooper (1):
      mmc: sdhci-brcmstb: Remove CQE quirk

Al Viro (2):
      LOOKUP_MOUNTPOINT: we are cleaning "jumped" flag too late
      hostfs: fix memory handling in follow_link()

Alaa Emad (2):
      media: dvb: Add check on sp8870_readreg return
      media: gspca: mt9m111: Check write_bridge for timeout

Alain Volmat (1):
      spi: stm32: Fix use-after-free on unbind

Alan Stern (1):
      USB: usbfs: Don't WARN about excessively large memory allocations

Alban Bedel (1):
      platform/x86: intel-hid: Support Lenovo ThinkPad X1 Tablet Gen 2

Aleksander Jan Bajkowski (1):
      net: lantiq: fix memory corruption in RX ring

Alex Elder (2):
      net: ipa: fix init header command validation
      net: ipa: memory region array is variable size

Alexander Aring (23):
      net: ieee802154: nl-mac: fix check on panid
      net: ieee802154: fix nl802154 del llsec key
      net: ieee802154: fix nl802154 del llsec dev
      net: ieee802154: fix nl802154 add llsec key
      net: ieee802154: fix nl802154 del llsec devkey
      net: ieee802154: forbid monitor for set llsec params
      net: ieee802154: forbid monitor for del llsec seclevel
      net: ieee802154: stop dump llsec params for monitors
      net: ieee802154: stop dump llsec keys for monitors
      net: ieee802154: forbid monitor for add llsec key
      net: ieee802154: forbid monitor for del llsec key
      net: ieee802154: stop dump llsec devs for monitors
      net: ieee802154: forbid monitor for add llsec dev
      net: ieee802154: forbid monitor for del llsec dev
      net: ieee802154: stop dump llsec devkeys for monitors
      net: ieee802154: forbid monitor for add llsec devkey
      net: ieee802154: forbid monitor for del llsec devkey
      net: ieee802154: stop dump llsec seclevels for monitors
      net: ieee802154: forbid monitor for add llsec seclevel
      fs: dlm: fix debugfs dump
      fs: dlm: add errno handling to check callback
      fs: dlm: check on minimum msglen size
      fs: dlm: flush swork on shutdown

Alexander Gordeev (1):
      s390/cpcmd: fix inline assembly register clobbering

Alexander Lobakin (3):
      mtd: spinand: core: add missing MODULE_DEVICE_TABLE()
      xsk: Respect device's headroom and tailroom on generic xmit path
      gro: fix napi_gro_frags() Fast GRO breakage due to IP alignment check

Alexander Shishkin (2):
      intel_th: pci: Add Rocket Lake CPU support
      intel_th: pci: Add Alder Lake-M support

Alexander Shiyan (1):
      ASoC: fsl_esai: Fix TDM slot setup for I2S mode

Alexander Usyskin (1):
      mei: request autosuspend after sending rx flow control

Alexandru Ardelean (3):
      iio: adc: Kconfig: make AD9467 depend on ADI_AXI_ADC symbol
      iio: hid-sensors: select IIO_TRIGGERED_BUFFER under HID_SENSOR_IIO_TRIGGER
      iio: adc: ad7192: handle regulator voltage error first

Alexandru Elisei (1):
      KVM: arm64: Initialize VCPU mdcr_el2 before loading it

Alexey Kardashevskiy (2):
      powerpc/iommu: Annotate nested lock for lockdep
      powerpc: Fix early setup to make early_ioremap() work

Ali Saidi (1):
      locking/qrwlock: Fix ordering in queued_write_lock_slowpath()

Alison Schofield (1):
      x86, sched: Treat Intel SNC topology as default, COD as exception

Amir Goldstein (1):
      ovl: invalidate readdir cache on changes to dir with origin

Amit (1):
      nvmet: remove unused ctrl->cqs

Anastasia Kovaleva (1):
      scsi: qla2xxx: Prevent PRLI in target mode

Andre Edich (1):
      net: phy: lan87xx: fix access to wrong register of LAN87xx

Andre Przywara (5):
      kselftest/arm64: sve: Do not use non-canonical FFR register value
      arm64: dts: allwinner: Fix SD card CD GPIO for SOPine systems
      arm64: dts: allwinner: Revert SD card CD GPIO for Pine64-LTS
      kselftest/arm64: mte: Fix compilation with native compiler
      kselftest/arm64: mte: Fix MTE feature detection

Andrei Matei (1):
      bpf: Allow variable-offset stack access

Andrew Jeffery (1):
      serial: 8250: Add UART_BUG_TXRACE workaround for Aspeed VUART

Andrew Price (1):
      gfs2: Flag a withdraw if init_threads() fails

Andrew Scull (1):
      bug: Remove redundant condition check in report_bug

Andrii Nakryiko (7):
      libbpf: Add explicit padding to bpf_xdp_set_link_opts
      bpftool: Fix maybe-uninitialized warnings
      selftests/bpf: Re-generate vmlinux.h and BPF skeletons if bpftool changed
      selftests/bpf: Fix BPF_CORE_READ_BITFIELD() macro
      selftests/bpf: Fix field existence CO-RE reloc tests
      selftests/bpf: Fix core_reloc test runner
      bpf: Prevent writable memory-mapping of read-only ringbuf pages

Andy Gospodarek (1):
      bnxt_en: Include new P5 HV definition in VF check.

Andy Shevchenko (16):
      i2c: designware: Adjust bus_freq_hz when refuse high speed mode set
      gpiolib: Read "gpio-line-names" from a firmware node
      dmaengine: dw: Make it dependent to HAS_IOMEM
      pinctrl: core: Show pin numbers for the controllers with base = 0
      usb: gadget: pch_udc: Revert d3cb25a12138 completely
      usb: gadget: pch_udc: Replace cpu_to_le32() by lower_32_bits()
      usb: gadget: pch_udc: Check if driver is present before calling ->setup()
      usb: gadget: pch_udc: Check for DMA mapping error
      usb: gadget: pch_udc: Initialize device pointer before use
      usb: gadget: pch_udc: Provide a GPIO line used on Intel Minnowboard (v1)
      driver core: platform: Declare early_platform_cleanup() prototype
      usb: typec: ucsi: Put fwnode in any case during ->probe()
      scripts: switch explicitly to Python 3
      iio: dac: ad5770r: Put fwnode in error case during ->probe()
      platform/x86: intel_punit_ipc: Append MODULE_DEVICE_TABLE for ACPI
      spi: Assume GPIO CS active high in ACPI case

Aniruddha Tvs Rao (1):
      mmc: sdhci-tegra: Add required callbacks to set/clear CQE_EN bit

Anirudh Rayabharam (8):
      net: hso: fix null-ptr-deref during tty device unregistration
      usb: gadget: dummy_hcd: fix gpf in gadget_setup
      rapidio: handle create_workqueue() failure
      net: stmicro: handle clk_prepare() failure during init
      video: hgafb: correctly handle card detect failure during probe
      net: fujitsu: fix potential null-ptr-deref
      net/smc: properly handle workqueue allocation failure
      ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()

Anirudh Venkataramanan (2):
      ice: Continue probe on link/PHY errors
      ice: Use port number instead of PF ID for WoL

Anna Schumaker (1):
      NFSv4: Fix a NULL pointer dereference in pnfs_mark_matching_lsegs_return()

Annaliese McDermond (3):
      ASoC: tlv320aic32x4: Register clocks before registering component
      ASoC: tlv320aic32x4: Increase maximum register in regmap
      sc16is7xx: Defer probe if device read fails

Anson Jacob (3):
      drm/amdkfd: Fix UBSAN shift-out-of-bounds warning
      drm/amd/display: Fix UBSAN warning for not a valid value for type '_Bool'
      drm/amd/display: Fix UBSAN: shift-out-of-bounds warning

Anthony Wang (1):
      drm/amd/display: Force vsync flip when reconfiguring MPCC

Antoine Tenart (2):
      vxlan: do not modify the shared tunnel info when PMTU triggers an ICMP reply
      geneve: do not modify the shared tunnel info when PMTU triggers an ICMP reply

Antonio Borneo (1):
      spi: stm32: drop devres version of spi_register_master

Anup Patel (1):
      RISC-V: Fix error code returned by riscv_hartid_to_cpuid()

Archie Pusaka (3):
      Bluetooth: verify AMP hci_chan before amp_destroy
      Bluetooth: Set CONF_NOT_COMPLETE as l2cap_chan default
      Bluetooth: check for zapped sk before connecting

Ard Biesheuvel (6):
      ARM: 9056/1: decompressor: fix BSS size calculation for LLVM ld.lld
      crypto: api - check for ERR pointers in crypto_destroy_tfm()
      ARM: 9011/1: centralize phys-to-virt conversion of DT/ATAGS address
      ARM: 9012/1: move device tree mapping out of linear region
      ARM: 9020/1: mm: use correct section size macro to describe the FDT virtual address
      ARM: 9027/1: head.S: explicitly map DT even if it lives in the first physical section

Aric Cyr (2):
      drm/amd/display: Don't optimize bandwidth before disabling planes
      drm/amd/display: DCHUB underflow counter increasing in some scenarios

Ariel Levkovich (2):
      net/mlx5e: Fix mapping of ct_label zero
      net/mlx5: Set term table as an unmanaged flow table

Arkadiusz Kubalewski (4):
      i40e: Fix sparse warning: missing error code 'err'
      i40e: Fix sparse error: 'vsi->netdev' could be null
      i40e: Fix sparse error: uninitialized symbol 'ring'
      i40e: Fix sparse errors in i40e_txrx.c

Arnaldo Carvalho de Melo (2):
      perf map: Tighten snprintf() string precision to pass gcc check on some 32-bit arches
      perf symbols: Fix dso__fprintf_symbols_by_name() to return the number of printed chars

Arnd Bergmann (25):
      x86/build: Turn off -fcf-protection for realmode targets
      remoteproc: qcom: pil_info: avoid 64-bit division
      soc/fsl: qbman: fix conflicting alignment attributes
      lockdep: Address clang -Wformat warning printing for %hd
      drm/imx: imx-ldb: fix out of bounds array access warning
      ARM: keystone: fix integer overflow warning
      ARM: omap1: fix building with clang IAS
      Input: i8042 - fix Pegatron C15B ID entry
      kasan: fix hwasan build for gcc
      amdgpu: avoid incorrect %hu format string
      security: commoncap: fix -Wstringop-overread warning
      spi: rockchip: avoid objtool warning
      crypto: poly1305 - fix poly1305_core_setkey() declaration
      irqchip/gic-v3: Fix OF_BAD_ADDR error handling
      wlcore: fix overlapping snprintf arguments in debugfs
      net: enetc: fix link error again
      smp: Fix smp_call_function_single_async prototype
      ext4: fix debug format string warning
      x86/msr: Fix wr/rdmsr_safe_regs_on_cpu() prototypes
      airo: work around stack usage warning
      kgdb: fix gcc-11 warning on indentation
      usb: sl811-hcd: improve misleading indentation
      isdn: capi: fix mismatched prototypes
      PCI: thunder: Fix compile testing
      kcsan: Fix debugfs initcall return type

Artur Petrosyan (3):
      usb: dwc2: Fix session request interrupt handler
      usb: dwc2: Fix host mode hibernation exit with remote wakeup flow.
      usb: dwc2: Fix hibernation between host and device modes.

Arun Easi (2):
      scsi: qla2xxx: Fix crash in qla2xxx_mqueuecommand()
      PCI: Allow VPD access for QLogic ISP2722

Athira Rajeev (2):
      powerpc/perf: Fix PMU constraint check for EBB events
      powerpc/perf: Fix the threshold event selection for memory events in power10

Atul Gopinathan (2):
      cdrom: gdrom: deallocate struct gdrom_unit fields in remove_gdrom
      serial: max310x: unregister uart driver in case of failure and abort

Aurelien Aptel (2):
      smb2: fix use-after-free in smb2_ioctl_query_info()
      cifs: set server->cipher_type to AES-128-CCM for SMB3.0

Avri Altman (2):
      mmc: block: Update ext_csd.cache_ctrl if it was written
      mmc: block: Issue a cache flush only when it's enabled

Axel Rasmussen (1):
      userfaultfd: release page in error path to avoid BUG_ON

Aya Levin (5):
      net/mlx5e: Fix ethtool indication of connector type
      net/mlx5: Fix PPLM register mapping
      net/mlx5: Fix PBMC register mapping
      net/mlx5e: Fix setting of RS FEC mode
      net/mlx5e: Fix error path of updating netdev queues

Ayush Garg (1):
      Bluetooth: Fix incorrect status handling in LE PHY UPDATE event

Ayush Sawal (2):
      crypto: chelsio - Read rxchannel-id from firmware
      cxgb4/ch_ktls: Clear resources when pf4 device is removed

Badhri Jagan Sridharan (5):
      usb: typec: tcpm: Address incorrect values of tcpm psy for fixed supply
      usb: typec: tcpm: Address incorrect values of tcpm psy for pps supply
      usb: typec: tcpm: update power supply once partner accepts
      usb: typec: tcpci: Check ROLE_CONTROL while interpreting CC_STATUS
      usb: typec: tcpm: Fix error while calculating PPS out values

Baptiste Lepers (1):
      sunrpc: Fix misplaced barrier in call_decode

Bart Van Assche (4):
      scsi: qla2xxx: Always check the return value of qla24xx_get_isp_stats()
      scsi: libfc: Fix a format specifier
      blk-mq: Swap two calls in blk_mq_exit_queue()
      scsi: ufs: core: Increase the usable queue depth

Bas Nieuwenhuizen (1):
      tools/power/turbostat: Fix turbostat for AMD Zen CPUs

Bastian Germann (1):
      ASoC: sunxi: sun4i-codec: fill ASoC card owner

Ben Gardon (5):
      KVM: x86/mmu: change TDP MMU yield function returns to match cond_resched
      KVM: x86/mmu: Merge flush and non-flush tdp_mmu_iter_cond_resched
      KVM: x86/mmu: Rename goal_gfn to next_last_level_gfn
      KVM: x86/mmu: Ensure forward progress when yielding in TDP MMU iter
      KVM: x86/mmu: Yield in TDU MMU iter even if no SPTES changed

Ben Greear (1):
      mac80211: fix time-is-after bug in mlme

Bence Csókás (1):
      i2c: Add I2C_AQ_NO_REP_START adapter quirk

Benjamin Block (1):
      dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails

Benjamin Segall (1):
      kvm: exit halt polling on need_resched() as well

Bhaumik Bhatt (3):
      bus: mhi: core: Clear configuration from channel context during reset
      bus: mhi: core: Destroy SBL devices when moving to mission mode
      bus: mhi: core: Clear context for stopped channels from remove()

Bill Wendling (1):
      arm64/vdso: Discard .note.gnu.property sections in vDSO

Bixuan Cui (3):
      usb: musb: fix PM reference leak in musb_irq_work()
      usb: core: hub: Fix PM reference leak in usb_port_resume()
      iommu/virtio: Add missing MODULE_DEVICE_TABLE

Bjorn Andersson (5):
      net: qrtr: Avoid potential use after free in MHI send
      soc: qcom: mdt_loader: Validate that p_filesz < p_memsz
      soc: qcom: mdt_loader: Detect truncated read of segments
      remoteproc: qcom_q6v5_mss: Validate p_filesz in ELF loader
      usb: typec: mux: Fix matching with typec_altmode_desc

Bob Pearson (1):
      RDMA/rxe: Fix a bug in rxe_fill_ip_info()

Bob Peterson (1):
      gfs2: report "already frozen/thawed" errors

Bodo Stroesser (1):
      scsi: target: tcmu: Return from tcmu_handle_completions() if cmd_id not found

Boris Brezillon (2):
      drm/panfrost: Clear MMU irqs before handling the fault
      drm/panfrost: Don't try to map pages that are already mapped

Boris Burkov (1):
      btrfs: return whole extents in fiemap

Brendan Jackman (1):
      libbpf: Fix signed overflow in ringbuf_process_ring

Brian King (1):
      scsi: ibmvfc: Fix invalid state machine BUG_ON()

Bruce Allan (1):
      ice: fix memory allocation call

Caleb Connolly (1):
      Input: s6sy761 - fix coordinate read bit shift

Calvin Walton (1):
      tools/power turbostat: Fix offset overflow issue in index converting

Can Guo (5):
      scsi: ufs: core: Fix task management request completion timeout
      scsi: ufs: core: Fix wrong Task Tag used in task management request UPIUs
      scsi: ufs: core: Do not put UFS power into LPM if link is broken
      scsi: ufs: core: Cancel rpm_dev_flush_recheck_work during system suspend
      scsi: ufs: core: Narrow down fast path in system suspend path

Carl Philipp Klemm (1):
      power: supply: cpcap-charger: Add usleep to cpcap charger to avoid usb plug bounce

Carlos Leija (1):
      ARM: OMAP4: PM: update ROM return address for OSWR and OFF

Carsten Haitzler (1):
      drm/komeda: Fix bit check to import to value of proper type

Catalin Marinas (3):
      arm64: mte: Ensure TIF_MTE_ASYNC_FAULT is set atomically
      arm64: Remove arm64_dma32_phys_limit and its uses
      arm64: Fix race condition on PG_dcache_clean in __sync_icache_dcache()

Catherine Sullivan (2):
      gve: Check TX QPL was actually assigned
      gve: Upgrade memory barrier in poll routine

Cezary Rojewski (1):
      ASoC: Intel: Skylake: Compile when any configuration is selected

Chaitanya Kulkarni (3):
      scsi: target: pscsi: Fix warning in pscsi_complete_cmd()
      nvmet: add lba to sect conversion helpers
      nvmet: fix inline bio check for bdev-ns

Changfeng (1):
      drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang

Chao Yu (14):
      f2fs: fix to avoid out-of-bounds memory access
      f2fs: move ioctl interface definitions to separated file
      f2fs: fix compat F2FS_IOC_{MOVE,GARBAGE_COLLECT}_RANGE
      f2fs: fix to allow migrating fully valid segment
      f2fs: fix panic during f2fs_resize_fs()
      f2fs: fix to align to section for fallocate() on pinned file
      f2fs: fix to update last i_size if fallocate partially succeeds
      f2fs: fix to avoid touching checkpointed data in get_victim()
      f2fs: fix to cover __allocate_new_section() with curseg_lock
      f2fs: fix to avoid accessing invalid fio in f2fs_allocate_data_block()
      f2fs: avoid unneeded data copy in f2fs_ioc_move_range()
      f2fs: compress: fix to free compress page correctly
      f2fs: compress: fix race condition of overwrite vs truncate
      f2fs: compress: fix to assign cc.cluster_idx correctly

Charan Teja Reddy (1):
      sched,psi: Handle potential task count underflow bugs more gracefully

Chen Huang (1):
      powerpc: Fix HAVE_HARDLOCKUP_DETECTOR_ARCH build configuration

Chen Hui (2):
      clk: qcom: a53-pll: Add missing MODULE_DEVICE_TABLE
      clk: qcom: apss-ipq-pll: Add missing MODULE_DEVICE_TABLE

Chen Jun (1):
      posix-timers: Preserve return value in clock_adjtime32()

Chinh T Cao (2):
      ice: Refactor DCB related variables out of the ice_port_info struct
      ice: Recognize 860 as iSCSI port in CEE mode

Chinmay Agarwal (1):
      neighbour: Prevent Race condition in neighbour subsytem

Chris Chiu (2):
      block: clear GD_NEED_PART_SCAN later in bdev_disk_changed
      USB: Add reset-resume quirk for WD19's Realtek Hub

Chris Dion (1):
      SUNRPC: Handle major timeout in xprt_adjust_timeout()

Chris Park (1):
      drm/amd/display: Disconnect non-DP with no EDID

Chris von Recklinghausen (1):
      PM: hibernate: x86: Use crc32 instead of md5 for hibernation e820 integrity check

Christian A. Ehrhardt (1):
      vfio/pci: Add missing range check in vfio_pci_mmap

Christian Gmeiner (1):
      serial: 8250_pci: handle FL_NOIRQ board flag

Christian König (2):
      drm/amdgpu: fix concurrent VM flushes on Vega/Navi v2
      drm/amdgpu: stop touching sched.ready in the backend

Christoph Hellwig (5):
      block: return -EBUSY when there are open partitions in blkdev_reread_part
      md: split mddev_find
      md: factor out a mddev_find_locked helper from mddev_find
      nvme: do not try to reconfigure APST when the controller is not live
      nvme-multipath: fix double initialization of ANA state

Christophe JAILLET (16):
      net: davicom: Fix regulator not turned off on failed probe
      mmc: uniphier-sd: Fix an error handling path in uniphier_sd_probe()
      mmc: uniphier-sd: Fix a resource leak in the remove function
      usb: gadget: s3c: Fix incorrect resources releasing
      usb: gadget: s3c: Fix the error handling path in 's3c2410_udc_probe()'
      media: venus: core: Fix some resource leaks in the error path of 'venus_probe()'
      usb: fotg210-hcd: Fix an error message
      usb: musb: Fix an error message
      ACPI: scan: Fix a memory leak in an error handling path
      xhci: Do not use GFP_KERNEL in (potentially) atomic context
      openrisc: Fix a memory leak
      uio_hv_generic: Fix a memory leak in error handling paths
      spi: spi-fsl-dspi: Fix a resource leak in an error handling path
      net: netcp: Fix an error message
      net: mdio: thunder: Fix a double free issue in the .remove function
      net: mdio: octeon: Fix some double free issues

Christophe Kerello (1):
      spi: stm32-qspi: fix pm_runtime usage_count counter

Christophe Leroy (5):
      mm: ptdump: fix build failure
      powerpc/32: Fix boot failure with CONFIG_STACKPROTECTOR
      powerpc/64: Fix the definition of the fixmap area
      powerpc/52xx: Fix an invalid ASM expression ('addi' used instead of 'add')
      powerpc/32: Statically initialise first emergency context

Chuck Lever (6):
      NFSD: Fix sparse warning in nfs4proc.c
      SUNRPC: Move fault injection call sites
      SUNRPC: Remove trace_xprt_transmit_queued
      xprtrdma: Avoid Receive Queue wrapping
      xprtrdma: Fix cwnd update ordering
      xprtrdma: rpcrdma_mr_pop() already does list_del_init()

Chunfeng Yun (6):
      arm64: dts: mt8173: fix property typo of 'phys' in dsi node
      usb: xhci-mtk: support quirk to disable usb2 lpm
      usb: xhci-mtk: remove or operator for setting schedule parameters
      usb: xhci-mtk: improve bandwidth scheduling with TT
      usb: core: hub: fix race condition about TRSMRCY of resume
      usb: core: reduce power-on-good delay time of root hub

Ciara Loftus (4):
      libbpf: Ensure umem pointer is non-NULL before dereferencing
      libbpf: Restore umem state after socket create failure
      libbpf: Only create rx and tx XDP rings when necessary
      libbpf: Fix potential NULL pointer dereference

Claire Chang (1):
      swiotlb: Fix the type of index

Claudio Imbrenda (5):
      KVM: s390: VSIE: correctly handle MVPG when in VSIE
      KVM: s390: split kvm_s390_logical_to_effective
      KVM: s390: VSIE: fix MVPG handling for prefixing and MSO
      KVM: s390: split kvm_s390_real_to_abs
      KVM: s390: extend kvm_s390_shadow_fault to return entry pointer

Claudiu Beznea (2):
      net: macb: restore cmp registers on resume path
      net: macb: fix the restore of cmp registers

Claudiu Manoil (1):
      gianfar: Handle error code at MAC address change

Colin Ian King (30):
      ice: Fix potential infinite loop when using u8 loop counter
      clk: socfpga: arria10: Fix memory leak of socfpga_clk on error return
      drm/radeon: fix copy of uninitialized variable back to userspace
      memory: gpmc: fix out of bounds read and dereference on gpmc_cs[]
      crypto: sun8i-ss - Fix memory leak of object d when dma_iv fails to map
      staging: rtl8192u: Fix potential infinite loop
      crypto: sun8i-ss - Fix memory leak of pad
      crypto: sa2ul - Fix memory leak of rxd
      usb: gadget: r8a66597: Add missing null check on return from platform_get_resource
      media: vivid: fix assignment of dev->fbuf_out_flags
      media: [next] staging: media: atomisp: fix memory leak of object flash
      media: m88rs6000t: avoid potential out-of-bounds reads on arrays
      clk: uniphier: Fix potential infinite loop
      scsi: pm80xx: Fix potential infinite loop
      ASoC: Intel: boards: sof-wm8804: add check for PLL setting
      liquidio: Fix unintented sign extension of a left shift of a u16
      xfs: fix return of uninitialized value in variable error
      mt7601u: fix always true expression
      cxgb4: Fix unintentional sign extension issues
      net: thunderx: Fix unintentional sign extension issue
      net/mlx5: Fix bit-wise and with zero
      ALSA: usb: midi: don't return -ENOMEM when usb_urb_ep_type_check fails
      net: davinci_emac: Fix incorrect masking of tx and rx error channel
      wlcore: Fix buffer overrun by snprintf due to incorrect buffer size
      KEYS: trusted: Fix memory leak on object td
      f2fs: fix a redundant call to f2fs_balance_fs if an error occurs
      dmaengine: idxd: Fix potential null dereference on pointer status
      fs/proc/generic.c: fix incorrect pde_is_permanent check
      iio: tsl2583: Fix division by a zero lux_val
      serial: tegra: Fix a mask operation that is always true

Colin Xu (2):
      drm/i915/gvt: Fix virtual display setup for BXT/APL
      drm/i915/gvt: Fix vfio_edid issue for BXT/APL

Cong Wang (1):
      smc: disallow TCP_ULP in smc_setsockopt()

Corentin Labbe (2):
      crypto: sun8i-ss - fix result memory leak on error path
      crypto: allwinner - add missing CRYPTO_ prefix

Cédric Le Goater (2):
      powerpc/xive: Drop check on irq_data in xive_core_debug_show()
      powerpc/xive: Fix xmon command "dxi"

DENG Qingfang (1):
      net: dsa: mt7530: fix VLAN traffic leaks

Dafna Hirschfeld (1):
      media: rkisp1: rsz: crash fix when setting src format

Damien Le Moal (1):
      null_blk: fix command timeout completion handling

Dan Carpenter (30):
      thunderbolt: Fix a leak in tb_retimer_add()
      thunderbolt: Fix off by one in tb_port_find_retimer()
      dmaengine: plx_dma: add a missing put_device() on error path
      ipw2x00: potential buffer overflow in libipw_wx_set_encodeext()
      ovl: fix missing revert_creds() on error path
      mtd: rawnand: fsmc: Fix error code in fsmc_nand_probe()
      regulator: bd9576: Fix return from bd957x_probe()
      node: fix device cleanups in error handling code
      Drivers: hv: vmbus: Use after free in __vmbus_open()
      soc: aspeed: fix a ternary sign expansion bug
      drm/amd/display: Fix off by one in hdmi_14_process_transaction()
      media: atomisp: Fix use after free in atomisp_alloc_css_stat_bufs()
      drm: xlnx: zynqmp: fix a memset in zynqmp_dp_train()
      HSI: core: fix resource leaks in hsi_add_client_from_dt()
      nfc: pn533: prevent potential memory corruption
      rtw88: Fix an error code in rtw_debugfs_set_rsvd_page()
      drm/i915/gvt: Fix error code in intel_gvt_init_device()
      drm/amd/pm: fix error code in smu_set_power_limit()
      bnxt_en: fix ternary sign extension bug in bnxt_show_temp()
      kfifo: fix ternary sign extension bugs
      SUNRPC: fix ternary sign expansion bug in tracing
      firmware: arm_scpi: Prevent the ternary sign expansion bug
      RDMA/uverbs: Fix a NULL vs IS_ERR() bug
      NFS: fix an incorrect limit in filelayout_decode_layout()
      net: dsa: fix a crash if ->get_sset_count() fails
      chelsio/chtls: unlock on error in chtls_pt_recvmsg()
      net: hso: check for allocation failure in hso_create_bulk_serial_device()
      staging: emxx_udc: fix loop in _nbu2ss_nuke()
      ASoC: cs35l33: fix an error code in probe()
      scsi: libsas: Use _safe() loop in sas_resume_port()

Dan Williams (1):
      xen/unpopulated-alloc: consolidate pgmap manipulation

Daniel Beer (1):
      mmc: sdhci-pci-gli: increase 1.8V regulator wait

Daniel Borkmann (15):
      bpf: Use correct permission flag for mixed signed bounds arithmetic
      bpf: Ensure off_reg has no mixed signed bounds for all types
      bpf: Move off_reg into sanitize_ptr_alu
      bpf: Rework ptr_limit into alu_limit and add common error path
      bpf: Improve verifier error messages for users
      bpf: Move sanitize_val_alu out of op switch
      bpf: Refactor and streamline bounds check into helper
      bpf: Tighten speculative pointer arithmetic mask
      bpf: Fix masking negation logic upon negative dst register
      bpf: Fix leakage of uninitialized bpf stack under speculation
      bpf: Fix propagation of 32 bit unsigned bounds from 64 bit bounds
      bpf: Fix alu32 const subreg bound tracking on bitwise operations
      bpf: Wrap aux data inside bpf_sanitize_info container
      bpf: Fix mask direction swap upon off reg sign change
      bpf: No need to simulate speculative domain for immediates

Daniel Cordova A (1):
      ALSA: hda: fixup headset for ASUS GU502 laptop

Daniel Gomez (2):
      drm/amdgpu/ttm: Fix memory leak userptr pages
      drm/radeon/ttm: Fix memory leak userptr pages

Daniel Jurgens (1):
      net/mlx5: Don't request more than supported EQs

Daniel Niv (1):
      media: media/saa7164: fix saa7164_encoder_register() memory leak bugs

Daniel Phan (1):
      mac80211: Check crypto_aead_encrypt for errors

Daniel Wagner (1):
      nvmet: seset ns->file when open fails

Daniele Palmas (1):
      USB: serial: option: add Telit LE910-S1 compositions 0x7010, 0x7011

Danielle Ratson (1):
      selftests: mlxsw: Remove a redundant if statement in tc_flower_scale test

Dario Binacchi (2):
      serial: omap: don't disable rs485 if rts gpio is missing
      serial: omap: fix rs485 half-duplex filtering

Darren Powell (1):
      amdgpu/pm: Prevent force of DCEFCLK on NAVI10 and SIENNA_CICHLID

Darrick J. Wong (1):
      ics932s401: fix broken handling of errors when word reading fails

Dave Ertman (1):
      ice: remove DCBNL_DEVRESET bit from PF state

Dave Jiang (7):
      dmaengine: idxd: Fix clobbering of SWERR overflow bit on writeback
      dmaengine: idxd: fix delta_rec and crc size field for completion record
      dmaengine: idxd: fix opcap sysfs attribute output
      dmaengine: idxd: fix wq size store permission state
      dmaengine: idxd: fix wq cleanup of WQCFG registers
      dmaengine: idxd: fix dma device lifetime
      dmaengine: idxd: fix cdev setup and free device lifetime issues

Dave Marchevsky (1):
      bpf: Refcount task stack in bpf_get_task_stack

Dave Rigby (1):
      perf unwind: Set userdata for all __report_module() paths

David Awogbemila (3):
      gve: Update mgmt_msix_idx if num_ntfy changes
      gve: Add NULL pointer checks when freeing irqs.
      gve: Correct SKB queue index validation.

David Bauer (5):
      spi: ath79: always call chipselect function
      spi: ath79: remove spi-master setup and cleanup assignment
      spi: sync up initial chipselect state
      mtd: don't lock when recursively deleting partitions
      mt76: mt76x0: disable GTK offloading

David E. Box (2):
      platform/x86: intel_pmc_core: Ignore GBE LTR on Tiger Lake platforms
      platform/x86: intel_pmc_core: Don't use global pmcdev in quirks

David Edmondson (1):
      KVM: x86: dump_vmcs should not assume GUEST_IA32_EFER is valid

David Gow (1):
      kunit: tool: Fix a python tuple typing error

David Hildenbrand (3):
      s390: fix detection of vector enhancements facility 1 vs. vector packed decimal facility
      kernel/resource: make walk_system_ram_res() find all busy IORESOURCE_SYSTEM_RAM resources
      kernel/resource: make walk_mem_res() find all busy IORESOURCE_MEM resources

David Howells (3):
      afs: Fix updating of i_mode due to 3rd party change
      afs: Fix speculative status fetches
      afs: Fix the nlink handling of dir-over-dir rename

David Matlack (1):
      kvm: Cap halt polling at kvm->max_halt_poll_ns

David S. Miller (1):
      math: Export mul_u64_u64_div_u64

David Ward (3):
      ASoC: rt286: Generalize support for ALC3263 codec
      ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
      drm/amd/display: Initialize attribute for hdcp_srm sysfs file

Davide Caratti (3):
      openvswitch: fix stack OOB read while fragmenting IPv4 packets
      net/sched: fq_pie: re-factor fix for fq_pie endless loop
      net/sched: fq_pie: fix OOB access in the traffic path

Davidlohr Bueso (1):
      fs/epoll: restore waking from ep_done_scan()

Dean Anderson (1):
      usb: gadget/function/f_fs string table fix for multiple languages

Dejin Zheng (1):
      PCI: xgene: Fix cfg resource mapping

Dima Chumak (2):
      net/mlx5e: Fix multipath lag activation
      net/mlx5e: Fix nullptr in add_vlan_push_action()

Dingchen (David) Zhang (1):
      drm/amd/display: add handling for hdcp2 rx id list validation

Dinghao Liu (7):
      dmaengine: tegra20: Fix runtime PM imbalance on error
      media: platform: sti: Fix runtime PM imbalance in regs_show
      media: sun8i-di: Fix runtime PM imbalance in deinterlace_start_streaming
      mfd: arizona: Fix rumtime PM imbalance on error
      iio: light: gp2ap002: Fix rumtime PM imbalance on error
      iio: proximity: pulsedlight: Fix rumtime PM imbalance on error
      PCI: tegra: Fix runtime PM imbalance in pex_ep_event_pex_rst_deassert()

Dmitry Baryshkov (2):
      drm/msm/dsi_pll_7nm: Fix variable usage for pll_lockdet_rate
      PCI: Release OF node in pci_scan_device()'s error path

Dmitry Osipenko (6):
      drm/tegra: dc: Don't set PLL clock to 0Hz
      cpuidle: tegra: Fix C7 idling state on Tegra114
      ARM: tegra: acer-a500: Rename avdd to vdda of touchscreen node
      soc/tegra: pmc: Fix completion of power-gate toggling
      soc/tegra: regulators: Fix locking up when voltage-spread is out of range
      iio: gyro: mpu3050: Fix reported temperature value

Dmitry Safonov (1):
      xfrm/compat: Cleanup WARN()s that can be user-triggered

Dmitry Vyukov (1):
      drm/vkms: fix misuse of WARN_ON

Dmytro Laktyushkin (1):
      drm/amd/display: fix dml prefetch validation

Dom Cobley (1):
      drm/vc4: crtc: Reduce PV fifo threshold on hvs4

Dominik Andreas Schorpp (1):
      USB: serial: ftdi_sio: add IDs for IDS GmbH Products

Don Brace (1):
      scsi: smartpqi: Use host-wide tag space

Dong Aisheng (1):
      PM / devfreq: Use more accurate returned new_freq as resume_freq

Dongliang Mu (2):
      NFC: nci: fix memory leak in nci_allocate_device
      misc/uss720: fix memory leak in uss720_probe

DooHyun Hwang (1):
      mmc: core: Do a power cycle when the CMD11 fails

Douglas Gilbert (1):
      HID cp2112: fix support for multiple gpiochips

Du Cheng (4):
      cfg80211: remove WARN_ON() in cfg80211_sme_connect
      net: sched: tapr: prevent cycle_time == 0 in parse_taprio_schedule
      ethernet: sun: niu: fix missing checks of niu_pci_eeprom_read()
      net: caif: remove BUG_ON(dev == NULL) in caif_xmit

Eckhart Mohr (1):
      ALSA: hda/realtek: Add quirk for Intel Clevo PCx0Dx

Eddie James (2):
      ARM: dts: aspeed: Rainier: Fix humidity sensor bus address
      hwmon: (occ) Fix poll rate limiting

Edward Cree (3):
      sfc: farch: fix TX queue lookup in TX flush done handling
      sfc: farch: fix TX queue lookup in TX event handling
      sfc: ef10: fix TX queue lookup in TX event handling

Elad Grupi (1):
      nvmet-tcp: fix a segmentation fault during io parsing error

Eli Cohen (4):
      vdpa/mlx5: Fix suspend/resume index restoration
      vdpa/mlx5: Fix wrong use of bit numbers
      vdpa/mlx5: Set err = -ENOMEM in case dma_map_sg_attrs fails
      {net,vdpa}/mlx5: Configure interface MAC into mpfs L2 table

Elia Devito (1):
      ALSA: hda/realtek: Add fixup for HP Spectre x360 15-df0xxx

Emily Deng (1):
      drm/amdgpu: Fix some unload driver issues

Emmanuel Grumbach (1):
      mac80211: clear the beacon's CRC after channel switch

Eric Auger (2):
      KVM: arm/arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST read
      KVM: arm64: Fix KVM_VGIC_V3_ADDR_TYPE_REDIST_REGION read

Eric Biggers (3):
      random: initialize ChaCha20 constants with correct endianness
      f2fs: fix error handling in f2fs_end_enable_verity()
      crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS

Eric Dumazet (13):
      net: ensure mac header is set in virtio_net_hdr_to_skb()
      sch_red: fix off-by-one checks in red_check_params()
      netfilter: nft_limit: avoid possible divide error in nft_limit_init
      gro: ensure frag0 meets IP header alignment
      inet: use bigger hash table for IP ID generation
      net/packet: remove data races in fanout operations
      ip6_vti: proper dev_{hold|put} in ndo_[un]init methods
      netfilter: nftables: avoid overflows in nft_hash_buckets()
      virtio_net: Do not pull payload in skb->head
      ip6_gre: proper dev_{hold|put} in ndo_[un]init methods
      sit: proper dev_{hold|put} in ndo_[un]init methods
      ip6_tunnel: sit: proper dev_{hold|put} in ndo_[un]init methods
      ipv6: remove extra dev_hold() for fallback tunnels

Eric Farman (1):
      vfio-ccw: Check initialized flag in cp_init()

Erwan Le Ray (14):
      serial: stm32: fix code cleaning warnings and checks
      serial: stm32: add "_usart" prefix in functions name
      serial: stm32: fix probe and remove order for dma
      serial: stm32: fix startup by enabling usart for reception
      serial: stm32: fix incorrect characters on console
      serial: stm32: fix TX and RX FIFO thresholds
      serial: stm32: fix a deadlock condition with wakeup event
      serial: stm32: fix wake-up flag handling
      serial: stm32: fix a deadlock in set_termios
      serial: stm32: fix tx dma completion, release channel
      serial: stm32: call stm32_transmit_chars locked
      serial: stm32: fix FIFO flush in startup and set_termios
      serial: stm32: add FIFO flush when port is closed
      serial: stm32: fix tx_empty condition

Eryk Brol (1):
      drm/amd/display: Check for DSC support instead of ASIC revision

Eryk Rybak (2):
      i40e: Fix kernel oops when i40e driver removes VF's
      i40e: Fix display statistics for veb_tc

Esteve Varela Colominas (1):
      platform/x86: thinkpad_acpi: Allow the FnLock LED to change state

Eugene Korenevsky (1):
      cifs: fix out-of-bound memory access when calling smb3_notify() at mount point

Evan Nimmo (1):
      xfrm: Use actual socket sk instead of skb socket for xfrm_output_resume

Evan Quan (1):
      drm/amd/pm: correct MGpuFanBoost setting

Ewan D. Milne (1):
      scsi: scsi_dh_alua: Remove check for ASC 24h in alua_rtpg()

Eyal Birger (1):
      xfrm: interface: fix ipv4 pmtu check to honor ip header df

Fabian Vogt (7):
      Input: nspire-keypad - enable interrupts only when opened
      fotg210-udc: Fix DMA on EP0 for length > max packet size
      fotg210-udc: Fix EP0 IN requests bigger than two packets
      fotg210-udc: Remove a dubious condition leading to fotg210_done
      fotg210-udc: Mask GRP2 interrupts we don't handle
      fotg210-udc: Don't DMA more than the buffer can take
      fotg210-udc: Complete OUT requests on short packets

Fabien Parent (1):
      arm64: dts: mediatek: fix reset GPIO level on pumpkin

Fabio Estevam (1):
      media: rkvdec: Remove of_match_ptr()

Fabio Pricoco (1):
      ice: Increase control queue timeout

Fabrice Gasnier (1):
      mfd: stm32-timers: Avoid clearing auto reload register

Fangzhi Zuo (1):
      drm/amd/display: Fix debugfs link_settings entry

Feilong Lin (1):
      ACPI / hotplug / PCI: Fix reference count leak in enable_slot()

Felix Fietkau (6):
      mt76: fix potential DMA mapping leak
      mt76: mt7615: fix tx skb dma unmap
      mt76: mt7915: fix tx skb dma unmap
      mt76: mt7615: fix entering driver-own state on mt7663
      net: ethernet: mtk_eth_soc: fix RX VLAN offload
      perf jevents: Fix getting maximum number of fds

Felix Kuehling (1):
      drm/amdkfd: fix build error with AMD_IOMMU_V2=m

Fenghua Yu (8):
      selftests/resctrl: Enable gcc checks to detect buffer overflows
      selftests/resctrl: Fix compilation issues for global variables
      selftests/resctrl: Fix compilation issues for other global variables
      selftests/resctrl: Clean up resctrl features check
      selftests/resctrl: Fix missing options "-n" and "-p"
      selftests/resctrl: Use resctrl/info for feature detection
      selftests/resctrl: Fix incorrect parsing of iMC counters
      selftests/resctrl: Fix checking for < 0 for unsigned values

Fengnan Chang (1):
      ext4: fix error code in ext4_commit_super

Fernando Fernandez Mancera (1):
      ethtool: fix missing NLM_F_MULTI flag when dumping

Ferry Toth (1):
      usb: dwc3: pci: Enable usb2-gadget-lpm-disable for Intel Merrifield

Filipe Manana (5):
      btrfs: fix metadata extent leak after failure to create subvolume
      btrfs: fix race between transaction aborts and fsyncs leading to use-after-free
      btrfs: fix race when picking most recent mod log operation for an old root
      btrfs: fix race leading to unpersisted data and metadata on fsync
      btrfs: release path before starting transaction when cloning inline extent

Finn Behrens (1):
      tweewide: Fix most Shebang lines

Finn Thain (1):
      m68k: mvme147,mvme16x: Don't wipe PCC timer config bits

Florent Revest (1):
      libbpf: Initialize the bpf_seq_printf parameters array field by field

Florian Fainelli (1):
      net: phy: broadcom: Only advertise EEE for supported modes

Florian Westphal (3):
      netfilter: x_tables: fix compat match/target pad out-of-bound write
      netfilter: bridge: add pre_exit hooks for ebtable unregistration
      netfilter: arp_tables: add pre_exit hook for table unregister

Francesco Ruggeri (1):
      ipv6: record frag_max_size in atomic fragments in input path

Francois Gervais (1):
      rtc: pcf85063: fallback to parent of_node

Fredrik Strupe (1):
      ARM: 9071/1: uprobes: Don't hook on thumb instructions

Frieder Schrempf (1):
      can: mcp251x: fix resume from sleep before interface was brought up

Fugang Duan (1):
      net: fec: fix the potential memory leak in fec_enet_init()

Gao Xiang (2):
      parisc: avoid a warning on u8 cast for cmpxchg on u8 pointers
      erofs: add unsupported inode i_format check

Geert Uytterhoeven (5):
      regulator: bd9571mwv: Fix AVS and DVFS voltage range
      phy: marvell: ARMADA375_USBCLUSTER_PHY should not default to y, unconditionally
      dt-bindings: media: renesas,vin: Make resets optional on R-Car Gen1
      serial: sh-sci: Fix off-by-one error in FIFO threshold register setting
      i2c: sh_mobile: Use new clock calculation formulas for RZ/G2E

Geoffrey D. Bennett (2):
      ALSA: usb-audio: scarlett2: Fix device hang with ehci-pci
      ALSA: usb-audio: scarlett2: Improve driver startup messages

George McCollister (1):
      net: hsr: fix mac_len checks

Gerd Hoffmann (3):
      drm/qxl: release shadow on shutdown
      drm/qxl: use ttm bo priorities
      Revert "drm/qxl: do not run release if qxl failed to init"

Gioh Kim (2):
      block/rnbd-clt: Fix missing a memory free when unloading the module
      RDMA/rtrs-clt: destroy sysfs after removing session from active list

Giovanni Cabiddu (1):
      crypto: qat - fix error path in adf_isr_resource_alloc()

Greg Kroah-Hartman (62):
      Linux 5.10.29
      Linux 5.10.30
      Linux 5.10.31
      Linux 5.10.32
      Linux 5.10.33
      Linux 5.10.34
      Linux 5.10.35
      Linux 5.10.36
      Linux 5.10.37
      Revert "iommu/vt-d: Remove WO permissions on second-level paging entries"
      Revert "iommu/vt-d: Preset Access/Dirty bits for IOVA over FL"
      kobject_uevent: remove warning in init_uevent_argv()
      Linux 5.10.38
      Linux 5.10.39
      Revert "ALSA: sb8: add a check for request_region"
      Revert "rapidio: fix a NULL pointer dereference when create_workqueue() fails"
      Revert "serial: mvebu-uart: Fix to avoid a potential NULL pointer dereference"
      Revert "video: hgafb: fix potential NULL pointer dereference"
      Revert "net: stmicro: fix a missing check of clk_prepare"
      Revert "leds: lp5523: fix a missing check of return value of lp55xx_read"
      Revert "hwmon: (lm80) fix a missing check of bus read in lm80 probe"
      Revert "video: imsttfb: fix potential NULL pointer dereferences"
      Revert "ecryptfs: replace BUG_ON with error handling code"
      Revert "scsi: ufs: fix a missing check of devm_reset_control_get"
      Revert "gdrom: fix a memory leak bug"
      cdrom: gdrom: initialize global variable at init time
      Revert "media: rcar_drif: fix a memory disclosure"
      Revert "rtlwifi: fix a potential NULL pointer dereference"
      Revert "qlcnic: Avoid potential NULL pointer dereference"
      Revert "niu: fix missing checks of niu_pci_eeprom_read"
      net: rtlwifi: properly check for alloc_workqueue() failure
      Linux 5.10.40
      Linux 5.10.41
      kgdb: fix gcc-11 warnings harder
      Revert "crypto: cavium/nitrox - add an error message to explain the failure of pci_request_mem_regions"
      Revert "media: usb: gspca: add a missed check for goto_low_power"
      Revert "ALSA: sb: fix a missing check of snd_ctl_add"
      Revert "serial: max310x: pass return value of spi_register_driver"
      Revert "net: fujitsu: fix a potential NULL pointer dereference"
      Revert "net/smc: fix a NULL pointer dereference"
      Revert "net: caif: replace BUG_ON with recovery code"
      Revert "char: hpet: fix a missing check of ioremap"
      Revert "ALSA: gus: add a check of the status of snd_ctl_add"
      Revert "ALSA: usx2y: Fix potential NULL pointer dereference"
      Revert "isdn: mISDNinfineon: fix potential NULL pointer dereference"
      Revert "ath6kl: return error code in ath6kl_wmi_set_roam_lrssi_cmd()"
      Revert "isdn: mISDN: Fix potential NULL pointer dereference of kzalloc"
      Revert "dmaengine: qcom_hidma: Check for driver register failure"
      Revert "libertas: add checks for the return value of sysfs_create_group"
      libertas: register sysfs groups properly
      Revert "ASoC: cs43130: fix a NULL pointer dereference"
      ASoC: cs43130: handle errors in cs43130_probe() properly
      Revert "media: dvb: Add check on sp8870_readreg"
      Revert "media: gspca: mt9m111: Check write_bridge for timeout"
      Revert "media: gspca: Check the return value of write_bridge for timeout"
      media: gspca: properly check for errors in po1030_probe()
      Revert "net: liquidio: fix a NULL pointer dereference"
      Revert "brcmfmac: add a check for the status of usb_register"
      brcmfmac: properly check for bus register errors
      i915: fix build warning in intel_dp_get_link_status()
      Revert "Revert "ALSA: usx2y: Fix potential NULL pointer dereference""
      Linux 5.10.42

Grzegorz Siwik (1):
      i40e: Fix parameters in aq_get_phy_register()

Guangbin Huang (2):
      net: hns3: clear VF down state bit before request link status
      net: hns3: remediate a potential overflow risk of bd_num_list

Guangqing Zhu (2):
      power: supply: cpcap-battery: fix invalid usage of list cursor
      thermal/drivers/tsens: Fix missing put_device error

Guchun Chen (3):
      drm/amdgpu: fix NULL pointer dereference
      drm/amdgpu: update gc golden setting for Navi12
      drm/amdgpu: update sdma golden setting for Navi12

Guennadi Liakhovetski (1):
      ASoC: SOF: Intel: HDA: fix core status verification

Guenter Roeck (1):
      pcnet32: Use pci_resource_len to validate PCI resource

Gulam Mohamed (1):
      block: fix a race between del_gendisk and BLKRRPART

Guochun Mao (1):
      ubifs: Only check replay with inode type to judge if inode linked

Gustavo A. R. Silva (6):
      mtd: physmap: physmap-bt1-rom: Fix unintentional stack access
      sctp: Fix out-of-bounds warning in sctp_process_asconf_param()
      flow_dissector: Fix out-of-bounds warning in __skb_flow_bpf_to_target()
      ethtool: ioctl: Fix out-of-bounds warning in store_link_ksettings_for_user()
      wl3501_cs: Fix out-of-bounds warnings in wl3501_send_pkt
      wl3501_cs: Fix out-of-bounds warnings in wl3501_mgmt_join

Gustavo Pimentel (1):
      dmaengine: dw-edma: Fix crash on loading/unloading driver

Hanna Hawa (2):
      pinctrl: pinctrl-single: remove unused parameter
      pinctrl: pinctrl-single: fix pcs_pin_dbg_show() when bits_per_mux is not zero

Hannes Reinecke (1):
      nvme: retrigger ANA log update if group descriptor isn't found

Hans Verkuil (5):
      media: gspca/sq905.c: fix uninitialized variable
      media: vivid: update EDID
      media: gscpa/stv06xx: fix memory leak
      media: v4l2-ctrls: fix reference to freed memory
      media: v4l2-ctrls.c: fix race condition in hdl->requests list

Hans de Goede (18):
      ASoC: intel: atom: Stop advertising non working S24LE support
      extcon: arizona: Fix some issues when HPDET IRQ fires after the jack has been unplugged
      extcon: arizona: Fix various races on driver unbind
      usb: roles: Call try_module_get() from usb_role_switch_find_by_fwnode()
      misc: lis3lv02d: Fix false-positive WARN on various HP models
      HID: lenovo: Use brightness_set_blocking callback for setting LEDs brightness
      HID: lenovo: Fix lenovo_led_set_tp10ubkbd() error handling
      HID: lenovo: Check hid_get_drvdata() returns non NULL in lenovo_event()
      HID: lenovo: Map mic-mute button to KEY_F20 instead of KEY_MICMUTE
      ASoC: Intel: bytcr_rt5640: Enable jack-detect support on Asus T100TAF
      ASoC: Intel: bytcr_rt5640: Add quirk for the Chuwi Hi8 tablet
      ASoC: rt5670: Add a quirk for the Dell Venue 10 Pro 5055
      Input: elants_i2c - do not bind to i2c-hid compatible ACPI instantiated devices
      Input: silead - add workaround for x86 BIOS-es which bring the chip up in a stuck state
      gpiolib: acpi: Add quirk to ignore EC wakeups on Dell Venue 10 Pro 5055
      platform/x86: intel_int0002_vgpio: Only call enable_irq_wake() when using s2idle
      platform/x86: dell-smbios-wmi: Fix oops on rmmod dell_smbios
      platform/x86: touchscreen_dmi: Add info for the Chuwi Hi10 Pro (CWI529) tablet

Hansem Ro (1):
      Input: ili210x - add missing negation for touch indication on ili210x

Hao Chen (1):
      net: hns3: fix for vxlan gpe tx checksum bug

Harald Freudenberger (2):
      s390/zcrypt: fix zcard and zqueue hot-unplug memleak
      s390/archrandom: add parameter check for s390_arch_random_generate

Harry Wentland (1):
      drm/amd/display: Reject non-zero src_y and src_x for video planes

Hauke Mehrtens (1):
      mtd: rawnand: mtk: Fix WAITRDY break condition and timeout

He Ying (3):
      irqchip/gic-v3: Do not enable irqs when handling spurious interrups
      cpuidle: Fix ARM_QCOM_SPM_CPUIDLE configuration
      firmware: qcom-scm: Fix QCOM_SCM configuration

Heiko Carstens (2):
      init/Kconfig: make COMPILE_TEST depend on !S390
      KVM: s390: fix guarded storage control register handling

Heiner Kallweit (2):
      r8169: tweak max read request size for newer chips also in jumbo mtu mode
      r8169: don't advertise pause in jumbo mode

Heinz Mauelshagen (1):
      dm raid: fix inconclusive reshape layout on fast raid4/5/6 table reload sequences

Helge Deller (1):
      parisc: parisc-agp requires SBA IOMMU driver

Hemant Kumar (1):
      usb: gadget: Fix double free of device descriptor pointers

Heming Zhao (1):
      md-cluster: fix use-after-free issue when removing rdev

Hillf Danton (1):
      tty: n_gsm: check error while registering tty devices

Hoang Le (2):
      tipc: convert dest node's address to network order
      Revert "net:tipc: Fix a double free in tipc_sk_mcast_rcv"

Hou Pu (3):
      nvmet: return proper error code from discovery ctrl
      nvmet: use new ana_log_size instead the old one
      nvmet-tcp: fix inline data size comparison in nvmet_tcp_queue_response

Hristo Venev (2):
      net: sit: Unregister catch-all devices
      net: ip6_tunnel: Unregister catch-all devices

Hsin-Yi Wang (1):
      misc: eeprom: at24: check suspend status before disable regulator

Huang Pei (2):
      MIPS: fix local_irq_{disable,enable} in asmmacro.h
      MIPS: loongson64: fix bug when PAGE_SIZE > 16KB

Hubert Streidl (1):
      mfd: da9063: Support SMBus and I2C mode

Hui Tang (1):
      crypto: qat - fix unmap invalid dma address

Hui Wang (4):
      ALSA: hda: generic: change the DAC ctl name for LO+SPK or LO+HP
      ALSA: hda/realtek: reset eapd coeff to default value for alc287
      ALSA: hda/realtek: the bass speaker can't output sound on Yoga 9i
      ALSA: hda/realtek: Headphone volume is controlled by Front mixer

Hyeongseok Kim (1):
      exfat: fix erroneous discard when clear cluster bit

Håkon Bugge (1):
      RDMA/core: Fix corrupted SL on passive side

Ian Abbott (1):
      staging: comedi: tests: ni_routes_test: Fix compilation error

Ido Schimmel (2):
      mlxsw: spectrum: Fix ECN marking in tunnel decapsulation
      mlxsw: spectrum_mr: Update egress RIF list before route's action

Igor Matheus Andrade Torrente (1):
      video: hgafb: fix potential NULL pointer dereference

Igor Pylypiv (1):
      scsi: pm80xx: Increase timeout for pm80xx mpi_uninit_check()

Ilya Leoshkevich (1):
      selftests: fix prepending $(OUTPUT) to $(TEST_PROGS)

Ilya Lipnitskiy (4):
      of: property: fw_devlink: do not link ".*,nr-gpios"
      MIPS: pci-mt7620: fix PLL lock check
      MIPS: pci-rt2880: fix slot 0 configuration
      MIPS: pci-legacy: stop using of_pci_range_to_resource

Ilya Maximets (1):
      openvswitch: fix send of uninitialized stack memory in ct limit reply

Ingo Molnar (1):
      x86/platform/uv: Fix !KEXEC build failure

J. Bruce Fields (1):
      nfsd: ensure new clients break delegations

Jacek Bułatek (1):
      ice: Fix for dereference of NULL pointer

Jack Pham (3):
      usb: dwc3: gadget: Free gadget structure only after freeing endpoints
      usb: dwc3: gadget: Enable suspend events
      usb: typec: ucsi: Retrieve all the PDOs instead of just the first 4

Jack Qiu (1):
      fs: direct-io: fix missing sdio->boundary

Jacob Pan (1):
      iommu/vt-d: Reject unsupported page request modes

Jae Hyun Yoo (2):
      Revert "i3c master: fix missing destroy_workqueue() on error in i3c_master_register"
      media: aspeed: fix clock handling logic

Jaegeuk Kim (1):
      dm verity fec: fix misaligned RS roots IO

Jakub Kicinski (1):
      ethtool: pause: make sure we init driver stats

James Bottomley (2):
      KEYS: trusted: Fix TPM reservation for seal/unseal
      security: keys: trusted: fix TPM2 authorizations

James Smart (7):
      scsi: lpfc: Fix incorrect dbde assignment when building target abts wqe
      scsi: lpfc: Fix pt2pt connection does not recover after LOGO
      scsi: lpfc: Fix crash when a REG_RPI mailbox fails triggering a LOGO response
      scsi: lpfc: Fix error handling for mailboxes completed in MBX_POLL mode
      scsi: lpfc: Remove unsupported mbox PORT_CAPABILITIES logic
      scsi: lpfc: Fix illegal memory access on Abort IOCBs
      nvme-fc: clear q_live at beginning of association teardown

James Zhu (4):
      drm/amdgpu/vcn1: add cancel_delayed_work_sync before power gate
      drm/amdgpu/vcn2.0: add cancel_delayed_work_sync before power gate
      drm/amdgpu/vcn2.5: add cancel_delayed_work_sync before power gate
      drm/amdgpu/jpeg2.0: add cancel_delayed_work_sync before power gate

Jan Beulich (3):
      xen-pciback: redo VF placement in the virtual topology
      xen-pciback: reconfigure also from backend watch handler
      x86/Xen: swap NX determination and GDT setup on BSP

Jan Glauber (1):
      md: Fix missing unused status line of /proc/mdstat

Jan Kara (3):
      ext4: annotate data race in start_this_handle()
      ext4: annotate data race in jbd2_journal_dirty_metadata()
      ext4: Fix occasional generic/418 failure

Jan Kratochvil (1):
      perf unwind: Fix separate debug info files when using elfutils' libdw's unwinder

Jane Chu (1):
      mm/memory-failure: unnecessary amount of unmapping

Jann Horn (1):
      tty: Remove dead termiox code

Jared Baldridge (1):
      drm: Added orientation quirk for OneGX1 Pro

Jarkko Sakkinen (2):
      tpm, tpm_tis: Extend locality handling to TPM2 in tpm_tis_gen_interrupt()
      tpm, tpm_tis: Reserve locality in tpm_tis_resume()

Jaroslaw Gawin (1):
      i40e: fix the restart auto-negotiation after FEC modified

Jason Gunthorpe (5):
      vfio: Depend on MMU
      vfio/fsl-mc: Re-order vfio_fsl_mc_probe()
      vfio/pci: Move VGA and VF initialization to functions
      vfio/pci: Re-order vfio_pci_probe()
      vfio/mdev: Do not allow a mdev_type to have a NULL parent pointer

Jason Wang (1):
      vhost-vdpa: fix vm_flags for virtqueue doorbell mapping

Jason Xing (1):
      i40e: fix the panic when running bpf in xdpdrv mode

Javed Hasan (1):
      scsi: qedf: Add pointer checks in qedf_update_link_speed()

Jean Delvare (1):
      i2c: i801: Don't generate an interrupt on bus reset

Jeff Layton (4):
      ceph: fix inode leak on getattr error in __fh_to_dentry
      ceph: fix fscache invalidation
      ceph: don't clobber i_snap_caps on non-I_NEW inode
      ceph: don't allow access to MDS-private inodes

Jeffrey Hugo (2):
      bus: mhi: core: Fix check for syserr at power_up
      bus: mhi: core: Sanity check values from remote device before use

Jeffrey Mitchell (1):
      ecryptfs: fix kernel panic with null dev_name

Jens Axboe (1):
      io_uring: don't mark S_ISBLK async work as unbounded

Jeremy Szu (4):
      ALSA: hda/realtek: fix mute/micmute LEDs for HP 855 G8
      ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook G8
      ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook Fury 15 G8
      ALSA: hda/realtek: fix mute/micmute LEDs and speaker for HP Zbook Fury 17 G8

Jernej Skrabec (2):
      arm64: dts: allwinner: h6: beelink-gs1: Remove ext. 32 kHz osc reference
      media: cedrus: Fix H265 status definitions

Jerome Forissier (1):
      tee: optee: do not check memref size on return from Secure World

Jesse Brandeburg (1):
      ixgbe: fix large MTU request from VF

Jia Zhou (1):
      ALSA: core: remove redundant spin_lock pair in snd_card_disconnect

Jia-Ju Bai (7):
      interconnect: core: fix error return code of icc_link_destroy()
      HID: alps: fix error return code in alps_input_configured()
      mtd: maps: fix error return code of physmap_flash_remove()
      media: platform: sunxi: sun6i-csi: fix error return code of sun6i_video_start_streaming()
      thermal: thermal_of: Fix error return code of thermal_of_populate_bind_params()
      rpmsg: qcom_glink_native: fix error return code of qcom_glink_rx_data()
      kernel: kexec_file: fix error return code of kexec_calculate_store_digests()

Jian Shen (2):
      net: hns3: add check for HNS3_NIC_STATE_INITED in hns3_reset_notify_up_enet()
      net: hns3: put off calling register_netdev() until client initialize complete

Jianbo Liu (1):
      net/mlx5: Set reformat action when needed for termination rules

Jianxiong Gao (9):
      driver core: add a min_align_mask field to struct device_dma_parameters
      swiotlb: add a IO_TLB_SIZE define
      swiotlb: factor out an io_tlb_offset helper
      swiotlb: factor out a nr_slots helper
      swiotlb: clean up swiotlb_tbl_unmap_single
      swiotlb: refactor swiotlb_tbl_map_single
      swiotlb: don't modify orig_addr in swiotlb_tbl_sync_single
      swiotlb: respect min_align_mask
      nvme-pci: set min_align_mask

Jiapeng Zhong (1):
      HID: wacom: Assign boolean values to a bool variable

Jiaran Zhang (1):
      net: hns3: fix incorrect resp_msg issue

Jim Ma (1):
      tls splice: check SPLICE_F_NONBLOCK instead of MSG_DONTWAIT

Jim Mattson (1):
      perf/x86/kvm: Fix Broadwell Xeon stepping in isolation_ucodes[]

Jin Yao (1):
      perf report: Fix wrong LBR block sorting

Jingwen Chen (1):
      drm/amd/amdgpu: fix refcount leak

Jinzhou Su (1):
      drm/amdgpu: Add mem sync flag for IB allocated by SA

Jiri Kosina (3):
      iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_enqueue_hcmd()
      iwlwifi: Fix softirq/hardirq disabling in iwl_pcie_gen2_enqueue_hcmd()
      Bluetooth: avoid deadlock between hci_dev->lock and socket lock

Jiri Olsa (6):
      tools/resolve_btfids: Build libbpf and libsubcmd in separate directories
      tools/resolve_btfids: Check objects before removing
      tools/resolve_btfids: Set srctree variable unconditionally
      kbuild: Add resolve_btfids clean to root clean target
      kbuild: Do not clean resolve_btfids if the output does not exist
      perf tools: Fix dynamic libbpf link

Jisheng Zhang (1):
      arm64: kprobes: Restore local irqflag if kprobes is cancelled

Joakim Zhang (1):
      net: stmmac: Fix MAC WoL not working if PHY does not support WoL

Joe Thornber (2):
      dm persistent data: packed struct should have an aligned() attribute too
      dm space map common: fix division bug in sm_ll_find_free_block()

Joel Stanley (1):
      jffs2: Hook up splice_write callback

Joerg Roedel (5):
      x86/sev: Do not require Hypervisor CPUID bit for SEV guests
      x86/sev-es: Don't return NULL from sev_es_get_ghcb()
      x86/sev-es: Use __put_user()/__get_user() for data accesses
      x86/sev-es: Forward page-faults which happen during emulation
      x86/boot/compressed/64: Check SEV encryption in the 32-bit boot-path

Johan Hovold (22):
      net: hso: fix NULL-deref on disconnect regression
      Revert "USB: cdc-acm: fix rounding error in TIOCSSERIAL"
      tty: moxa: fix TIOCSSERIAL jiffies conversions
      tty: amiserial: fix TIOCSSERIAL permission check
      USB: serial: usb_wwan: fix TIOCSSERIAL jiffies conversions
      staging: greybus: uart: fix TIOCSSERIAL jiffies conversions
      USB: serial: ti_usb_3410_5052: fix TIOCSSERIAL permission check
      staging: fwserial: fix TIOCSSERIAL jiffies conversions
      tty: moxa: fix TIOCSSERIAL permission check
      staging: fwserial: fix TIOCSSERIAL permission check
      staging: fwserial: fix TIOCSSERIAL implementation
      staging: fwserial: fix TIOCGSERIAL implementation
      staging: greybus: uart: fix unprivileged TIOCCSERIAL
      USB: cdc-acm: fix unprivileged TIOCCSERIAL
      USB: cdc-acm: fix TIOCGSERIAL implementation
      tty: actually undefine superseded ASYNC flags
      tty: fix return value for unsupported ioctls
      tty: fix return value for unsupported termiox ioctls
      serial: core: return early on unsupported ioctls
      net: hso: fix control-request directions
      USB: trancevibrator: fix control-request direction
      net: hso: bail out on interrupt URB allocation failure

Johannes Berg (15):
      iwlwifi: pcie: properly set LTR workarounds on 22000 devices
      nl80211: fix beacon head validation
      nl80211: fix potential leak of ACL params
      cfg80211: check S1G beacon compat element length
      mac80211: fix TXQ AC confusion
      cfg80211: scan: drop entry from hidden_list on overflow
      mac80211: bail out if cipher schemes are invalid
      iwlwifi: pcie: make cfg vs. trans_cfg more robust
      um: Mark all kernel symbols as local
      um: Disable CONFIG_GCOV with MODULES
      mac80211: drop A-MSDUs on old ciphers
      mac80211: add fragment cache to sta_info
      mac80211: check defrag PN against current frame
      mac80211: prevent attacks on TKIP/WEP as well
      mac80211: do not accept/forward invalid EAPOL frames

John Fastabend (2):
      bpf, sockmap: Fix sk->prot unhash op reset
      bpf, sockmap: Fix incorrect fwd_alloc accounting

John Millikin (1):
      x86/build: Propagate $(CLANG_FLAGS) to $(REALMODE_FLAGS)

John Paul Adrian Glaubitz (2):
      ia64: tools: remove inclusion of ia64-specific version of errno.h header
      ia64: tools: remove duplicate definition of ia64_mf() on ia64

Jolly Shah (1):
      scsi: libsas: Reset num_scatter if libata marks qc as NODATA

Jonas Holmberg (1):
      ALSA: aloop: Fix initialization of controls

Jonas Witschel (1):
      ALSA: hda/realtek: fix mute/micmute LEDs for HP ProBook 445 G7

Jonathan Cameron (7):
      iio:accel:adis16201: Fix wrong axis assignment that prevents loading
      iio:adc:ad7476: Fix remove handling
      iio: adc: ad7768-1: Fix too small buffer passed to iio_push_to_buffers_with_timestamp()
      iio: adc: ad7124: Fix missbalanced regulator enable / disable on error.
      iio: adc: ad7124: Fix potential overflow due to non sequential channel numbers
      iio: adc: ad7923: Fix undersized rx buffer.
      iio: adc: ad7192: Avoid disabling a clock that was never enabled.

Jonathan Kim (1):
      drm/amdgpu: mask the xgmi number of hops reported from psp to kfd

Jonathan McDowell (1):
      net: stmmac: Set FIFO sizes for ipq806x

Jonathon Reinhart (3):
      net: Make tcp_allowed_congestion_control readonly in non-init netns
      netfilter: conntrack: Make global sysctls readonly in non-init netns
      net: Only allow init netns to set default tcp cong to a restricted algo

Jordan Niethe (1):
      powerpc/64s: Fix pte update for kernel memory on radix

Josef Bacik (5):
      btrfs: do proper error handling in create_reloc_root
      btrfs: do proper error handling in btrfs_update_reloc_root
      btrfs: convert logic BUG_ON()'s in replace_path to ASSERT()'s
      btrfs: avoid RCU stalls while running delayed iputs
      btrfs: do not BUG_ON in link_to_fixup_dir

Jouni Roivas (1):
      hfsplus: prevent corruption in shrinking truncate

Juergen Gross (2):
      xen/events: fix setting irq affinity
      xen/gntdev: fix gntdev_mmap() error exit path

Julian Braha (2):
      lib: fix kconfig dependency on ARCH_WANT_FRAME_POINTERS
      media: drivers: media: pci: sta2x11: fix Kconfig dependency on GPIOLIB

Julian Wiedmann (1):
      net/smc: remove device from smcd_dev_list after failed device_add()

Jussi Maki (1):
      bpf: Set mac_len in bpf_skb_change_head

KP Singh (1):
      libbpf: Add explicit padding to btf_dump_emit_type_decl_opts

Kai Stuhlemmer (ebee Engineering) (1):
      mtd: rawnand: atmel: Update ecc_stats.corrected counter

Kai Vehmanen (1):
      ALSA: hda/hdmi: fix race in handling acomp ELD notification at resume

Kai-Heng Feng (3):
      USB: Add LPM quirk for Lenovo ThinkPad USB-C Dock Gen2 Ethernet
      drm/radeon/dpm: Disable sclk switching on Oland when two 4K 60Hz monitors are connected
      platform/x86: hp_accel: Avoid invoking _INI to speed up resume

Kailang Yang (1):
      ALSA: hda/realtek - Headset Mic issue on HP platform

Kaixu Xia (1):
      cxgb4: Fix the -Wmisleading-indentation warning

Kalyan Thota (1):
      drm/msm/disp/dpu1: icc path needs to be set before dpu runtime resume

Kamal Heib (1):
      RDMA/qedr: Fix kernel panic when trying to access recv_cq

Kan Liang (1):
      perf/x86/intel/uncore: Remove uncore extra PCI dev HSWEP_PCI_PCU_3

Karthikeyan Kathirvel (1):
      mac80211: choose first enabled channel for monitor

Kees Cook (4):
      drm/radeon: Fix off-by-one power_state index heap overwrite
      drm/radeon: Avoid power table parsing memory leaks
      debugfs: Make debugfs_allow RO after init
      proc: Check /proc/$pid/attr/ writes against file opener

Kefeng Wang (1):
      riscv: Fix spelling mistake "SPARSEMEM" to "SPARSMEM"

Keith Busch (2):
      nvmet: remove unsupported command noise
      nvme-tcp: rerun io_work if req_list is not empty

Kenneth Feng (1):
      drm/amd/pm: fix workload mismatch on vega10

Kenta.Tada@sony.com (1):
      seccomp: Fix CONFIG tests for Seccomp_filters

Kevin Barnett (1):
      scsi: smartpqi: Add new PCI IDs

Kevin Wang (1):
      drm/amdkfd: correct sienna_cichlid SDMA RLC register offset error

Kiran Gunda (1):
      backlight: qcom-wled: Fix FSC update issue for WLED5

Kishon Vijay Abraham I (7):
      PCI: keystone: Let AM65 use the pci_ops defined in pcie-designware-host.c
      phy: cadence: Sierra: Fix PHY power_on sequence
      phy: ti: j721e-wiz: Invoke wiz_init() before of_platform_device_create()
      phy: ti: j721e-wiz: Delete "clk_div_sel" clk provider during cleanup
      PCI: endpoint: Make *_get_first_free_bar() take into account 64 bit BAR
      PCI: endpoint: Add helper API to get the 'next' unreserved BAR
      PCI: endpoint: Make *_free_bar() to return error codes on failure

Konrad Dybcio (1):
      drm/msm/adreno: a5xx_power: Don't apply A540 lm_setup to other GPUs

Krzysztof Goreczny (1):
      ice: prevent ice_open and ice_stop during reset

Krzysztof Kozlowski (14):
      clk: socfpga: fix iomem pointer cast on 64-bit
      ARM: dts: exynos: correct fuel gauge interrupt trigger level on GT-I9100
      ARM: dts: exynos: correct fuel gauge interrupt trigger level on Midas family
      ARM: dts: exynos: correct MUIC interrupt trigger level on Midas family
      ARM: dts: exynos: correct PMIC interrupt trigger level on Midas family
      ARM: dts: exynos: correct PMIC interrupt trigger level on Odroid X/U3 family
      ARM: dts: exynos: correct PMIC interrupt trigger level on SMDK5250
      ARM: dts: exynos: correct PMIC interrupt trigger level on Snow
      ARM: dts: s5pv210: correct fuel gauge interrupt trigger level on Fascinate family
      memory: renesas-rpc-if: fix possible NULL pointer dereference of resource
      memory: samsung: exynos5422-dmc: handle clk_set_parent() failure
      ASoC: simple-card: fix possible uninitialized single_cpu local variable
      pinctrl: samsung: use 'int' for register masks in Exynos
      i2c: s3c2410: fix possible NULL pointer deref on read message after write

Kumar Kartikeya Dwivedi (1):
      net: sched: bump refcount for new action in ACT replace mode

Kunihiko Hayashi (2):
      ARM: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E
      arm64: dts: uniphier: Change phy-mode to RGMII-ID to enable delay pins for RTL8211E

Kuninori Morimoto (2):
      ASoC: rsnd: call rsnd_ssi_master_clk_start() from rsnd_ssi_init()
      ASoC: rsnd: check all BUSIF status when error

Kuogee Hsieh (1):
      drm/msm/dp: initialize audio_comp when audio starts

Kurt Kanzenbach (1):
      net: hsr: Reset MAC header for Tx path

Lad Prabhakar (2):
      media: i2c: imx219: Move out locking/unlocking of vflip and hflip controls from imx219_set_stream
      media: i2c: imx219: Balance runtime PM use-count

Lai Jiangshan (1):
      KVM/VMX: Invoke NMI non-IST entry instead of IST entry

Lang Yu (1):
      drm/amd/amdgpu: fix a potential deadlock in gpu reset

Lars-Peter Clausen (1):
      iio: inv_mpu6050: Fully validate gyro and accel scale writes

Laurent Pinchart (3):
      dmaengine: xilinx: dpdma: Fix descriptor issuing on video group
      dmaengine: xilinx: dpdma: Fix race condition in done IRQ
      media: imx: capture: Return -EPIPE from __capture_legacy_try_fmt()

Lee Gibson (1):
      qtnfmac: Fix possible buffer overflow in qtnf_event_handle_external_auth

Lee Jones (1):
      drm/amd/display/dc/dce/dce_aux: Remove duplicate line causing 'field overwritten' issue

Len Brown (1):
      Revert "tools/power turbostat: adjust for temperature offset"

Leo Yan (5):
      perf auxtrace: Fix potential NULL pointer dereference
      perf tools: Change fields type in perf_record_time_conv
      perf jit: Let convert_timestamp() to be backwards-compatible
      perf session: Add swap operation for event TIME_CONV
      locking/lockdep: Correct calling tracepoints

Leon Romanovsky (5):
      RDMA/addr: Be strict with gid size
      RDMA/siw: Properly check send and receive CQ pointers
      RDMA/siw: Release xarray entry
      RDMA/core: Prevent divide-by-zero error triggered by the user
      RDMA/rxe: Clear all QP fields if creation failed

Li Huafei (1):
      ima: Fix the error code for restoring the PCR value

Liam Howlett (1):
      m68k: Add missing mmap_read_lock() to sys_cacheflush()

Lijun Pan (3):
      ibmvnic: avoid calling napi_disable() twice
      ibmvnic: remove duplicate napi_schedule call in do_reset function
      ibmvnic: remove duplicate napi_schedule call in open function

Like Xu (1):
      perf/x86: Avoid touching LBR_TOS MSR for Arch LBR

Liming Sun (1):
      platform/mellanox: mlxbf-tmfifo: Fix a memory barrier issue

Lin Ma (1):
      bluetooth: eliminate the potential race condition when removing the HCI controller

Lingutla Chandrasekhar (1):
      sched/fair: Ignore percpu threads for imbalance pulls

Linus Lüssing (1):
      net: bridge: mcast: fix broken length + header check for MRDv6 Adv.

Linus Torvalds (3):
      readdir: make sure to verify directory entry for legacy interfaces too
      Fix misc new gcc warnings
      drm/i915/display: fix compiler warning about array overrun

Linus Walleij (3):
      ARM: dts: ux500: Fix up TVK R3 sensors
      drm/mcde/panel: Inverse misunderstood flag
      net: ethernet: ixp4xx: Set the DMA masks explicitly

Liu Jian (1):
      bpftool: Add sock_release help info for cgroup attach/prog load command

Liu Ying (1):
      media: docs: Fix data organization of MEDIA_BUS_FMT_RGB101010_1X30

Loic Poulain (1):
      net: qrtr: Fix memory leak on qrtr_tx_wait failure

Longfang Liu (1):
      crypto: hisilicon/sec - fixes a printing error

Lorenz Bauer (1):
      bpf: link: Refuse non-O_RDWR flags in BPF_OBJ_GET

Lorenzo Bianconi (2):
      mt76: mt7915: fix aggr len debugfs node
      mt76: mt7615: fix mib stats counter reporting to mac80211

Lu Baolu (9):
      iommu/vt-d: Don't set then clear private data in prq_event_thread()
      iommu/vt-d: Report right snoop capability when using FL for IOVA
      iommu/vt-d: Report the right page fault address
      iommu/vt-d: Preset Access/Dirty bits for IOVA over FL
      iommu/vt-d: Remove WO permissions on second-level paging entries
      iommu/vt-d: Invalidate PASID cache when root/context entry changed
      iommu/vt-d: Preset Access/Dirty bits for IOVA over FL
      iommu/vt-d: Remove WO permissions on second-level paging entries
      iommu/vt-d: Use user privilege for RID2PASID translation

Luca Ceresoli (1):
      fpga: fpga-mgr: xilinx-spi: fix error messages on -EPROBE_DEFER

Luca Coelho (1):
      iwlwifi: fix 11ax disabled bit in the regulatory capability flags

Luca Fancellu (1):
      xen/evtchn: Change irq_info lock to raw_spinlock_t

Lucas Stankus (1):
      staging: iio: cdc: ad7746: avoid overwrite of num_channels

Ludovic Desroches (1):
      ARM: dts: at91: change the key code of the gpio key

Ludovic Senecaux (1):
      netfilter: conntrack: Fix gre tunneling over ipv6

Luis Henriques (1):
      virtiofs: fix memory leak in virtio_fs_probe()

Luiz Augusto von Dentz (1):
      Bluetooth: SMP: Fail if remote and local public keys are identical

Lukasz Bartosik (2):
      clk: fix invalid usage of list cursor in register
      clk: fix invalid usage of list cursor in unregister

Lukasz Luba (2):
      thermal/core/fair share: Lock the thermal zone while looping over instances
      PM / devfreq: Unlock mutex and free devfreq struct in error path

Lukasz Majczak (1):
      ASoC: Intel: kbl_da7219_max98927: Fix kabylake_ssp_fixup function

Luke D Jones (1):
      ALSA: hda/realtek: GA503 use same quirks as GA401

Lv Yunlong (21):
      ethernet/netronome/nfp: Fix a use after free in nfp_bpf_ctrl_msg_rx
      drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit
      ethernet: myri10ge: Fix a use after free in myri10ge_sw_tso
      net:tipc: Fix a double free in tipc_sk_mcast_rcv
      net/rds: Fix a use after free in rds_message_map_pages
      dmaengine: Fix a double free in dma_async_device_register
      gpu/xen: Fix a use after free in xen_drm_drv_init
      ALSA: emu8000: Fix a use after free in snd_emu8000_create_mixer
      ALSA: sb: Fix two use after free in snd_sb_qsound_build
      mtd: rawnand: gpmi: Fix a double free in gpmi_nand_init
      crypto: qat - Fix a double free in adf_create_ring
      drivers/block/null_blk/main: Fix a double free in null_init.
      IB/isert: Fix a use after free in isert_connect_request
      mwl8k: Fix a double Free in mwl8k_probe_hw
      ath10k: Fix a use after free in ath10k_htc_send_bundle
      net:emac/emac-mac: Fix a use after free in emac_mac_tx_buf_send
      RDMA/siw: Fix a use after free in siw_alloc_mr
      RDMA/bnxt_re: Fix a double free in bnxt_qplib_alloc_res
      net:nfc:digital: Fix a double free in digital_tg_recv_dep_req
      ethernet:enic: Fix a use after free bug in enic_hard_start_xmit
      drm/i915/gt: Fix a double free in gen8_preallocate_top_level_pdp

Maciej W. Rozycki (9):
      x86/build: Disable HIGHMEM64G selection for M486SX
      FDDI: defxx: Bail out gracefully with unassigned PCI resource for CSR
      FDDI: defxx: Make MMIO the configuration default except for EISA
      MIPS: Reinstate platform `__div64_32' handler
      MIPS: Avoid DIVU in `__div64_32' is result would be zero
      MIPS: Avoid handcoded DIVU in `__div64_32' altogether
      vgacon: Record video mode changes with VT_RESIZEX
      vt_ioctl: Revert VT_RESIZEX parameter handling removal
      vt: Fix character height handling with VT_RESIZEX

Maciej Żenczykowski (2):
      net-ipv6: bugfix - raw & sctp - switch to ipv6_can_nonlocal_bind()
      net: fix nla_strcmp to handle more then one trailing null character

Magnus Karlsson (2):
      i40e: fix broken XDP support
      samples/bpf: Consider frame size in tx_only of xdpsock sample

Mahesh Salgaonkar (1):
      powerpc/eeh: Fix EEH handling for hugepages in ioremap space.

Manivannan Sadhasivam (3):
      mtd: Handle possible -EPROBE_DEFER from parse_mtd_partitions()
      mtd: rawnand: qcom: Return actual error code instead of -ENODEV
      ARM: 9075/1: kernel: Fix interrupted SMC calls

Mans Rullgard (1):
      ARM: dts: am33xx: add aliases for mmc interfaces

Maor Gottlieb (3):
      RDMA/mlx5: Fix drop packet rule in egress table
      RDMA/mlx5: Recover from fatal event in dual port mode
      RDMA/mlx5: Fix query DCT via DEVX

Marc Kleine-Budde (3):
      can: mcp251x: fix support for half duplex SPI host controllers
      can: mcp251xfd: mcp251xfd_probe(): add missing can_rx_offload_del() in error path
      can: m_can: m_can_tx_work_queue(): fix tx_skb race condition

Marc Zyngier (4):
      ACPI: GTDT: Don't corrupt interrupt mappings on watchdow probe failure
      KVM: arm64: Fully zero the vcpu state on reset
      arm64: entry: factor irq triage logic into macros
      KVM: arm64: Prevent mixed-width VM creation

Marcel Hamer (1):
      usb: dwc3: omap: improve extcon initialization

Marco Elver (1):
      kcsan, debugfs: Move debugfs file creation out of early init

Marcus Folkesson (1):
      wilc1000: write value to WILC_INTR2_ENABLE register

Marek Behún (4):
      ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin
      arm64: dts: marvell: armada-37xx: add syscon compatible to NB clk node
      cpufreq: armada-37xx: Fix setting TBG parent for load levels
      clk: mvebu: armada-37xx-periph: remove .set_parent method for CPU PM clock

Marek Vasut (2):
      rsi: Use resume_noirq for SDIO
      drm/stm: Fix bus_flags handling

Marijn Suijten (2):
      drm/msm/mdp5: Configure PP_SYNC_HEIGHT to double the vtotal
      drm/msm/mdp5: Do not multiply vclk line count by 100

Mark Langsdorf (2):
      ACPI: custom_method: fix potential use-after-free issue
      ACPI: custom_method: fix a possible memory leak

Mark Pearson (1):
      platform/x86: thinkpad_acpi: Correct thermal sensor allocation

Mark Rutland (1):
      arm64: entry: always set GIC_PRIO_PSR_I_SET during entry

Mark Zhang (1):
      RDMA/mlx5: Fix mlx5 rates to IB rates map

Martin Blumenstingl (3):
      net: dsa: lantiq_gswip: Let GSWIP automatically set the xMII clock
      net: dsa: lantiq_gswip: Don't use PHY auto polling
      net: dsa: lantiq_gswip: Configure all remaining GSWIP_MII_CFG bits

Martin Leung (1):
      drm/amd/display: changing sr exit latency

Martin Schiller (1):
      net: phy: intel-xway: enable integrated led functions

Martin Wilck (2):
      scsi: target: pscsi: Clean up after failure in pscsi_map_sg()
      scsi: scsi_transport_srp: Don't block target in SRP_PORT_LOST state

Masahiro Yamada (4):
      init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM
      kbuild: update config_data.gz only when the content of .config is changed
      kbuild: generate Module.symvers only when vmlinux exists
      scripts/clang-tools: switch explicitly to Python 3

Masami Hiramatsu (1):
      x86/kprobes: Fix to check non boostable prefixes correctly

Mateusz Palczewski (2):
      i40e: Added Asym_Pause to supported link modes
      i40e: Fix PHY type identifiers for 2.5G and 5G adapters

Mathias Krause (1):
      nitro_enclaves: Fix stale file descriptors on failed usercopy

Mathias Nyman (5):
      xhci: check port array allocation was successful before dereferencing it
      xhci: check control context is valid before dereferencing it.
      xhci: fix potential array out of bounds with several interrupters
      thunderbolt: usb4: Fix NVM read buffer bounds and offset issue
      thunderbolt: dma_port: Fix NVM read buffer bounds and offset issue

Mathy Vanhoef (4):
      mac80211: assure all fragments are encrypted
      mac80211: prevent mixed key and fragment cache attacks
      mac80211: properly handle A-MSDUs that start with an RFC 1042 header
      cfg80211: mitigate A-MSDU aggregation attacks

Matt Chen (1):
      iwlwifi: add support for Qu with AX201 device

Matt Wang (1):
      scsi: BusLogic: Fix 64-bit system enumeration error for Buslogic

Matthew Wilcox (Oracle) (5):
      XArray: Fix splitting to non-zero orders
      radix tree test suite: Register the main thread with the RCU library
      idr test suite: Take RCU read lock in idr_find_test_1
      idr test suite: Create anchor before launching throbber
      mm: fix struct page layout on 32-bit systems

Matthias Schiffer (1):
      power: supply: bq27xxx: fix power_avg for newer ICs

Matti Vaittinen (1):
      gpio: sysfs: Obey valid_mask

Mauro Carvalho Chehab (1):
      atomisp: don't let it go past pipes array

Maxim Kochetkov (3):
      net: dsa: Fix type was not set for devlink port
      net: phy: marvell: fix m88e1011_set_downshift
      net: phy: marvell: fix m88e1111_set_downshift

Maxim Mikityanskiy (2):
      HID: plantronics: Workaround for double volume key presses
      net/mlx5e: Use net_prefetchw instead of prefetchw in MPWQE TX datapath

Maximilian Luz (2):
      usb: xhci: Increase timeout for HC halt
      serial: 8250_dw: Add device HID for new AMD UART controller

Md Haris Iqbal (3):
      RDMA/rtrs-clt: Close rtrs client conn before destroying rtrs clt session files
      block/rnbd-clt: Change queue_depth type in rnbd_clt_session to size_t
      block/rnbd-clt: Check the return value of the function rtrs_clt_query

Meng Li (1):
      regmap: set debugfs_name to NULL after it is freed

Miaohe Lin (4):
      khugepaged: fix wrong result value for trace_mm_collapse_huge_page_isolate()
      mm/hugeltb: handle the error case in hugetlb_fix_reserve_counts()
      mm/migrate.c: fix potential indeterminate pte entry in migrate_vma_insert_page()
      ksm: fix potential missing rmap_item for stable_node

Michael Brown (1):
      xen-netback: Check for hotplug-status existence before watching

Michael Chan (3):
      bnxt_en: Fix RX consumer index logic in the error path.
      bnxt_en: Add PCI IDs for Hyper-V VF devices.
      bnxt_en: Fix context memory setup for 64K page size.

Michael Ellerman (7):
      powerpc/pseries: Only register vio drivers if vio bus exists
      powerpc/pseries: Stop calling printk in rtas_stop_self()
      powerpc/64s: Fix crashes when toggling stf barrier
      powerpc/64s: Fix crashes when toggling entry flush barrier
      selftests/gpio: Use TEST_GEN_PROGS_EXTENDED
      selftests/gpio: Move include of lib.mk up
      selftests/gpio: Fix build when source tree is read only

Michael Kelley (1):
      Drivers: hv: vmbus: Increase wait time for VMbus unload

Michael Walle (2):
      mtd: require write permissions for locking and badblock ioctls
      rtc: fsl-ftm-alarm: add MODULE_TABLE()

Michal Kalderon (1):
      nvmet-rdma: Fix NULL deref when SEND is completed with error

Michal Simek (1):
      firmware: xilinx: Add a blank line after function declaration

Mickaël Salaün (1):
      ovl: fix leaked dentry

Mihai Moldovan (1):
      kconfig: nconf: stop endless search loops

Mike Galbraith (1):
      x86/crash: Fix crash_setup_memmap_entries() out-of-bounds access

Mike Marciniszyn (3):
      IB/hfi1: Fix probe time panic when AIP is enabled with a buggy BIOS
      IB/hfi1: Use kzalloc() for mmu_rb_handler allocation
      IB/hfi1: Correct oversized ring allocation

Mike Rapoport (2):
      nds32: flush_dcache_page: use page_mapping_file to avoid races with swapoff
      openrisc: mm/init.c: remove unused memblock_region variable in map_ram()

Mike Travis (1):
      x86/platform/uv: Set section block size for hubless architectures

Mikhail Durnev (1):
      ASoC: rsnd: core: Check convert rate in rsnd_hw_params

Mikko Perttunen (1):
      gpu: host1x: Use different lock classes for each client

Miklos Szeredi (3):
      ovl: allow upperdir inside lowerdir
      virtiofs: fix userns
      cuse: prevent clone

Mikulas Patocka (2):
      dm snapshot: fix crash with transient storage and zero chunk size
      dm snapshot: properly fix a crash when an origin has no snapshots

Milton Miller (1):
      net/ncsi: Avoid channel_monitor hrtimer deadlock

Ming Lei (1):
      blk-mq: plug request for shared sbitmap

Muchun Song (1):
      mm: memcontrol: slab: fix obtain a reference to a freeing memcg

Muhammad Usama Anjum (2):
      net: ipv6: check for validity before dereferencing cfg->fc_nlinfo.nlh
      media: em28xx: fix memory leak

Murthy Bhat (1):
      scsi: smartpqi: Correct request leakage during reset operations

Nathan Chancellor (13):
      arm64: alternatives: Move length validation in alternative_{insn, endif}
      x86/boot: Add $(CLANG_FLAGS) to compressed KBUILD_CFLAGS
      efi/libstub: Add $(CLANG_FLAGS) to x86 flags
      Makefile: Move -Wno-unused-but-set-variable out of GCC only block
      crypto: arm/curve25519 - Move '.fpu' after '.arch'
      ACPI: CPPC: Replace cppc_attr with kobj_attribute
      x86/events/amd/iommu: Fix sysfs type mismatch
      perf/amd/uncore: Fix sysfs type mismatch
      powerpc/fadump: Mark fadump_calculate_reserve_size as __init
      powerpc/prom: Mark identical_pvr_fixup as __init
      riscv: Use $(LD) instead of $(CC) to link vDSO
      scripts/recordmcount.pl: Fix RISC-V regex for clang
      riscv: Workaround mcount name prior to clang-13

Neil Armstrong (1):
      drm/meson: fix shutdown crash when component not probed

NeilBrown (1):
      SUNRPC in case of backlog, hand free slots directly to waiting task

Nicholas Piggin (5):
      powerpc/powernv: Enable HAIL (HV AIL) for ISA v3.1 processors
      KVM: PPC: Book3S HV P9: Restore host CTRL SPR after guest exit
      powerpc/pseries: Fix hcall tracing recursion in pv queued spinlocks
      powerpc/64s/syscall: Use pt_regs.trap to distinguish syscall ABI difference between sc and scv syscalls
      powerpc/64s/syscall: Fix ptrace syscall info with scv syscalls

Nick Desaulniers (1):
      gcov: re-fix clang-11+ support

Nick Lowe (1):
      igb: Enable RSS for Intel I211 Ethernet Controller

Niklas Cassel (1):
      nvme-pci: don't simple map sgl when sgls are disabled

Nikola Livic (1):
      pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()

Nikolay Aleksandrov (1):
      net: bridge: when suppression is enabled exclude RARP packets

Nikolay Borisov (1):
      mm/sl?b.c: remove ctor argument from kmem_cache_flags

Nirmoy Das (1):
      drm/amd/display: use GFP_ATOMIC in dcn20_resource_construct

Nobuhiro Iwamatsu (2):
      firmware: xilinx: Remove zynqmp_pm_get_eemi_ops() in IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE)
      rtc: ds1307: Fix wday settings for rx8130

Noralf Trønnes (1):
      drm/probe-helper: Check epoch counter in output_poll_execute()

Norbert Ciosek (1):
      virtchnl: Fix layout of RSS structures

Norman Maurer (1):
      net: udp: Add support for getsockopt(..., ..., UDP_GRO, ..., ...);

Obeida Shamoun (1):
      backlight: qcom-wled: Use sink_addr for sync toggle

Odin Ugedal (1):
      sched/fair: Fix unfairness caused by missing load decay

Oleg Nesterov (1):
      ptrace: make ptrace() fail if the tracee changed its pid unexpectedly

Olga Kornievskaia (2):
      NFSv4.2: fix copy stateid copying for the async copy
      NFSv4.2 fix handling of sr_eof in SEEK's reply

Oliver Hartkopp (2):
      can: bcm/raw: fix msg_namelen values depending on CAN_REQUIRED_SIZE
      can: isotp: fix msg_namelen values depending on CAN_REQUIRED_SIZE

Oliver Neukum (2):
      USB: CDC-ACM: fix poison/unpoison imbalance
      cdc-wdm: untangle a circular dependency between callback and softint

Oliver Stäbler (1):
      arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0

Omar Sandoval (1):
      kyber: fix out of bounds access when preempted

Ondrej Mosnacek (5):
      selinux: make nslot handling in avtab more robust
      selinux: fix cond_list corruption when changing booleans
      selinux: fix race between old and new sidtab
      perf/core: Fix unconditional security_locked_down() call
      serial: core: fix suspicious security_locked_down() call

Ong Boon Leong (2):
      xdp: fix xdp_return_frame() kernel BUG throw for page_pool memory model
      net: stmmac: fix TSO and TBS feature enabling during driver open

Or Cohen (2):
      net/sctp: fix race condition in sctp_destroy_sock
      net/nfc: fix use-after-free llcp_sock_bind/connect

Orson Zhai (1):
      mailbox: sprd: Introduce refcnt when clients requests/free channels

Otavio Pontes (1):
      x86/microcode: Check for offline CPUs before requesting new microcode

Pablo Neira Ayuso (9):
      netfilter: nftables: skip hook overlap logic if flowtable is stale
      netfilter: flowtable: fix NAT IPv6 offload mangling
      netfilter: conntrack: do not print icmpv6 as unknown via /proc
      netfilter: nft_payload: fix C-VLAN offload support
      netfilter: nftables_offload: VLAN id needs host byteorder in flow dissector
      netfilter: nftables_offload: special ethertype handling for VLAN
      netfilter: xt_SECMARK: add new revision to fix structure layout
      netfilter: nfnetlink_osf: Fix a missing skb_header_pointer() NULL check
      netfilter: nftables: Fix a memleak from userdata error path in new objects

Pali Rohár (7):
      net: phy: marvell: fix detection of PHY on Topaz switches
      cpufreq: armada-37xx: Fix the AVS value for load L1
      clk: mvebu: armada-37xx-periph: Fix switching CPU freq from 250 Mhz to 1 GHz
      clk: mvebu: armada-37xx-periph: Fix workaround for switching from L1 to L0
      cpufreq: armada-37xx: Fix driver cleanup when registration failed
      cpufreq: armada-37xx: Fix determining base CPU frequency
      PCI: iproc: Fix return value of iproc_msi_irq_domain_alloc()

Pan Bian (1):
      bus: qcom: Put child node before return

Paolo Abeni (8):
      net: let skb_orphan_partial wake-up waiters.
      mptcp: forbit mcast-related sockopt on MPTCP sockets
      udp: never accept GSO_FRAGLIST packets
      mptcp: fix splat when closing unaccepted socket
      mptcp: avoid error message on infinite mapping
      mptcp: drop unconditional pr_warn on bad opt
      mptcp: fix data stream corruption
      net: really orphan skbs tied to closing sk

Paolo Bonzini (1):
      KVM: x86/mmu: preserve pending TLB flush across calls to kvm_tdp_mmu_zap_sp

Paul Aurich (1):
      cifs: Return correct error code from smb2_get_enc_key

Paul Cercueil (1):
      drm: bridge/panel: Cleanup connector on bridge detach

Paul Clements (1):
      md/raid1: properly indicate failure when ending a failed write request

Paul Durrant (1):
      xen-blkback: fix compatibility bug with single page rings

Paul Fertser (1):
      hwmon: (pmbus/pxe1610) don't bail out when not all pages are active

Paul M Stillwell Jr (1):
      ice: handle increasing Tx or Rx ring sizes

Paul Menzel (2):
      iommu/amd: Put newline after closing bracket in warning
      Revert "iommu/amd: Fix performance counter initialization"

Paul Moore (1):
      selinux: add proper NULL termination to the secclass_map permissions

Pavel Andrianov (1):
      net: pxa168_eth: Fix a potential data race in pxa168_eth_remove

Pavel Begunkov (3):
      io_uring: fix timeout cancel return code
      block: don't ignore REQ_NOWAIT for direct IO
      io_uring: fix overflows checks in provide buffers

Pavel Machek (1):
      intel_th: Consistency and off-by-one fix

Pavel Skripkin (6):
      drivers: net: fix memory leak in atusb_probe
      drivers: net: fix memory leak in peak_usb_create_dev
      net: mac802154: Fix general protection fault
      media: dvb-usb: fix memory leak in dvb_usb_adapter_init
      tty: fix memory leak in vc_deallocate
      net: usb: fix memory leak in smsc75xx_bind

Pavel Tatashin (3):
      mm/gup: check every subpage of a compound page during isolation
      mm/gup: return an error on migration failure
      mm/gup: check for isolation errors

Pavel Tikhomirov (1):
      net: sched: sch_teql: fix null-pointer dereference

Pawel Laszczak (2):
      usb: gadget: uvc: add bInterval checking for HS mode
      usb: webcam: Invalid size of Processing Unit Descriptor

Paweł Chmiel (1):
      clk: exynos7: Mark aclk_fsys1_200 as critical

Pedro Tammela (1):
      libbpf: Fix bail out from 'ringbuf_process_ring()' on error

PeiSen Hou (1):
      ALSA: hda/realtek: Add some CLOVE SSIDs of ALC293

Peilin Ye (1):
      media: dvbdev: Fix memory leak in dvb_media_device_free()

Peng Fan (1):
      mmc: sdhci-esdhc-imx: validate pinctrl before use it

Peng Li (1):
      net: hns3: use netif_tx_disable to stop the transmit queue

Peter Collingbourne (3):
      arm64: fix inline asm in load_unaligned_zeropad()
      kasan: fix unit tests with CONFIG_UBSAN_LOCAL_BOUNDS enabled
      arm64: mte: initialize RGSR_EL1.SEED in __cpu_setup

Peter Ujfalusi (1):
      ALSA: hda/realtek: Chain in pop reduction fixup for ThinkStation P340

Peter Wang (1):
      scsi: ufs: ufs-mediatek: Fix power down spec violation

Peter Xu (1):
      mm/hugetlb: fix F_SEAL_FUTURE_WRITE

Peter Zijlstra (3):
      perf: Rework perf_event_exit_event()
      sched,fair: Alternative sched_slice()
      openrisc: Define memory barrier mb

Petr Machata (3):
      selftests: net: mirror_gre_vlan_bridge_1q: Make an FDB entry static
      selftests: mlxsw: Increase the tolerance of backlog buildup
      selftests: mlxsw: Fix mausezahn invocation in ERSPAN scale test

Petr Mladek (4):
      watchdog: rename __touch_watchdog() to a better descriptive name
      watchdog: explicitly update timestamp when reporting softlockup
      watchdog/softlockup: remove logic that tried to prevent repeated reports
      watchdog: fix barriers when printing backtraces from all CPUs

Phil Calvin (1):
      ALSA: hda/realtek: fix mic boost on Intel NUC 8

Phil Elwell (1):
      usb: dwc2: Fix gadget DMA unmap direction

Phillip Lougher (1):
      squashfs: fix divide error in calculate_skip()

Phillip Potter (11):
      net: tun: set tun->dev->addr_len during TUNSETLINK processing
      net: geneve: check skb is large enough for IPv4/IPv6 header
      net: usb: ax88179_178a: initialize local variables before use
      fbdev: zero-fill colormap in fbcmap.c
      net: geneve: modify IP header check in geneve6_xmit_skb and geneve_xmit_skb
      net: hsr: check skb can contain struct hsr_ethhdr in fill_frame_info
      scsi: ufs: handle cleanup correctly on devm_reset_control_get error
      leds: lp5523: check return value of lp5xx_read and jump to cleanup code
      isdn: mISDNinfineon: check/cleanup ioremap failure correctly in setup_io
      isdn: mISDN: correctly handle ph_info allocation failure in hfcsusb_ph_info
      dmaengine: qcom_hidma: comment platform_driver_register call

Pierre-Louis Bossart (2):
      soundwire: cadence: only prepare attached devices on clock stop
      ASoC: samsung: tm2_wm5110: check of of_parse return value

Ping Cheng (1):
      HID: wacom: set EV_KEY and EV_ABS only for non-HID_GENERIC type of devices

Ping-Ke Shih (2):
      rtw88: Fix array overrun in rtw_get_tx_power_params()
      rtlwifi: 8821ae: upgrade PHY and RF parameters

Piotr Krysiuk (2):
      bpf, x86: Validate computation of branch displacements for x86-64
      bpf, x86: Validate computation of branch displacements for x86-32

Po-Hao Huang (1):
      rtw88: 8822c: add LC calibration for RTL8822C

Potnuri Bharat Teja (2):
      RDMA/cxgb4: check for ipv6 address properly while destroying listener
      RDMA/cxgb4: add missing qpid increment

Pradeep Kumar Chitrapu (1):
      ath11k: fix thermal temperature read

Pradeep P V K (1):
      mmc: sdhci: Check for reset prior to DMA address unmap

Prashant Malani (1):
      platform/chrome: cros_ec_typec: Add DP mode check

Qii Wang (3):
      i2c: mediatek: Fix wrong dma sync flag
      i2c: mediatek: Fix send master code at more than 1MHz
      i2c: mediatek: Disable i2c start_en and clear intr_stat brfore reset

Qinglang Miao (9):
      soc: qcom: pdr: Fix error return code in pdr_register_listener
      i2c: cadence: fix reference leak when pm_runtime_get_sync fails
      i2c: img-scb: fix reference leak when pm_runtime_get_sync fails
      i2c: imx-lpi2c: fix reference leak when pm_runtime_get_sync fails
      i2c: imx: fix reference leak when pm_runtime_get_sync fails
      i2c: omap: fix reference leak when pm_runtime_get_sync fails
      i2c: sprd: fix reference leak when pm_runtime_get_sync fails
      i2c: stm32f7: fix reference leak when pm_runtime_get_sync fails
      i2c: xiic: fix reference leak when pm_runtime_get_sync fails

Qu Huang (1):
      drm/amdkfd: Fix cat debugfs hang_hws file causes system crash bug

Qu Wenruo (1):
      btrfs: handle remount to no compress during compression

Quanyang Wang (11):
      spi: spi-zynqmp-gqspi: use wait_for_completion_timeout to make zynqmp_qspi_exec_op not interruptible
      spi: spi-zynqmp-gqspi: add mutex locking for exec_op
      spi: spi-zynqmp-gqspi: transmit dummy circles by using the controller's internal functionality
      spi: spi-zynqmp-gqspi: fix incorrect operating mode in zynqmp_qspi_read_op
      spi: spi-zynqmp-gqspi: fix clk_enable/disable imbalance issue
      spi: spi-zynqmp-gqspi: fix hang issue when suspend/resume
      spi: spi-zynqmp-gqspi: fix use-after-free in zynqmp_qspi_exec_op
      spi: spi-zynqmp-gqspi: return -ENOMEM if dma_map_single fails
      drm/tilcdc: send vblank event when disabling crtc
      clk: zynqmp: move zynqmp_pll_set_mode out of round_rate callback
      clk: zynqmp: pll: add set_pll_mode to check condition in zynqmp_pll_enable

Quentin Perret (1):
      sched: Fix out-of-bound access in uclamp

Quinn Tran (1):
      scsi: qla2xxx: Fix use after free in bsg

Raed Salem (1):
      net/mlx5: Fix placement of log_max_flow_counter

Rafael J. Wysocki (4):
      ACPI: x86: Call acpi_boot_table_init() after acpi_table_upgrade()
      PCI: PM: Do not read power state in pci_enable_device_flags()
      cpufreq: intel_pstate: Use HWP if enabled by platform firmware
      drivers: base: Fix device link removal

Rafał Miłecki (2):
      dt-bindings: net: ethernet-controller: fix typo in NVMEM
      ARM: dts: BCM5301X: fix "reg" formatting in /memory node

Rahul Lakkireddy (1):
      cxgb4: avoid collecting SGE_QBASE regs during traffic

Raju Rangoju (1):
      cxgb4: avoid accessing registers when clearing filters

Ramesh Babu B (1):
      net: stmmac: Clear receive all(RA) bit when promiscuous mode is off

Rander Wang (1):
      soundwire: stream: fix memory leak in stream config error path

Randy Dunlap (8):
      ia64: remove duplicate entries in generic_defconfig
      csky: change a Kconfig symbol name to fix e1000 build error
      ia64: fix discontig.c section mismatches
      NFS: fs_context: validate UDP retrans to prevent shift out-of-bounds
      drm: bridge: fix LONTIUM use of mipi_dsi_() functions
      powerpc: iommu: fix build when neither PCI or IBMVIO is set
      MIPS: alchemy: xxs1500: add gpio-au1000.h header file
      MIPS: ralink: export rt_sysc_membase for rt2880_wdt.c

Randy Wright (1):
      serial: 8250_pci: Add support for new HPE serial device

Rasmus Villemoes (2):
      lib/vsprintf.c: remove leftover 'f' and 'F' cases from bstr_printf()
      devtmpfs: fix placement of complete() call

Ravi Kumar Bokka (1):
      drivers: nvmem: Fix voltage settings for QTI qfprom-efuse

Reiji Watanabe (1):
      KVM: VMX: Don't use vcpu->run->internal.ndata as an array index

Ricardo Ribalda (3):
      media: staging/intel-ipu3: Fix memory leak in imu_fmt
      media: staging/intel-ipu3: Fix set_fmt error handling
      media: staging/intel-ipu3: Fix race condition during set_fmt

Ricardo Rivera-Matos (1):
      power: supply: bq25980: Move props from battery node

Richard Fitzgerald (1):
      ASoC: cs42l42: Regmap must use_single_read/write

Richard Sanger (1):
      net: packetmmap: fix only tx timestamp on request

Rijo Thomas (2):
      crypto: ccp - fix command queuing to TEE ring buffer
      tee: amdtee: unload TA only when its refcount becomes 0

Rikard Falkeborn (1):
      linux/bits.h: fix compilation error with GENMASK

Rob Clark (2):
      drm/msm: Ratelimit invalid-fence message
      drm/msm: Fix a5xx/a6xx timestamps

Robert Malz (1):
      ice: Cleanup fltr list in case of allocation issues

Robin Murphy (2):
      perf/arm_pmu_platform: Use dev_err_probe() for IRQ errors
      perf/arm_pmu_platform: Fix error handling

Robin Singh (1):
      drm/amd/display: fixed divide by zero kernel crash during dsc enablement

Rodrigo Siqueira (1):
      drm/amd/display: Fix two cursor duplication when using overlay

Roi Dayan (2):
      net/mlx5e: Fix null deref accessing lag dev
      netfilter: flowtable: Remove redundant hw refresh bit

Rolf Eike Beer (1):
      iommu/vt-d: Fix sysfs leak in alloc_iommu()

Romain Naour (1):
      mips: Do not include hi and lo in clobber list for R6

Roman Bolshakov (1):
      scsi: target: iscsi: Fix zero tag inside a trace event

Roman Gushchin (1):
      percpu: make pcpu_nr_empty_pop_pages per chunk type

Rong Chen (1):
      selftests/vm: fix out-of-tree build

Ronnie Sahlberg (2):
      cifs: revalidate mapping when we open files for SMB1 POSIX
      cifs: fix memory leak in smb2_copychunk_range

Rui Miguel Silva (1):
      iio: gyro: fxas21002c: balance runtime power in error path

Ruslan Bilovol (2):
      usb: gadget: f_uac2: validate input parameters
      usb: gadget: f_uac1: validate input parameters

Russ Weight (1):
      fpga: dfl: pci: add DID for D5005 PAC cards

Russell Currey (1):
      selftests/powerpc: Fix L1D flushing tests for Power10

Russell King (3):
      net: sfp: relax bitrate-derived mode check
      net: sfp: cope with SFPs that set both LOS normal and LOS inverted
      ARM: footbridge: fix PCI interrupt mapping

Ryan Lee (2):
      ASoC: max98373: Changed amp shutdown register as volatile
      ASoC: max98373: Added 30ms turn on/off time delay

Ryder Lee (3):
      mt76: mt7615: use ieee80211_free_txskb() in mt7615_tx_token_put()
      mt76: mt7915: fix mib stats counter reporting to mac80211
      mt76: mt7615: fix memleak when mt7615_unregister_device()

Saeed Mahameed (1):
      net/mlx5e: reset XPS on error flow if netdev isn't registered yet

Sagi Grimberg (3):
      nvme-tcp: block BH in sk state_change sk callback
      nvmet-tcp: fix incorrect locking in state_change sk callback
      nvme-tcp: fix possible use-after-completion

Sai Prakash Ranjan (2):
      arm64: dts: qcom: sm8250: Fix level triggered PMU interrupt polarity
      arm64: dts: qcom: sm8250: Fix timer interrupt to specify EL2 physical timer

Salil Mehta (1):
      net: hns3: Limiting the scope of vector_ring_chain variable

Sami Loone (2):
      ALSA: hda/realtek: fix static noise on ALC285 Lenovo laptops
      ALSA: hda/realtek: ALC285 Thinkpad jack pin quirk is unreachable

Sandeep Singh (1):
      xhci: Add reset resume quirk for AMD xhci controller.

Sander Vanheule (1):
      mt76: mt7615: support loading EEPROM for MT7613BE

Saravana Kannan (1):
      driver core: Fix locking bug in deferred_probe_timeout_work_func()

Sargun Dhillon (2):
      Documentation: seccomp: Fix user notification documentation
      seccomp: Refactor notification handler to prepare for new semantics

Sean Christopherson (26):
      KVM: x86/mmu: Ensure TLBs are flushed when yielding during GFN range zap
      KVM: x86/mmu: Ensure TLBs are flushed for TDP MMU during NX zapping
      KVM: x86/mmu: Don't allow TDP MMU to yield when recovering NX pages
      KVM: VMX: Convert vcpu_vmx.exit_reason to a union
      x86/cpu: Initialize MSR_TSC_AUX if RDTSCP *or* RDPID is supported
      KVM: x86: Defer the MMU unload to the normal path on an global INVPCID
      KVM: x86/mmu: Alloc page for PDPTEs when shadowing 32-bit NPT with 64-bit
      KVM: x86: Remove emulator's broken checks on CR0/CR3/CR4 loads
      KVM: nSVM: Set the shadow root level to the TDP level for nested NPT
      KVM: SVM: Don't strip the C-bit from CR2 on #PF interception
      KVM: SVM: Do not allow SEV/SEV-ES initialization after vCPUs are created
      KVM: SVM: Inject #GP on guest MSR_TSC_AUX accesses if RDTSCP unsupported
      KVM: nVMX: Defer the MMU reload to the normal path on an EPTP switch
      KVM: nVMX: Truncate bits 63:32 of VMCS field on nested check in !64-bit
      KVM: nVMX: Truncate base/index GPR value on address calc in !64-bit
      KVM: Destroy I/O bus devices on unregister failure _after_ sync'ing SRCU
      KVM: Stop looking for coalesced MMIO zones if the bus is destroyed
      KVM: x86/mmu: Retry page faults that hit an invalid memslot
      crypto: ccp: Detect and reject "invalid" addresses destined for PSP
      KVM: VMX: Intercept FS/GS_BASE MSR accesses for 32-bit KVM
      KVM: x86/mmu: Remove the defunct update_pte() paging hook
      crypto: ccp: Free SEV device if SEV init fails
      KVM: x86: Emulate RDPID only if RDTSCP is supported
      KVM: x86: Move RDPID emulation intercept to its own enum
      KVM: VMX: Do not advertise RDPID if ENABLE_RDTSCP control is unsupported
      KVM: VMX: Disable preemption when probing user return MSRs

Sean MacLennan (1):
      USB: serial: ti_usb_3410_5052: add startech.com device id

Sean Wang (2):
      mt76: mt7663s: make all of packets 4-bytes aligned in sdio tx aggregation
      mt76: mt7663s: fix the possible device hang in high traffic

Sean Young (1):
      media: ite-cir: check for receive overflow

Sebastian Krzyszkowiak (1):
      arm64: dts: imx8mq-librem5-r3: Mark buck3 as always on

Seevalamuthu Mariappan (1):
      mac80211: clear sta->fast_rx when STA removed from 4-addr VLAN

Serge E. Hallyn (1):
      capabilities: require CAP_SETFCAP to map uid 0

Sergei Trofimovich (5):
      ia64: mca: allocate early mca with GFP_ATOMIC
      ia64: fix format strings for err_inject
      ia64: fix user_stack_pointer() for ptrace()
      ia64: fix EFI_DEBUG build
      ia64: module: fix symbolizer crash on fdescr

Sergey Shtylyov (16):
      pata_arasan_cf: fix IRQ check
      pata_ipx4xx_cf: fix IRQ check
      sata_mv: add IRQ checks
      ata: libahci_platform: fix IRQ check
      scsi: ufs: ufshcd-pltfrm: Fix deferred probing
      scsi: hisi_sas: Fix IRQ checks
      scsi: jazz_esp: Add IRQ check
      scsi: sun3x_esp: Add IRQ check
      scsi: sni_53c710: Add IRQ check
      i2c: cadence: add IRQ check
      i2c: emev2: add IRQ check
      i2c: jz4780: add IRQ check
      i2c: mlxbf: add IRQ check
      i2c: rcar: add IRQ check
      i2c: sh7760: add IRQ check
      i2c: sh7760: fix IRQ error path

Seunghui Lee (1):
      mmc: core: Set read only for SD cards with permanent write protect bit

Shameer Kolothum (1):
      iommu: Check dev->iommu in iommu_dev_xxx functions

Shawn Guo (4):
      soc: qcom: geni: shield geni_icc_get() for ACPI boot
      arm64: dts: qcom: sdm845: fix number of pins in 'gpio-ranges'
      arm64: dts: qcom: sm8150: fix number of pins in 'gpio-ranges'
      arm64: dts: qcom: sm8250: fix number of pins in 'gpio-ranges'

Shay Drory (2):
      RDMA/core: Add CM to restrack after successful attachment to a device
      RDMA/core: Don't access cm_id after its destruction

Shayne Chen (1):
      mt76: mt7915: fix txpower init for TSSI off chips

Shengjiu Wang (3):
      ASoC: wm8960: Fix wrong bclk and lrclk with pll enabled for some chips
      ASoC: wm8960: Remove bitclk relax condition in wm8960_configure_sysclk
      ASoC: ak5558: correct reset polarity

Shixin Liu (6):
      crypto: sun8i-ss - Fix PM reference leak when pm_runtime_get_sync() fails
      crypto: sun8i-ce - Fix PM reference leak in sun8i_ce_probe()
      crypto: stm32/hash - Fix PM reference leak on stm32-hash.c
      crypto: stm32/cryp - Fix PM reference leak on stm32-cryp.c
      crypto: sa2ul - Fix PM reference leak in sa_ul_probe()
      crypto: omap-aes - Fix PM reference leak on omap-aes.c

Shou-Chieh Hsu (1):
      HID: google: add don USB id

Shradha Todi (1):
      PCI: endpoint: Fix NULL pointer dereference for ->get_features()

Shuah Khan (5):
      usbip: add sysfs_lock to synchronize sysfs code paths
      usbip: stub-dev synchronize sysfs code paths
      usbip: vudc synchronize sysfs code paths
      usbip: synchronize event handler with sysfs code paths
      ath10k: Fix ath10k_wmi_tlv_op_pull_peer_stats_info() unlock without lock

Shuo Chen (1):
      dyndbg: fix parsing file query without a line-range suffix

Shyam Prasad N (1):
      cifs: detect dead connections only when echoes are enabled.

Shyam Sundar S K (2):
      amd-xgbe: Update DMA coherency values
      platform/x86: hp-wireless: add AMD's hardware id to the supported list

Si-Wei Liu (1):
      vdpa/mlx5: should exclude header length and fcs from mtu

Sibi Sankar (1):
      remoteproc: qcom_q6v5_mss: Replace ioremap with memremap

Simon Rettberg (1):
      drm/i915/gt: Disable HiZ Raw Stall Optimization on broken gen7

Sindhu Devale (1):
      RDMA/i40iw: Fix error unwinding when i40iw_hmc_sd_one fails

Smita Koralahalli (1):
      perf vendor events amd: Fix broken L2 Cache Hits from L2 HWPF metric

Souptick Joarder (1):
      media: atomisp: Fixed error handling path

Sourabh Jain (1):
      powerpc/kexec_file: Use current CPU info while setting up FDT

Sreekanth Reddy (1):
      scsi: mpt3sas: Block PCI config access from userspace during reset

Srikar Dronamraju (2):
      powerpc/smp: Reintroduce cpu_core_mask
      powerpc/smp: Set numa node before updating mask

Srinivas Kandagatla (2):
      arm64: dts: qcom: db845c: fix correct powerdown pin for WSA881x
      soundwire: bus: Fix device found flag correctly

Srinivas Pandruvada (3):
      tools/power/x86/intel-speed-select: Increase string size
      platform/x86: ISST: Account for increased timeout in some cases
      thermal/drivers/intel: Initialize RW trip to THERMAL_TEMP_INVALID

Sriram R (2):
      ath10k: Validate first subframe of A-MSDU before processing the list
      ath11k: Clear the fragment cache during key install

Stanimir Varbanov (1):
      media: venus: hfi_parser: Don't initialize parser on v1

Stanislav Fomichev (1):
      tools/resolve_btfids: Add /libbpf to .gitignore

Stefan Assmann (1):
      iavf: remove duplicate free resources calls

Stefan Berger (3):
      tpm: acpi: Check eventlog signature before using it
      tpm: efi: Use local variable for calculating final log size
      tpm: vtpm_proxy: Avoid reading host log when using a virtual device

Stefan Chulski (1):
      net: mvpp2: add buffer header handling in RX

Stefan Raspl (1):
      tools/kvm_stat: Add restart delay

Stefan Riedmueller (1):
      ARM: dts: imx6: pbab01: Set vmmc supply for both SD interfaces

Stefan Roese (1):
      net: ethernet: mtk_eth_soc: Fix packet statistics support for MT7628/88

Stefano Brivio (1):
      netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version

Stefano Garzarella (2):
      vsock/vmci: log once the failed queue pair allocation
      vsock/virtio: free queued packets when closing socket

Steffen Dirkwinkel (1):
      platform/x86: pmc_atom: Match all Beckhoff Automation baytrail boards with critclk_systems DMI table

Steffen Klassert (2):
      xfrm: Fix NULL pointer dereference on policy lookup
      xfrm: Provide private skb extensions for segmented and hw offloaded ESP packets

Stephen Boyd (6):
      drm/msm: Set drvdata to NULL when msm_drm_init() fails
      serial: stm32: Use of_device_get_match_data()
      firmware: qcom_scm: Make __qcom_scm_is_call_available() return bool
      firmware: qcom_scm: Reduce locking section for __get_convention()
      firmware: qcom_scm: Workaround lack of "is available" call on SC7180
      ASoC: qcom: lpass-cpu: Use optional clk APIs

Steve French (3):
      smb3: when mounting with multichannel include it in requested capabilities
      smb3: do not attempt multichannel to server which does not support it
      SMB3: incorrect file id in requests compounded with open

Steven Rostedt (VMware) (4):
      ftrace: Check if pages were allocated before calling free_pages()
      ftrace: Handle commands when closing set_ftrace_filter file
      tracing: Map all PIDs to command lines
      tracing: Restructure trace_clock_global() to never block

Stéphane Marchesin (1):
      drm/i915: Fix crash in auto_retire

Subbaraman Narayanamurthy (1):
      interconnect: qcom: bcm-voter: add a missing of_node_put()

Sudhakar Panneerselvam (1):
      md/bitmap: wait for external bitmap writes to complete during tear down

Sumeet Pawnikar (1):
      ACPI: PM: Add ACPI ID of Alder Lake Fan

Sun Ke (1):
      nbd: Fix NULL pointer in flush_workqueue

Suravee Suthikulpanit (1):
      iommu/amd: Remove performance counter pre-initialization test

Suzuki K Poulose (3):
      KVM: arm64: Hide system instruction access to Trace registers
      KVM: arm64: Disable guest access to trace filter controls
      coresight: Do not scan for graph if none is present

Taehee Yoo (2):
      mld: fix panic in mld_newpack()
      sch_dsmark: fix a NULL deref in qdisc_reset()

Takashi Iwai (28):
      ALSA: hda/realtek: Fix speaker amp setup on Acer Aspire E1
      ALSA: hda/conexant: Apply quirk for another HP ZBook G5 model
      drm/i915: Fix invalid access to ACPI _DSM objects
      ALSA: usb-audio: Add MIDI quirk for Vox ToneLab EX
      ALSA: hda/conexant: Re-order CX5066 quirk table entries
      ALSA: usb-audio: Explicitly set up the clock selector
      media: dvb-usb: Fix use-after-free access
      media: dvb-usb: Fix memory leak at error in dvb_usb_device_init()
      ALSA: hda/realtek: Re-order ALC882 Acer quirk table entries
      ALSA: hda/realtek: Re-order ALC882 Sony quirk table entries
      ALSA: hda/realtek: Re-order ALC882 Clevo quirk table entries
      ALSA: hda/realtek: Re-order ALC269 HP quirk table entries
      ALSA: hda/realtek: Re-order ALC269 Acer quirk table entries
      ALSA: hda/realtek: Re-order ALC269 Dell quirk table entries
      ALSA: hda/realtek: Re-order ALC269 ASUS quirk table entries
      ALSA: hda/realtek: Re-order ALC269 Sony quirk table entries
      ALSA: hda/realtek: Re-order ALC269 Lenovo quirk table entries
      ALSA: hda/realtek: Re-order remaining ALC269 quirk table entries
      ALSA: hda/realtek: Re-order ALC662 quirk table entries
      ALSA: hda/realtek: Remove redundant entry for ALC861 Haier/Uniwill devices
      ALSA: hda/realtek: Fix speaker amp on HP Envy AiO 32
      ALSA: usb-audio: Add error checks for usb_driver_claim_interface() calls
      ALSA: hda/realtek: Add quirk for Lenovo Ideapad S740
      ALSA: intel8x0: Don't update period unless prepared
      ALSA: line6: Fix racy initialization of LINE6 MIDI
      ALSA: usb-audio: Validate MS endpoint descriptors
      ALSA: hda/realtek: Fix silent headphone output on ASUS UX430UA
      ALSA: hda/realtek: Add fixup for HP OMEN laptop

Takashi Sakamoto (7):
      ALSA: bebob: enable to deliver MIDI messages for multiple ports
      ALSA: dice: fix stream format for TC Electronic Konnekt Live at high sampling transfer frequency
      ALSA: firewire-lib: fix amdtp_packet tracepoints event for packet_index field
      ALSA: dice: fix stream format at middle sampling rate for Alesis iO 26
      ALSA: firewire-lib: fix calculation for size of IR context payload
      ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro
      ALSA: firewire-lib: fix check for the size of isochronous packet payload

Tanner Love (1):
      net/packet: make packet_fanout.arr size configurable up to 64K

Tao Liu (1):
      openvswitch: meter: fix race when getting now_ms.

Tao Ren (1):
      usb: gadget: aspeed: fix dma map failure

Tariq Toukan (1):
      net/mlx5e: Enforce minimum value check for ICOSQ size

Tasos Sahanidis (2):
      media: saa7134: use sg_dma_len when building pgtable
      media: saa7146: use sg_dma_len when building pgtable

Teava Radu (1):
      platform/x86: touchscreen_dmi: Add info for the Mediacom Winpad 7.0 W700 tablet

Tejas Patel (1):
      firmware: xilinx: Fix dereferencing freed memory

Tejun Heo (1):
      blk-iocost: fix weight updates of inner active iocgs

Tetsuo Handa (7):
      batman-adv: initialize "struct batadv_tvlv_tt_vlan_data"->reserved field
      lockdep: Add a missing initialization hint to the "INFO: Trying to register non-static key" message
      misc: vmw_vmci: explicitly initialize vmci_notify_bm_set_msg struct
      misc: vmw_vmci: explicitly initialize vmci_datagram payload
      ttyprintk: Add TTY hangup callback.
      Bluetooth: initialize skb_queue_head at l2cap_chan_create()
      tty: vt: always invoke vc->vc_sw->con_resize callback

Thadeu Lima de Souza Cascardo (3):
      io_uring: truncate lengths larger than MAX_RW_COUNT on provide buffers
      bpf, ringbuf: Deny reserve of buffers larger than ringbuf
      Bluetooth: cmtp: fix file refcount when cmtp_attach_device fails

Theodore Ts'o (2):
      fs: fix reporting supported extra file attributes for statx()
      ext4: allow the dax flag to be set and cleared on inline directories

Thinh Nguyen (5):
      usb: xhci: Fix port minor revision
      usb: dwc3: gadget: Check for disabled LPM quirk
      usb: dwc3: gadget: Remove FS bInterval_m1 limitation
      usb: dwc3: gadget: Fix START_TRANSFER link state check
      usb: dwc3: gadget: Properly track pending and queued SG

Thomas Gleixner (4):
      Revert 337f13046ff0 ("futex: Allow FUTEX_CLOCK_REALTIME with FUTEX_WAIT op")
      futex: Do not apply time namespace adjustment on FUTEX_LOCK_PI
      KVM: x86: Cancel pvclock_gtod_work on module removal
      KVM: x86: Prevent deadlock against tk_core.seq

Thomas Richter (1):
      perf ftrace: Fix access to pid in array when setting a pid filter

Thomas Zimmermann (1):
      drm/ast: Fix invalid usage of AST_MAX_HWC_WIDTH in cursor atomic_check

Tian Tao (1):
      dm integrity: fix missing goto in bitmap_flush_interval error handling

Tiezhu Yang (2):
      MIPS/bpf: Enable bpf_probe_read{, str}() on MIPS again
      MIPS: Loongson64: Use _CACHE_UNCACHED instead of _CACHE_UNCACHED_ACCELERATED

Timo Gurr (1):
      ALSA: usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8

Toke Høiland-Jørgensen (2):
      bpf: Enforce that struct_ops programs be GPL-only
      ath9k: Fix error check in ath9k_hw_read_revisions() for PCI devices

Tom Lendacky (2):
      x86/sev-es: Move sev_es_put_ghcb() in prep for follow on patch
      x86/sev-es: Invalidate the GHCB after completing VMGEXIT

Tom Seewald (3):
      qlcnic: Add null check after calling netdev_alloc_skb
      char: hpet: add checks after calling ioremap
      net: liquidio: Add missing null pointer checks

Tomas Winkler (1):
      mei: me: add Alder Lake P device id.

Tong Zhang (8):
      mISDN: fix crash in fritzpci
      drm/qxl: do not run release if qxl failed to init
      drm/ast: fix memory leak when unload the driver
      crypto: qat - don't release uninitialized resources
      crypto: qat - ADF_STATUS_PF_RUNNING should be set after adf_dev_init
      ALSA: hdsp: don't disable if not enabled
      ALSA: hdspm: don't disable if not enabled
      ALSA: rme9652: don't disable if not enabled

Tong Zhu (1):
      neighbour: Disregard DEAD dst in neigh_update

Tony Ambardar (1):
      powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h

Tony Lindgren (14):
      bus: ti-sysc: Fix warning on unbind if reset is not deasserted
      ARM: OMAP4: Fix PMIC voltage domains for bionic
      ARM: dts: Drop duplicate sha2md5_fck to fix clk_disable race
      ARM: dts: Fix moving mmc devices with aliases for omap4 & 5
      ARM: OMAP2+: Fix warning for omap_init_time_of()
      ARM: OMAP2+: Fix uninitialized sr_inst
      gpio: omap: Save and restore sysconfig
      ARM: dts: Fix swapped mmc order for omap3
      bus: ti-sysc: Probe for l4_wkup and l4_cfg interconnect devices first
      clocksource/drivers/timer-ti-dm: Fix posted mode status check order
      clocksource/drivers/timer-ti-dm: Add missing set_state_oneshot_stopped
      PM: runtime: Fix unpaired parent child_count for force_resume
      clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue
      clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940

Trond Myklebust (11):
      NFS: Don't discard pNFS layout segments that are marked for return
      NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
      NFS: nfs4_bitmask_adjust() must not change the server global bitmasks
      NFS: Fix attribute bitmask in _nfs42_proc_fallocate()
      NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
      NFS: Deal correctly with attribute generation counter overflow
      NFSv4.x: Don't return NFS4ERR_NOMATCHING_LAYOUT if we're unmounting
      NFS: NFS_INO_REVAL_PAGECACHE should mark the change attribute invalid
      NFS: Fix an Oopsable condition in __nfs_pageio_add_request()
      NFS: Don't corrupt the value of pg_bytes_written in nfs_do_recoalesce()
      SUNRPC: More fixes for backlog congestion

Tudor Ambarus (2):
      Revert "mtd: spi-nor: macronix: Add support for mx25l51245g"
      spi: spi-ti-qspi: Free DMA resources

Tvrtko Ursulin (1):
      drm/i915/overlay: Fix active retire callback alignment

Tyrel Datwyler (1):
      powerpc/pseries: extract host bridge from pci_bus prior to bus removal

Uladzislau Rezki (Sony) (1):
      kvfree_rcu: Use same set of GFP flags as does single-argument

Ulf Hansson (1):
      mmc: core: Fix hanging on I/O during system suspend for removable cards

Uwe Kleine-König (1):
      pwm: atmel: Fix duty cycle calculation in .get_state()

Vadym Kochan (1):
      net: marvell: prestera: fix port event handling on init

Vaibhav Jain (2):
      libnvdimm/region: Fix nvdimm_has_flush() to handle ND_REGION_ASYNC
      powerpc/mm: Add cond_resched() while removing hpte mappings

Valentin CARON - foss (1):
      ARM: dts: stm32: fix usart 2 & 3 pinconf to wake up with flow control

Valentin Schneider (1):
      sched/fair: Fix shift-out-of-bounds in load_balance()

Vamshi Krishna Gopal (1):
      ASoC: Intel: sof_sdw: add quirk for new ADL-P Rvp

Varad Gautam (1):
      ipc/mqueue, msg, sem: avoid relying on a stack reference past its expiry

Vasily Averin (1):
      tools/cgroup/slabinfo.py: updated to work on current kernel

Vasily Gorbik (2):
      s390/entry: save the caller of psw_idle
      s390/disassembler: increase ebpf disasm buffer size

Ville Syrjälä (2):
      drm/i915: Avoid div-by-zero on gen2
      drm/i915: Read C0DRB3/C1DRB3 as 16 bits again

Vinay Kumar Yadav (4):
      ch_ktls: Fix kernel panic
      ch_ktls: fix device connection close
      ch_ktls: tcb close causes tls connection failure
      ch_ktls: do not send snd_una update to TCB in middle

Vincent Donnefort (1):
      sched/pelt: Fix task util_est update filtering

Vincent Whitchurch (1):
      cifs: Silently ignore unknown oplock break handle

Vineet Gupta (1):
      ARC: entry: fix off-by-one error in syscall number validation

Viswas G (1):
      scsi: pm80xx: Fix chip initialization failure

Vitaly Chikunov (1):
      perf beauty: Fix fsconfig generator

Vitaly Kuznetsov (3):
      ACPI: processor: Fix build when CONFIG_ACPI_PROCESSOR=m
      genirq/matrix: Prevent allocation counter corruption
      KVM: nVMX: Always make an attempt to map eVMCS after migration

Vivek Goyal (5):
      fuse: fix write deadlock
      fuse: invalidate attrs when page writeback completes
      dax: Add an enum for specifying dax wakup mode
      dax: Add a wakeup mode parameter to put_unlocked_entry()
      dax: Wake up all waiters after invalidating dax entry

Vlad Buslov (4):
      net: sched: fix action overwrite reference counting
      net: sched: fix err handler in tcf_action_init()
      Revert "net: sched: bump refcount for new action in ACT replace mode"
      net: zero-initialize tc skb extension on allocation

Vladimir Barinov (1):
      arm64: dts: renesas: r8a77980: Fix vin4-7 endpoint binding

Vladimir Isaev (2):
      ARC: mm: PAE: use 40-bit physical page mask
      ARC: mm: Use max_high_pfn as a HIGHMEM zone border

Vladimir Murzin (1):
      ARM: 9069/1: NOMMU: Fix conversion for_each_membock() to for_each_mem_range()

Vladimir Oltean (8):
      net/sched: cls_flower: use ntohs for struct flow_dissector_key_ports
      net: dsa: sja1105: update existing VLANs from the bridge VLAN list
      net: dsa: sja1105: use 4095 as the private VLAN for untagged traffic
      net: dsa: sja1105: error out on unsupported PHY mode
      net: dsa: sja1105: add error handling in sja1105_setup()
      net: dsa: sja1105: call dsa_unregister_switch when allocating memory fails
      net: dsa: sja1105: fix VL lookup command packing for P/Q/R/S
      net: dsa: fix error code getting shifted with 4 in dsa_slave_get_sset_count

Vladyslav Tarasiuk (1):
      net/mlx4: Fix EEPROM dump support

Waiman Long (1):
      sched/debug: Fix cgroup_path[] serialization

Wan Jiabing (1):
      cavium/liquidio: Fix duplicate argument

Wang Li (2):
      spi: qup: fix PM reference leak in spi_qup_remove()
      spi: fsl-lpspi: Fix PM reference leak in lpspi_prepare_xfer_hardware()

Wang Qing (1):
      arc: kernel: Return -EFAULT if copy_to_user() fails

Wang Wensheng (5):
      RDMA/qedr: Fix error return code in qedr_iw_connect()
      IB/hfi1: Fix error return code in parse_platform_config()
      RDMA/bnxt_re: Fix error return code in bnxt_qplib_cq_process_terminal()
      RDMA/srpt: Fix error return code in srpt_cm_req_recv()
      mm/sparse: add the missing sparse_buffer_fini() in error branch

Wanpeng Li (5):
      KVM: LAPIC: Accurately guarantee busy wait for timer to expire when using hv_timer
      context_tracking: Move guest exit context tracking to separate helpers
      context_tracking: Move guest exit vtime accounting to separate helpers
      KVM: x86: Defer vtime accounting 'til after IRQ handling
      KVM: X86: Fix vCPU preempted state from guest's point of view

Wayne Lin (2):
      drm/dp_mst: Revise broadcast msg lct & lcr
      drm/dp_mst: Set CLEAR_PAYLOAD_ID_TABLE as broadcast

Wei Yongjun (7):
      spi: dln2: Fix reference leak to master
      spi: omap-100k: Fix reference leak to master
      usb: typec: tps6598x: Fix return value check in tps6598x_probe()
      usb: typec: stusb160x: fix return value check in stusb160x_probe()
      clocksource/drivers/ingenic_ost: Fix return value check in ingenic_ost_probe()
      spi: spi-zynqmp-gqspi: Fix missing unlock on error in zynqmp_qspi_exec_op()
      media: m88ds3103: fix return value check in m88ds3103_probe()

Wen Gong (6):
      mac80211: extend protection against mixed key and fragment cache attacks
      ath10k: add CCMP PN replay protection for fragmented frames for PCIe
      ath10k: drop fragments with multicast DA for PCIe
      ath10k: drop fragments with multicast DA for SDIO
      ath10k: drop MPDU which has discard flag set by firmware for SDIO
      ath10k: Fix TKIP Michael MIC verification for PCIe

Wengang Wang (1):
      ocfs2: fix deadlock between setattr and dio_end_io_write

Werner Sembach (1):
      drm/amd/display: Try YCbCr420 color when YCbCr444 fails

Wesley Cheng (2):
      usb: dwc3: gadget: Ignore EP queue requests during bus reset
      usb: dwc3: gadget: Return success always for kick transfer in ep queue

William A. Kennington III (1):
      spi: Fix use-after-free with devm_spi_alloc_*

William Roche (1):
      RAS/CEC: Correct ce_add_elem()'s returned values

Wolfram Sang (4):
      i2c: turn recovery error on init to debug
      i2c: rcar: make sure irq is not threaded on Gen2 and earlier
      i2c: rcar: protect against supurious interrupts on V3U
      i2c: bail out early when RDWR parameters are wrong

Wong Vee Khee (1):
      ethtool: fix incorrect datatype in set_eee ops

Wu Bo (2):
      nvmet: fix memory leak in nvmet_alloc_ctrl()
      nvme-loop: fix memory leak in nvme_loop_create_ctrl()

Xiang Chen (2):
      mtd: spi-nor: core: Fix an issue of releasing resources during read/write
      iommu: Fix a boundary issue to avoid performance drop

Xiao Ni (1):
      async_xor: increase src_offs when dropping destination page

Xiaogang Chen (1):
      drm/amdgpu/display: buffer INTERRUPT_LOW_IRQ_CONTEXT interrupt work

Xiaoming Ni (4):
      nfc: fix refcount leak in llcp_sock_bind()
      nfc: fix refcount leak in llcp_sock_connect()
      nfc: fix memory leak in llcp_sock_connect()
      nfc: Avoid endless loops caused by repeated llcp_sock_connect()

Xie He (2):
      Revert "drivers/net/wan/hdlc_fr: Fix a double free in pvc_xmit"
      net: lapbether: Prevent racing when checking whether the netif is running

Xie Yongji (1):
      vhost-vdpa: protect concurrent access to vhost device iotlb

Xin Long (9):
      esp: delete NETIF_F_SCTP_CRC bit from features for esp offload
      tipc: increment the tmp aead refcnt before attaching it
      xfrm: BEET mode doesn't support fragments for inner packets
      Revert "net/sctp: fix race condition in sctp_destroy_sock"
      sctp: delay auto_asconf init until binding the first addr
      sctp: do asoc update earlier in sctp_sf_do_dupcook_a
      sctp: fix a SCTP_MIB_CURRESTAB leak in sctp_sf_do_dupcook_b
      tipc: wait and exit until all work queues are done
      tipc: skb_linearize the head skb when reassembling msgs

Xingui Yang (1):
      ata: ahci: Disable SXS for Hisilicon Kunpeng920

Xu Yihang (1):
      ext4: fix error return code in ext4_fc_perform_commit()

Xu Yilun (1):
      mfd: intel-m10-bmc: Fix the register access range

Xuan Zhuo (1):
      xsk: Fix for xp_aligned_validate_desc() when len == chunk_size

Yang Yang (1):
      jffs2: check the validity of dstlen in jffs2_zlib_compress()

Yang Yingliang (15):
      usb: gadget: tegra-xudc: Fix possible use-after-free in tegra_xudc_remove()
      phy: phy-twl4030-usb: Fix possible use-after-free in twl4030_usb_remove()
      power: supply: generic-adc-battery: fix possible use-after-free in gab_remove()
      power: supply: s3c_adc_battery: fix possible use-after-free in s3c_adc_bat_remove()
      media: tc358743: fix possible use-after-free in tc358743_remove()
      media: adv7604: fix possible use-after-free in adv76xx_remove()
      media: i2c: adv7511-v4l2: fix possible use-after-free in adv7511_remove()
      media: i2c: tda1997: Fix possible use-after-free in tda1997x_remove()
      media: i2c: adv7842: fix possible use-after-free in adv7842_remove()
      USB: gadget: udc: fix wrong pointer passed to IS_ERR() and PTR_ERR()
      spi: fsl: add missing iounmap() on error in of_fsl_spi_probe()
      media: omap4iss: return error code when omap4iss_get() failed
      net/tipc: fix missing destroy_workqueue() on error in tipc_crypto_start()
      PCI: endpoint: Fix missing destroy_workqueue()
      tools/testing/selftests/exec: fix link error

Yangbo Lu (1):
      ptp_qoriq: fix overflow in ptp_qoriq_adjfine() u64 calcalation

Yannick Vignon (1):
      net: stmmac: Do not enable RX FIFO overflow interrupts

Yaqi Chen (1):
      samples/bpf: Fix broken tracex1 due to kprobe argument change

Ye Bin (2):
      ext4: fix ext4_error_err save negative errno into superblock
      usbip: vudc: fix missing unlock on error in usbip_sockfd_store()

Yi Li (1):
      drm/amdgpu: Fix GPU TLB update error when PAGE_SIZE > AMDGPU_PAGE_SIZE

Yi Zhuang (1):
      f2fs: Fix a hungtask problem in atomic write

Yingjie Wang (1):
      drm/radeon: Fix a missing check bug in radeon_dp_mst_detect()

Yinjun Zhang (3):
      nfp: flower: ignore duplicate merge hints from FW
      nfp: devlink: initialize the devlink port attribute "lanes"
      bpf, offload: Reorder offload callback 'prepare' in verifier

Yonghong Song (3):
      bpf, x86: Use kvmalloc_array instead kmalloc_array in bpf_jit_comp
      bpf: Permits pointers on stack for helper calls
      selftests: Set CC to clang in lib.mk if LLVM is set

Yongxin Liu (2):
      ice: fix memory leak of aRFS after resuming from suspend
      ixgbe: fix unbalanced device enable/disable in suspend/resume

Yoshihiro Shimoda (5):
      ARM: dts: renesas: Add mmc aliases into R-Car Gen2 board dts files
      arm64: dts: renesas: Add mmc aliases into board dts files
      arm64: dts: renesas: r8a779a0: Fix PMU interrupt
      net: renesas: ravb: Fix a stuck issue when a lot of frames are received
      usb: gadget: udc: renesas_usb3: Fix a race in usb3_start_pipen()

Yu Chen (1):
      usb: dwc3: core: Do core softreset when switch mode

Yuanyuan Zhong (1):
      pinctrl: lewisburg: Update number of pins in community

YueHaibing (2):
      PM: runtime: Replace inline function pm_runtime_callbacks_present()
      iio: adc: ad7793: Add missing error code in ad7793_setup()

Yufen Yu (1):
      block: only update parent bi_status when bio fail

Yufeng Mo (3):
      net: hns3: fix incorrect configuration for igu_egu_hw_err
      net: hns3: initialize the message content in hclge_get_link_mode()
      net: hns3: disable phy loopback setting in hclge_mac_start_phy

Yunjian Wang (2):
      net: cls_api: Fix uninitialised struct field bo->unlocked_driver_cb
      i40e: Fix use-after-free in i40e_client_subtask()

Yunsheng Lin (5):
      net: hns3: add handling for xmit skb with recursive fraglist
      net: sched: fix packet stuck problem for lockless qdisc
      net: sched: fix tx action rescheduling issue during deactivation
      net: sched: fix tx action reschedule issue with stopped queue
      net: hns3: check the return of skb_checksum_help()

Zhang Xiaoxu (1):
      NFSv4: Fix v4.0/v4.1 SEEK_DATA return -ENOTSUPP when set NFS_V4_2 config

Zhang Yi (2):
      ext4: fix check to prevent false positive report of incorrect used inodes
      ext4: do not set SB_ACTIVE in ext4_orphan_cleanup()

Zhang Zhengming (1):
      bridge: Fix possible races between assigning rx_handler_data and setting IFF_BRIDGE_PORT bit

Zhao Heming (1):
      md: md_open returns -EBUSY when entering racing area

Zhen Lei (9):
      perf map: Fix error return code in maps__clone()
      perf data: Fix error return code in perf_data__create_dir()
      iommu/arm-smmu-v3: add bit field SFM into GERROR_ERR_MASK
      tpm: fix error return code in tpm2_get_cc_attrs_tbl()
      ARM: 9064/1: hw_breakpoint: Do not directly check the event's overflow_handler hook
      xen/unpopulated-alloc: fix error return code in fill_list()
      dt-bindings: serial: 8250: Remove duplicated compatible strings
      scsi: qla2xxx: Fix error return code in qla82xx_write_flash_dword()
      net: bnx2: Fix error return code in bnx2_init_board()

Zheng Yongjun (1):
      net: openvswitch: conntrack: simplify the return expression of ovs_ct_limit_get_default_limit()

Zheyu Ma (1):
      serial: rp2: use 'request_firmware' instead of 'request_firmware_nowait'

Zhouyi Zhou (1):
      rcu: Remove spurious instrumentation_end() in rcu_nmi_enter()

Zhu Lingshan (1):
      Revert "irqbypass: do not start cons/prod when failed connect"

Zihao Yu (1):
      riscv,entry: fix misaligned base for excp_vect_table

Zolton Jheng (1):
      USB: serial: pl2303: add device id for ADLINK ND-6530 GC

Zou Wei (2):
      gpio: cadence: Add missing MODULE_DEVICE_TABLE
      interconnect: qcom: Add missing MODULE_DEVICE_TABLE

Zqiang (3):
      workqueue: Move the position of debug_work_activate() in __queue_work()
      lib: stackdepot: turn depot_lock spinlock to raw_spinlock
      locking/mutex: clear MUTEX_FLAGS if wait_list is empty due to signal

brian-sy yang (1):
      thermal/drivers/cpufreq_cooling: Fix slab OOB issue

dillon min (1):
      dt-bindings: serial: stm32: Use 'type: object' instead of false for 'additionalProperties'

dongjian (1):
      power: supply: Use IRQF_ONESHOT

gexueyuan (1):
      memory: pl353: fix mask of ECC page_size config register

karthik alapati (1):
      staging: wimax/i2400m: fix byte-order issue

kernel test robot (2):
      of: overlay: fix for_each_child.cocci warnings
      ALSA: usb-audio: scarlett2: snd_scarlett_gen2_controls_create() can be static

lizhe (1):
      jffs2: Fix kasan slab-out-of-bounds problem

louis.wang (1):
      ARM: 9066/1: ftrace: pause/unpause function graph tracer in cpu_suspend()

mark-yw.chen (1):
      Bluetooth: btusb: Enable quirk boolean flag for Mediatek Chip.

shaoyunl (1):
      drm/amdgpu : Fix asic reset regression issue introduce by 8f211fe8ac7c4f

wenxu (1):
      net/mlx5e: fix ingress_ifindex check in mlx5e_flower_parse_meta

xinhui pan (1):
      drm/amdgpu: Fix a use-after-free

yangerkun (1):
      block: reexpand iov_iter after read/write

zhouchuangao (1):
      fs/nfs: Use fatal_signal_pending instead of signal_pending

Álvaro Fernández Rojas (3):
      mtd: rawnand: brcmnand: fix OOB R/W with Hamming ECC
      gpio: guard gpiochip_irqchip_add_domain() with GPIOLIB_IRQCHIP
      mips: bmips: fix syscon-reboot nodes

Íñigo Huguet (1):
      net:CXGB4: fix leak if sk_buff is not used

周琰杰 (Zhou Yanjie) (1):
      I2C: JZ4780: Fix bug for Ingenic X1000.

BUG=None
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Updated the Linux kernel to v5.10.42.

Signed-off-by: Oleksandr Tymoshenko <ovt@google.com>
Change-Id: I9b9de1782f69d84d170525465fd19af43a7a9160
