tree 4898953860202e450d857aa214626787908105cb
parent 27b2feabe9aa7cee08b911211b19b36cc1c9d573
parent 3238bffaf9928c10173d88415f6815f6df3e7771
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1649495136 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1649495137 -0700

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

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

Aaron Conole (1):
      openvswitch: always update flow key after nat

Aashish Sharma (1):
      dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS

Abel Vesa (2):
      clk: imx7d: Remove audio_mclk_root_clk
      ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk

Adrian Hunter (2):
      perf/core: Fix address filter parser for multiple filters
      perf/x86/intel/pt: Fix address filter config for 32-bit kernel

Aharon Landau (1):
      RDMA/mlx5: Fix the flow of a miss in the allocation of a cache ODP MR

Akira Kawata (1):
      fs/binfmt_elf: Fix AT_PHDR for unusual ELF files

Alan Stern (1):
      USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c

Alexander Lobakin (2):
      i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
      i40e: respect metadata on XSK Rx to skb

Alexander Usyskin (2):
      mei: me: add Alder Lake N device id.
      mei: avoid iterator usage outside of list_for_each_entry

Alexey Khoroshilov (1):
      NFS: remove unneeded check in decode_devicenotify_args()

Alistair Delva (1):
      remoteproc: Fix count check in rproc_coredump_write()

Alistair Popple (1):
      mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node

Amadeusz Sławiński (1):
      ASoC: topology: Allow TLV control to be either read or write

Amir Goldstein (1):
      nfsd: more robust allocation failure handling in nfsd_file_cache_init

Ammar Faizi (1):
      ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM

Anders Roxell (3):
      powerpc/lib/sstep: Fix 'sthcx' instruction
      powerpc/lib/sstep: Fix build errors with newer binutils
      powerpc: Fix build errors with newer binutils

Andre Przywara (1):
      ARM: configs: multi_v5_defconfig: re-enable CONFIG_V4L_PLATFORM_DRIVERS

Andreas Gruenbacher (1):
      powerpc/kvm: Fix kvm_use_magic_page

Andrew Price (1):
      gfs2: Make sure FITRIM minlen is rounded up to fs block size

Andy Shevchenko (3):
      spi: pxa2xx-pci: Balance reference count for PCI DMA device
      serial: 8250_mid: Balance reference count for PCI DMA device
      serial: 8250_lpss: Balance reference count for PCI DMA device

Ang Tien Sung (1):
      firmware: stratix10-svc: add missing callback parameter on RSU

Anssi Hannula (3):
      xhci: fix garbage USBSTS being logged in some cases
      xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()
      hv_balloon: rate-limit "Unhandled message" warning

Anton Ivanov (1):
      um: Fix uml_mconsole stop/go

Ard Biesheuvel (1):
      ARM: ftrace: avoid redundant loads or clobbering IP

Armin Wolf (1):
      hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING

Arnd Bergmann (4):
      uaccess: fix nios2 and microblaze get_user_8()
      uaccess: fix type mismatch warnings from access_ok()
      lib/test_lockup: fix kernel pointer check for separate address spaces
      ARM: iop32x: offset IRQ numbers by 1

Arun Easi (2):
      scsi: qla2xxx: Fix device reconnect in loop topology
      scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests

Arınç ÜNAL (5):
      staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
      staging: mt7621-dts: fix formatting
      staging: mt7621-dts: fix pinctrl properties for ethernet
      staging: mt7621-dts: fix GB-PC2 devicetree
      staging: mt7621-dts: fix pinctrl-0 items to be size-1 items on ethernet

Athira Rajeev (1):
      powerpc/perf: Don't use perf_hw_context for trace IMC PMU

Bagas Sanjaya (2):
      Documentation: add link to stable release candidate tree
      Documentation: update stable tree link

Baokun Li (5):
      jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
      jffs2: fix memory leak in jffs2_do_mount_fs
      jffs2: fix memory leak in jffs2_scan_medium
      ubifs: rename_whiteout: correct old_dir size computing
      ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl

Bartosz Golaszewski (1):
      Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"

Bharata B Rao (1):
      sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa

Biju Das (2):
      spi: Fix invalid sgs value
      spi: Fix erroneous sgs value with min_t()

Bikash Hazarika (1):
      scsi: qla2xxx: Fix wrong FDMI data for 64G adapter

Bjorn Helgaas (1):
      PCI: Avoid broken MSI on SB600 USB devices

Brandon Wyman (1):
      hwmon: (pmbus) Add Vin unit off handling

Casey Schaufler (2):
      LSM: general protection fault in legacy_parse_param
      Fix incorrect type in assignment of ipv6 port for audit

Chaitanya Kulkarni (1):
      loop: use sysfs_emit() in the sysfs xxx show()

Chao Yu (6):
      f2fs: fix to unlock page correctly in error path of is_alive()
      f2fs: fix to do sanity check on .cp_pack_total_block_count
      f2fs: fix to enable ATGC correctly via gc_idle sysfs interface
      f2fs: fix to avoid potential deadlock
      f2fs: fix to do sanity check on curseg->alloc_type
      f2fs: compress: fix to print raw data size in error path of lz4 decompression

Charan Teja Kalla (3):
      mm: madvise: skip unmapped vma holes passed to process_madvise
      mm: madvise: return correct bytes advised with process_madvise
      Revert "mm: madvise: skip unmapped vma holes passed to process_madvise"

Charles Keepax (1):
      ASoC: madera: Add dependencies on MFD

Chen Jingwen (1):
      powerpc/kasan: Fix early region not updated correctly

Chen-Yu Tsai (7):
      media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
      media: hantro: Fix overfill bottom register field name
      pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_* readback
      pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
      pinctrl: mediatek: paris: Fix pingroup pin config state readback
      pinctrl: mediatek: paris: Skip custom extra pin config dump for virtual GPIOs
      pinctrl: pinconf-generic: Print arguments for bias-pull-*

Chris Leech (1):
      nvme-tcp: lockdep: annotate in-kernel sockets

Christian Göttsche (2):
      selinux: check return value of sel_make_avc_files
      selinux: use correct type for context length

Christoph Hellwig (1):
      nvme: cleanup __nvme_check_ids

Christophe JAILLET (4):
      firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL is not defined
      gpu: host1x: Fix a memory leak in 'host1x_remove()'
      fsi: Aspeed: Fix a potential double free
      misc: alcor_pci: Fix an error handling path

Christophe Leroy (1):
      livepatch: Fix build failure on 32 bits processors

Chuck Lever (1):
      NFSD: Fix nfsd_breaker_owns_lease() return values

Claudiu Beznea (3):
      net: dsa: microchip: add spi_device_id tables
      hwrng: atmel - disable trng on failure path
      clocksource/drivers/timer-microchip-pit64b: Use notrace

Codrin Ciubotariu (2):
      ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
      clk: at91: sama7g5: fix parents of PDMCs' GCLK

Colin Ian King (2):
      carl9170: fix missing bit-wise or operator for tx_params
      iwlwifi: Fix -EIO error code that is never returned

Cooper Chiou (1):
      drm/edid: check basic audio support on CEA extension block

Corentin Labbe (8):
      crypto: sun8i-ss - really disable hash on A80
      crypto: rockchip - ECB does not need IV
      crypto: sun8i-ss - call finalize with bh disabled
      crypto: sun8i-ce - call finalize with bh disabled
      crypto: amlogic - call finalize with bh disabled
      media: staging: media: zoran: fix usage of vb2_dma_contig_set_max_seg_size
      media: staging: media: zoran: move videodev alloc
      media: staging: media: zoran: calculate the right buffer number for zoran_reap_stat_com

Dafna Hirschfeld (1):
      media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUED

Damien Le Moal (11):
      scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
      scsi: pm8001: Fix command initialization in pm80XX_send_read_log()
      scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()
      scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()
      scsi: pm8001: Fix le32 values handling in pm80xx_set_sas_protocol_timer_config()
      scsi: pm8001: Fix payload initialization in pm80xx_encrypt_update()
      scsi: pm8001: Fix le32 values handling in pm80xx_chip_ssp_io_req()
      scsi: pm8001: Fix le32 values handling in pm80xx_chip_sata_req()
      scsi: pm8001: Fix NCQ NON DATA command task initialization
      scsi: pm8001: Fix NCQ NON DATA command completion handling
      scsi: pm8001: Fix abort all task initialization

Dan Carpenter (9):
      greybus: svc: fix an error handling bug in gb_svc_hello()
      NFSD: prevent underflow in nfssvc_decode_writeargs()
      NFSD: prevent integer overflow on 32 bit systems
      video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()
      video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()
      media: usb: go7007: s2250-board: fix leak in probe()
      iwlwifi: mvm: Fix an error code in iwl_mvm_up()
      USB: storage: ums-realtek: fix error code in rts51x_read_mem()
      lib/test: use after free in register_test_dev_kmod()

Dan Williams (1):
      nvdimm/region: Fix default alignment for small regions

Daniel González Cabanelas (1):
      media: cx88-mpeg: clear interrupt status register before streaming video

Daniel Henrique Barboza (1):
      powerpc/mm/numa: skip NUMA_NO_NODE onlining in parse_numa_properties()

Daniel Palmer (1):
      ARM: mstar: Select HAVE_ARM_ARCH_TIMER

Daniel Thompson (2):
      soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
      kdb: Fix the putarea helper function

Dario Binacchi (1):
      mtd: rawnand: gpmi: fix controller timings setting

Darren Hart (1):
      ACPI/APEI: Limit printable size of BERT table data

Dave Stevenson (1):
      regulator: rpi-panel: Handle I2C errors/timing to the Atmel

David Engraf (1):
      arm64: signal: nofpsimd: Do not allocate fp/simd context when not available

David Gow (1):
      firmware: google: Properly state IOMEM dependency

David Heidelberg (2):
      arm64: dts: qcom: sdm845: fix microphone bias properties and values
      ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960

David Howells (3):
      watch_queue: Fix NULL dereference in error cleanup
      watch_queue: Actually free the watch
      rxrpc: Fix call timer start racing with call destruction

David Matlack (1):
      KVM: Prevent module exit until all VMs are freed

Dirk Buchwalder (1):
      clk: qcom: ipq8074: Use floor ops for SDCC1 clock

Dirk Müller (1):
      lib/raid6/test: fix multiple definition linking error

Dmitry Baryshkov (3):
      drm/msm/dpu: add DSPP blocks teardown
      drm/msm/dpu: fix dp audio condition
      PM: core: keep irq flags in device_pm_check_callbacks()

Dmitry Torokhov (1):
      HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports

Dmitry Vyukov (1):
      riscv: Increase stack size under KASAN

Dongliang Mu (3):
      media: em28xx: initialize refcount before kref_get
      ntfs: add sanity check on allocation size
      media: hdpvr: initialize dev->worker at hdpvr_register_videodev

Drew Fustini (1):
      clocksource/drivers/timer-ti-dm: Fix regression from errata i940 fix

Duoming Zhou (2):
      drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()
      net/x25: Fix null-ptr-deref caused by x25_disconnect

Dāvis Mosāns (1):
      crypto: ccp - ccp_dmaengine_unregister release dma channels

Eddie James (1):
      USB: serial: pl2303: add IBM device IDs

Eric Biggers (6):
      KEYS: fix length validation in keyctl_pkey_params_get_2()
      crypto: rsa-pkcs1pad - only allow with rsa
      crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
      crypto: rsa-pkcs1pad - restore signature length check
      crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
      block: don't delete queue kobject before its children

Eric Dumazet (2):
      rseq: Optimise rseq_get_rseq_cs() and clear_rseq_cs()
      watch_queue: Free the page array when watch_queue is dismantled

Eric W. Biederman (4):
      coredump: Snapshot the vmas in do_coredump
      coredump: Remove the WARN_ON in dump_vma_snapshot
      coredump/elf: Pass coredump_params into fill_note_info
      coredump: Use the vma snapshot in fill_files_note

Evgeny Novikov (1):
      video: fbdev: w100fb: Reset global state

Fabiano Rosas (2):
      KVM: PPC: Fix vmx/vsx mixup in mmio emulation
      KVM: PPC: Book3S HV: Check return value of kvmppc_radix_init

Fangrui Song (1):
      riscv module: remove (NOLOAD)

Felix Maurer (1):
      selftests/bpf: Make test_lwt_ip_encap more stable and faster

Fengnan Chang (2):
      f2fs: compress: remove unneeded read when rewrite whole cluster
      f2fs: fix compressed file start atomic write may cause data corruption

Filipe Manana (1):
      btrfs: fix unexpected error path when reflinking an inline extent

Florian Fainelli (1):
      net: phy: broadcom: Fix brcm_fet_config_init()

Frank Wunderlich (1):
      arm64: dts: broadcom: Fix sata nodename

Geert Uytterhoeven (3):
      hwrng: cavium - HW_RANDOM_CAVIUM should depend on ARCH_THUNDER
      pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
      pinctrl: renesas: checker: Fix miscalculation of number of states

George Kennedy (1):
      video: fbdev: cirrusfb: check pixclock to avoid divide by zero

Gilad Ben-Yossef (1):
      crypto: ccree - don't attempt 0 len DMA mappings

Greg Kroah-Hartman (1):
      Linux 5.10.110

Guangbin Huang (1):
      net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware

Guilherme G. Piccoli (1):
      docs: sysctl/kernel: add missing bit to panic_print

Guillaume Nault (1):
      ipv4: Fix route lookups when handling ICMP redirects and PMTU updates

Guillaume Ranquet (1):
      clocksource/drivers/timer-of: Check return value of of_iomap in timer_of_base_init()

Guillaume Tucker (1):
      selftests, x86: fix how check_cc.sh is being invoked

Gwendal Grignou (2):
      HID: intel-ish-hid: Use dma_alloc_coherent for firmware update
      platform: chrome: Split trace include file

Haimin Zhang (1):
      af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register

Halil Pasic (1):
      swiotlb: fix info leak with DMA_FROM_DEVICE

Hangbin Liu (2):
      bareudp: use ipv6_mod_enabled to check if IPv6 enabled
      selftests/bpf/test_lirc_mode2.sh: Exit with proper code

Hangyu Hua (4):
      can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
      powerpc: 8xx: fix a return value error in mpc8xx_pic_init
      can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
      can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error path

Hans Verkuil (2):
      ivtv: fix incorrect device_caps for ivtvfb
      media: staging: media: zoran: fix various V4L2 compliance errors

Hans de Goede (3):
      power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return
      iio: mma8452: Fix probe failing when an i2c_device_id is used
      media: atomisp_gmin_platform: Add DMI quirk to not turn AXP ELDO2 regulator off on some boards

Hector Martin (4):
      brcmfmac: firmware: Allocate space for default boardrev in nvram
      brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
      brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
      brcmfmac: pcie: Fix crashes due to early IRQs

Helge Deller (1):
      video: fbdev: sm712fb: Fix crash in smtcfb_read()

Hengqi Chen (1):
      bpf: Fix comment for helper bpf_current_task_under_cgroup()

Henry Lin (1):
      xhci: fix runtime PM imbalance in USB2 resume

Herbert Xu (2):
      crypto: authenc - Fix sleep in atomic context in decrypt_tail
      crypto: arm/aes-neonbs-cbc - Select generic cbc and aes

Hoang Le (1):
      tipc: fix the timer expires after interval 100ms

Hou Tao (2):
      bpf, arm64: Call build_prologue() first in first JIT pass
      bpf, arm64: Feed byte-offset into bpf line info

Hou Wenlong (1):
      KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()

Hugh Dickins (1):
      mempolicy: mbind_range() set_policy() after vma_merge()

Håkon Bugge (1):
      IB/cma: Allow XRC INI QPs to set their local ACK timeout

Ido Schimmel (1):
      selftests: test_vxlan_under_vrf: Fix broken test case

Ilpo Järvinen (1):
      serial: 8250: fix XOFF/XON sending when DMA is used

Jaegeuk Kim (1):
      f2fs: fix missing free nid in f2fs_handle_failed_inode

Jagan Teki (1):
      drm: bridge: adv7511: Fix ADV7535 HPD enablement

Jakob Koschel (2):
      media: saa7134: fix incorrect use to determine if list is empty
      powerpc/sysdev: fix incorrect use to determine if list is empty

Jakub Kicinski (1):
      tcp: ensure PMTU updates are processed during fastopen

Jakub Sitnicki (1):
      selftests/bpf: Fix error reporting from sock_fields programs

James Clark (1):
      coresight: Fix TRCCONFIGR.QE sysfs interface

Jammy Huang (1):
      media: aspeed: Correct value for h-total-pixels

Jani Nikula (1):
      drm/i915/opregion: check port number bounds for SWSCI display power state

Jann Horn (3):
      ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
      coredump: Also dump first pages of non-executable ELF libraries
      pstore: Don't use semaphores in always-atomic-context code

Jason A. Donenfeld (2):
      wireguard: queueing: use CFI-safe ptr_ring cleanup function
      wireguard: socket: ignore v6 endpoints when ipv6 is disabled

Jens Axboe (1):
      io_uring: terminate manual loop iterator loop correctly for non-vecs

Jeremy Linton (1):
      net: bcmgenet: Use stronger register read/writes to assure ordering

Jernej Skrabec (2):
      media: cedrus: H265: Fix neighbour info buffer size
      media: cedrus: h264: Fix neighbour info buffer size

Jia-Ju Bai (3):
      ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()
      memory: emif: check the pointer temp in get_device_details()
      platform/x86: huawei-wmi: check the return value of device_create_file()

Jian Shen (1):
      net: hns3: fix bug when PF set the duplicate MAC address for VFs

Jianglei Nie (1):
      crypto: ccree - Fix use after free in cc_cipher_exit()

Jianyong Wu (1):
      arm64/mm: avoid fixmap race condition when create pud mapping

Jiasheng Jiang (26):
      thermal: int340x: Check for NULL after calling kmemdup()
      spi: spi-zynqmp-gqspi: Handle error for dma_set_mask
      media: mtk-vcodec: potential dereference of null pointer
      media: meson: vdec: potential dereference of null pointer
      soc: qcom: rpmpd: Check for null return of devm_kcalloc
      ASoC: ti: davinci-i2s: Add check for clk_enable()
      ALSA: spi: Add check for clk_enable()
      ASoC: mxs-saif: Handle errors for clk_enable
      ASoC: atmel_ssc_dai: Handle errors for clk_enable
      ASoC: dwc-i2s: Handle errors for clk_enable
      ASoC: soc-compress: prevent the potentially use of null pointer
      memory: emif: Add check for setup_interrupts
      media: vidtv: Check for null return of vzalloc
      ASoC: wm8350: Handle error for wm8350_register_irq
      ASoC: fsi: Add check for clk_enable
      mmc: davinci_mmc: Handle error for clk_enable
      drm/panfrost: Check for error num after setting mask
      mtd: onenand: Check for error irq
      ray_cs: Check ioremap return value
      iommu/ipmmu-vmsa: Check for error num after setting mask
      power: supply: wm8350-power: Handle error for wm8350_register_irq
      power: supply: wm8350-power: Add missing free in free_charger_irq
      mfd: mc13xxx: Add check for mc13xxx_irq_request
      iio: adc: Add check for devm_request_threaded_irq
      habanalabs: Add check for pci_enable_device
      ASoC: soc-compress: Change the check for codec_dai

Jiaxin Yu (1):
      ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs

Jie Hai (1):
      dmaengine: hisi_dma: fix MSI allocate fail when reload hisi_dma

Jing Yao (3):
      video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()
      video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of snprintf()
      video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit

Jiri Slaby (1):
      mxser: fix xmit_buf leak in activate when LSR == 0xff

Jocelyn Falempe (1):
      mgag200 fix memmapsl configuration in GCTL6 register

Joe Carnuccio (2):
      scsi: qla2xxx: Add devids and conditionals for 28xx
      scsi: qla2xxx: Check for firmware dump already collected

Johan Hovold (3):
      USB: serial: simple: add Nokia phone driver
      media: davinci: vpif: fix unbalanced runtime PM get
      media: davinci: vpif: fix unbalanced runtime PM enable

John David Anglin (1):
      parisc: Fix handling off probe non-access faults

Jonathan Cameron (1):
      staging:iio:adc:ad7280a: Fix handing of device address bit reversing.

Jonathan Neuschäfer (5):
      clk: actions: Terminate clk_div_table with sentinel element
      clk: loongson1: Terminate clk_div_table with sentinel element
      clk: clps711x: Terminate clk_div_table with sentinel element
      pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()
      pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()

José Expósito (1):
      Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"

Juergen Gross (1):
      xen: fix is_xen_pmu()

Juhyung Park (1):
      f2fs: quota: fix loop condition at f2fs_quota_sync()

Kai-Heng Feng (1):
      ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020

Kees Cook (2):
      exec: Force single empty string when argv is empty
      gcc-plugins/stackleak: Exactly match strings instead of prefixes

Konrad Dybcio (1):
      clk: qcom: gcc-msm8994: Fix gpll4 width

Krzysztof Kozlowski (5):
      pinctrl: samsung: drop pin banks references on error paths
      ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
      ARM: dts: exynos: add missing HDMI supplies on SMDK5250
      ARM: dts: exynos: add missing HDMI supplies on SMDK5420
      clocksource/drivers/exynos_mct: Handle DTS with higher number of interrupts

Kuan-Ying Lee (1):
      mm/kmemleak: reset tag when compare object pointer

Kuldeep Singh (3):
      arm64: dts: ns2: Fix spi-cpol and spi-cpha property
      ARM: dts: spear1340: Update serial node properties
      ARM: dts: spear13xx: Update SPI dma properties

Kunihiko Hayashi (1):
      clk: uniphier: Fix fixed-rate initialization

Kuogee Hsieh (1):
      drm/msm/dp: populate connector of struct dp_panel

Lars Ellenberg (1):
      drbd: fix potential silent data corruption

Li RongQing (1):
      KVM: x86: fix sending PV IPI

Liam Beguin (4):
      iio: afe: rescale: use s64 for temporary scale calculations
      iio: inkern: apply consumer scale on IIO_VAL_INT cases
      iio: inkern: apply consumer scale when no channel scale is available
      iio: inkern: make a best effort on offset calculation

Libin Yang (1):
      soundwire: intel: fix wrong register name in intel_shim_wake

Liguang Zhang (1):
      PCI: pciehp: Clear cmd_busy bit in polling mode

Lina Wang (1):
      xfrm: fix tunnel model fragmentation behavior

Lino Sanfilippo (1):
      tpm: fix reference counting for struct tpm_chip

Linus Torvalds (2):
      fs: fd tables have to be multiples of BITS_PER_LONG
      fs: fix fd table size alignment properly

Linus Walleij (1):
      Input: zinitix - do not report shadow fingers

Liu Ying (1):
      phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})

Lorenzo Bianconi (4):
      mt76: mt7915: use proper aid value in mt7915_mcu_wtbl_generic_tlv in sta mode
      mt76: mt7915: use proper aid value in mt7915_mcu_sta_basic_tlv
      mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
      mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update

Luca Weiss (1):
      cpufreq: qcom-cpufreq-nvmem: fix reading of PVS Valid fuse

Lucas Tanure (1):
      i2c: meson: Fix wrong speed use from probe

Lucas Zampieri (1):
      HID: logitech-dj: add new lightspeed receiver id

Lv Ruyi (1):
      proc: bootconfig: Add null pointer check

Maciej W. Rozycki (1):
      DEC: Limit PMAX memory probing to R3k systems

Manish Chopra (2):
      qed: display VF trust config
      qed: validate and restrict untrusted VFs vlan promisc mode

Manish Rangankar (1):
      scsi: qla2xxx: Use correct feature type field during RFF_ID processing

Maor Gottlieb (1):
      RDMA/core: Set MR type in ib_reg_user_mr

Marc Kleine-Budde (1):
      can: m_can: m_can_tx_handler(): fix use after free of skb

Marc Zyngier (4):
      PCI: xgene: Revert "PCI: xgene: Fix IB window setup"
      pinctrl: npcm: Fix broken references to chip->parent_device
      irqchip/qcom-pdc: Fix broken locking
      PCI: xgene: Revert "PCI: xgene: Use inbound resources for setup"

Marcel Ziswiler (1):
      arm64: defconfig: build imx-sdma as a module

Marcelo Roberto Jimenez (1):
      gpio: Revert regression in sysfs-gpio (gpiolib.c)

Marek Szyprowski (1):
      clocksource/drivers/exynos_mct: Refactor resources allocation

Marek Vasut (1):
      ARM: dts: imx: Add missing LVDS decoder on M53Menlo

Marijn Suijten (1):
      firmware: qcom: scm: Remove reassignment to desc following initializer

Mark Tomlinson (1):
      PCI: Reduce warnings on possible RW1C corruption

Martin Blumenstingl (1):
      drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops

Martin Varghese (1):
      openvswitch: Fixed nd target mask field in the flow dump.

Mastan Katragadda (1):
      drm/i915/gem: add missing boundary check in vm_access

Mathias Nyman (1):
      xhci: make xhci_handshake timeout for xhci_reset() adjustable

Mathieu Desnoyers (1):
      rseq: Remove broken uapi field layout on 32-bit little endian

Matt Kramer (1):
      ALSA: hda/realtek: Add alc256-samsung-headphone fixup

Matthew Wilcox (Oracle) (2):
      XArray: Fix xas_create_range() when multi-order entry present
      XArray: Update the LRU list in xas_split()

Maulik Shah (1):
      arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc

Mauro Carvalho Chehab (1):
      media: atomisp: fix bad usage at error handling logic

Max Filippov (2):
      xtensa: fix stop_machine_cpuslocked call in patch_text
      xtensa: fix xtensa_wsr always writing 0

Maxim Kiselev (1):
      powerpc: dts: t1040rdb: fix ports names for Seville Ethernet switch

Maxime Ripard (2):
      drm/edid: Don't clear formats if using deep color
      clk: Initialize orphan req_rate

Maíra Canal (1):
      drm/amd/display: Remove vupdate_int_entry definition

Miaoqian Lin (31):
      spi: tegra114: Add missing IRQ check in tegra_spi_probe
      hwrng: nomadik - Change clk_disable to clk_disable_unprepare
      media: coda: Fix missing put_device() call in coda_get_vdoa_data
      soc: qcom: ocmem: Fix missing put_device() call in of_get_ocmem
      soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
      ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
      video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
      ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in rockchip_i2s_probe
      ASoC: SOF: Add missing of_node_put() in imx8m_probe
      ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
      ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe
      ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probe
      ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe
      ASoC: codecs: wcd934x: Add missing of_node_put() in wcd934x_codec_parse_data
      drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
      drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
      drm/bridge: nwl-dsi: Fix PM disable depth imbalance in nwl_dsi_probe
      power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
      power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
      drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
      ath10k: Fix error handling in ath10k_setup_msa_resources
      mips: cdmm: Fix refcount leak in mips_cdmm_phys_base
      mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
      remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
      remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region
      remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region
      clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver
      pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
      pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
      pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
      watchdog: rti-wdt: Add missing pm_runtime_disable() in probe function

Michael Ellerman (1):
      powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit

Michael S. Tsirkin (1):
      virtio_console: break out of buf poll on remove

Michael Schmitz (1):
      video: fbdev: atari: Atari 2 bpp (STe) palette bugfix

Mike Marciniszyn (1):
      IB/hfi1: Allow larger MTU without AIP

Mikulas Patocka (1):
      dm integrity: set journal entry unused when shrinking device

Minghao Chi (1):
      spi: tegra20: Use of_device_get_match_data()

Minghao Chi (CGEL ZTE) (1):
      net:mcf8390: Use platform_get_irq() to get the interrupt

Mingzhe Zou (1):
      bcache: fixup multiple threads crash

Miquel Raynal (4):
      spi: mxic: Fix the transmit path
      dt-bindings: mtd: nand-controller: Fix the reg property description
      dt-bindings: mtd: nand-controller: Fix a comment in the examples
      dt-bindings: spi: mxic: The interrupt property is not mandatory

Mohan Kumar (1):
      ALSA: hda: Avoid unsol event during RPM suspending

Muhammad Usama Anjum (1):
      selftests/x86: Add validity check and allow field splitting

Namhyung Kim (1):
      bpf: Adjust BPF stack helper functions to accommodate skip > 0

Neil Armstrong (1):
      drm/bridge: dw-hdmi: use safe format when first in bridge chain

NeilBrown (1):
      SUNRPC: avoid race between mod_timer() and del_timer_sync()

Niels Dossche (1):
      Bluetooth: call hci_le_conn_failed with hdev lock in hci_le_conn_failed

Nikita Shubin (1):
      riscv: Fix fill_callchain return value

Niklas Söderlund (1):
      samples/bpf, xdpsock: Fix race when running for fix duration of time

Nilesh Javali (1):
      scsi: qla2xxx: Fix warning for missing error code

Nishanth Menon (4):
      arm64: dts: ti: k3-am65: Fix gic-v3 compatible regs
      arm64: dts: ti: k3-j721e: Fix gic-v3 compatible regs
      arm64: dts: ti: k3-j7200: Fix gic-v3 compatible regs
      drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt

Olga Kornievskaia (1):
      NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error

Oliver Hartkopp (5):
      can: isotp: sanitize CAN ID checks in isotp_bind()
      vxcan: enable local echo for sent CAN frames
      can: isotp: return -EADDRNOTAVAIL when reading from unbound socket
      can: isotp: support MSG_TRUNC flag when reading from socket
      can: isotp: restore accidentally removed MSG_PEEK feature

Ondrej Zary (1):
      media: bttv: fix WARNING regression on tunerless devices

Pablo Neira Ayuso (1):
      netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options

Pali Rohár (1):
      PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge

Paolo Bonzini (1):
      KVM: x86/mmu: do compare-and-exchange of gPTE via the user address

Paolo Valente (1):
      Revert "Revert "block, bfq: honor already-setup queue merges""

Patrick Rudolph (1):
      hwmon: (pmbus) Add mutex to regulator ops

Paul Kocialkowski (1):
      ARM: dts: sun8i: v3s: Move the csi1 block to follow address order

Paul Menzel (1):
      lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3

Paulo Alcantara (2):
      cifs: prevent bad output lengths in smb2_ioctl_query_info()
      cifs: fix NULL ptr dereference in smb2_ioctl_query_info()

Pavel Begunkov (1):
      io_uring: fix memory leak of uid in files registration

Pavel Kubelun (1):
      ARM: dts: qcom: ipq4019: fix sleep clock

Pavel Skripkin (6):
      udmabuf: validate ubuf->pagecount
      Bluetooth: hci_serdev: call init_rwsem() before p->open()
      ath9k_htc: fix uninit value bugs
      jfs: fix divide error in dbNextAG
      media: Revert "media: em28xx: add missing em28xx_close_extension"
      can: mcba_usb: properly check endpoint type

Peiwei Hu (1):
      media: ir_toy: free before error exiting

Pekka Pessi (1):
      mailbox: tegra-hsp: Flush whole channel

Peng Liu (1):
      kunit: make kunit_test_timeout compatible with comment

Peter Rosin (1):
      i2c: mux: demux-pinctrl: do not deactivate a master that is not active

Petr Machata (1):
      af_netlink: Fix shift out of bounds in group mask calculation

Petr Vorel (1):
      crypto: vmx - add missing dependencies

Pierre-Louis Bossart (1):
      ASoC: generic: simple-card-utils: remove useless assignment

Prashant Malani (1):
      platform/chrome: cros_ec_typec: Check for EC device

Qais Yousef (1):
      sched/core: Export pelt_thermal_tp

Quinn Tran (7):
      scsi: qla2xxx: Fix stuck session in gpdb
      scsi: qla2xxx: Fix scheduling while atomic
      scsi: qla2xxx: Fix disk failure to rediscover
      scsi: qla2xxx: Fix incorrect reporting of task management failure
      scsi: qla2xxx: Fix hang due to session stuck
      scsi: qla2xxx: Fix N2N inconsistent PLOGI
      scsi: qla2xxx: Reduce false trigger to login

Rafael J. Wysocki (2):
      ACPICA: Avoid walking the ACPI Namespace if it is not there
      ACPI: CPPC: Avoid out of bounds access when parsing _CPC data

Randy Dunlap (20):
      hv: utils: add PTP_1588_CLOCK to Kconfig to fix build
      EVM: fix the evm= __setup handler return value
      PM: hibernate: fix __setup handler error handling
      PM: suspend: fix return value of __setup handler
      ACPI: APEI: fix return value of __setup handlers
      clocksource: acpi_pm: fix return value of __setup handler
      printk: fix return value of printk.devkmsg __setup handler
      m68k: coldfire/device.c: only build for MCF_EDMA when h/w macros are defined
      TOMOYO: fix __setup handlers return values
      mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
      MIPS: RB532: fix return value of __setup handler
      dma-debug: fix return value of __setup handlers
      tty: hvc: fix return value of __setup handler
      kgdboc: fix return value of __setup handler
      kgdbts: fix return value of __setup handler
      driver core: dd: fix return value of __setup handler
      mm/mmap: return 1 from stack_guard_gap __setup() handler
      ARM: 9187/1: JIVE: fix return value of __setup handler
      mm/memcontrol: return 1 from cgroup.memory __setup() handler
      mm/usercopy: return 1 from hardened_usercopy __setup() handler

Richard Guy Briggs (1):
      audit: log AUDIT_TIME_* records only from rules

Richard Haines (1):
      selinux: allow FIOCLEX and FIONCLEX with policy capability

Richard Leitner (1):
      ARM: tegra: tamonten: Fix I2C3 pad setting

Richard Schleich (2):
      ARM: dts: bcm2837: Add the missing L1/L2 cache information
      ARM: dts: bcm2711: Add the missing L1/L2 cache information

Rik van Riel (2):
      mm: invalidate hwpoison page cache page in fault path
      mm,hwpoison: unmap poisoned page before invalidation

Ritesh Harjani (3):
      ext4: fix ext4_fc_stats trace point
      ext4: correct cluster len and clusters changed accounting in ext4_mb_mark_bb
      ext4: fix ext4_mb_mark_bb() with flex_bg with fast_commit

Rob Herring (1):
      arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly

Robert Hancock (3):
      ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting
      i2c: xiic: Make bus names unique
      net: axienet: fix RX ring refill allocation failure handling

Robert Marko (1):
      clk: qcom: ipq8074: fix PCI-E clock oops

Robin Gong (1):
      mailbox: imx: fix wakeup failure from freeze mode

Robin Murphy (1):
      iommu/iova: Improve 32-bit free space estimate

Roman Li (1):
      drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug

Sakari Ailus (1):
      ACPI: properties: Consistently return -ENOENT if there are no more references

Sam Ravnborg (1):
      video: fbdev: controlfb: Fix set but not used warnings

Saurav Kashyap (1):
      scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()

Sean Christopherson (1):
      KVM: x86/mmu: Check for present SPTE when clearing dirty bit in TDP MMU

Sean Nyekjaer (1):
      mtd: rawnand: protect access to rawnand devices while in suspend

Sean Young (1):
      media: gpio-ir-tx: fix transmit with long spaces on Orange Pi PC

Shannon Nelson (1):
      ionic: fix type complaint in ionic_dev_cmd_clean()

Shengjiu Wang (2):
      ASoC: fsl_spdif: Disable TX clock when stop
      ASoC: soc-core: skip zero num_dai component in searching dai name

Shin'ichiro Kawasaki (1):
      block: limit request dispatch loop duration

Si-Wei Liu (1):
      vdpa/mlx5: should verify CTRL_VQ feature exists for MQ

Souptick Joarder (HPE) (1):
      irqchip/nvic: Release nvic_base upon failure

Srinivas Kandagatla (1):
      ASoC: codecs: wcd934x: fix return value of wcd934x_rx_hph_mode_put

Srinivas Pandruvada (1):
      thermal: int340x: Increase bitmap size

Stefano Garzarella (1):
      tools/virtio: fix virtio_test execution

Sunil Goutham (1):
      hwrng: cavium - Check health status while reading random data

Sven Eckelmann (1):
      batman-adv: Check ptr for NULL before reducing its refcnt

Takashi Iwai (1):
      ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock

Takashi Sakamoto (1):
      ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction

Taniya Das (2):
      clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
      clk: qcom: clk-rcg2: Update the frac table for pixel clock

Tejun Heo (1):
      block: don't merge across cgroup boundaries if blkcg is enabled

Theodore Ts'o (1):
      ext4: don't BUG if someone dirty pages without asking ext4 first

Thomas Bracht Laumann Jespersen (1):
      scripts/dtc: Call pkg-config POSIXly correct

Tim Gardner (1):
      video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow

Tobias Waldekranz (1):
      net: dsa: mv88e6xxx: Enable port policy support on 6097

Tom Rix (5):
      media: video/hdmi: handle short reads of hdmi info frame.
      drm/amd/pm: return -ENOTSUPP if there is no get_dpm_ultimate_freq function
      qlcnic: dcb: default to returning -EOPNOTSUPP
      can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix return of error value
      rtc: check if __rtc_read_time was successful

Tomas Paukrt (1):
      crypto: mxs-dcp - Fix scatterlist processing

Tong Zhang (1):
      dax: make sure inodes are flushed before destroy cache

Trond Myklebust (3):
      NFS: Use of mapping_set_error() results in spurious errors
      NFS: Return valid errors from nfs2/3_decode_dirent()
      NFSv4/pNFS: Fix another issue with a list iterator pointing to the head

Tsuchiya Yuto (1):
      media: atomisp: fix dummy_ptr check to avoid duplicate active_bo

Tudor Ambarus (1):
      ARM: dts: at91: sama5d2: Fix PMERRLOC resource size

Ulf Hansson (1):
      mmc: host: Return an error when ->enable_sdio_irq() ops is missing

Uwe Kleine-König (5):
      vfio: platform: simplify device removal
      amba: Make the remove callback return void
      pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
      serial: 8250: Fix race condition in RTS-after-send handling
      ARM: mmp: Fix failure to remove sram device

Vijay Balakrishna (1):
      arm64: Do not defer reserve_crashkernel() for platforms with no DMA memory zones

Vitaly Kuznetsov (1):
      KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated

Vladimir Oltean (1):
      net: enetc: report software timestamping via SO_TIMESTAMPING

Waiman Long (2):
      locking/lockdep: Avoid potential access of invalid memory in lock_class
      locking/lockdep: Iterate lock_classes directly when reading lockdep files

Wang Hai (2):
      video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()
      wireguard: socket: free skb in send6 when ipv6 is disabled

Wang Wensheng (1):
      ASoC: imx-es8328: Fix error return code in imx_es8328_probe()

Wang Yufen (3):
      bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full
      bpf, sockmap: Fix more uncharged while msg has more_data
      bpf, sockmap: Fix double uncharge the mem of sk_msg

Wen Gong (1):
      ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern

Xiang Chen (1):
      scsi: hisi_sas: Change permission of parameter prot_mask

Xiaomeng Tong (2):
      ALSA: cs4236: fix an incorrect NULL check on list iterator
      net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator

Xie Yongji (1):
      virtio-blk: Use blk_validate_block_size() to validate block size

Xin Long (1):
      udp: call udp_encap_enable for v6 sockets when enabling encap

Xin Xiong (1):
      mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init

Xu Kuohai (1):
      libbpf: Skip forward declaration when counting duplicated type names

Yafang Shao (1):
      libbpf: Fix possible NULL pointer dereference when destroying skeleton

Yajun Deng (1):
      netdevice: add the case if dev is NULL

Yake Yang (1):
      Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt

Yaliang Wang (1):
      MIPS: pgalloc: fix memory leak caused by pgd_free()

Yang Guang (1):
      video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit

Yang Yingliang (3):
      media: saa7134: convert list_for_each to entry variant
      ASoC: rockchip: i2s: Use devm_platform_get_and_ioremap_resource()
      ASoC: atmel: sam9x5_wm8731: use devm_snd_soc_register_card()

Yangtao Li (1):
      fsi: aspeed: convert to devm_platform_ioremap_resource

Ye Bin (1):
      ext4: fix fs corruption when tring to remove a non-empty directory with IO error

Yi Wang (1):
      KVM: SVM: fix panic on out-of-bounds guest IRQ

Yiqing Yao (1):
      drm/amd/pm: enable pm sysfs write for one VF mode

Yongzhi Liu (1):
      RDMA/mlx5: Fix memory leak in error flow for subscribe event routine

Yu Kuai (1):
      block, bfq: don't move oom_bfqq

YueHaibing (1):
      video: fbdev: controlfb: Fix COMPILE_TEST build

Z. Liu (1):
      video: fbdev: matroxfb: set maxvram of vbG200eW to the same as vbG200 to avoid black screen

Zhang Wensheng (1):
      bfq: fix use-after-free in bfq_dispatch_request

Zhang Yi (1):
      ext2: correct max file size computing

Zhenzhong Duan (1):
      KVM: x86: Fix emulation in writing cr8

Zheyu Ma (2):
      ethernet: sun: Free the coherent when failing in probing
      video: fbdev: sm712fb: Fix crash in smtcfb_write()

Zhihao Cheng (7):
      ubifs: rename_whiteout: Fix double free for whiteout_ui->data
      ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
      ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
      ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
      ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
      ubifs: Fix to add refcount once page is set private
      ubi: fastmap: Return error code if memory allocation fails in add_aeb()

Zhou Qingyang (2):
      drm/nouveau/acr: Fix undefined behavior in nvkm_acr_hsfw_load_bl()
      drm/amd/display: Fix a NULL pointer dereference in amdgpu_dm_connector_add_common_modes()

kernel test robot (1):
      regulator: qcom_smd: fix for_each_child.cocci warnings

lic121 (1):
      libbpf: Unmap rings when umem deleted

BUG=b/228670659
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Updated the Linux kernel to v5.10.110.

Signed-off-by: COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com>
Change-Id: Ie34393b8c4cea3f94091b41d397752dfea11f317
