tree 9919a000f4c2696ead497072158690f171c406c7
parent f51df8129df24c35474947bc3a2c733edb4b483b
parent 9465fef4ae351749f7068da8c78af4ca27e61928
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1711531300 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1711531301 -0700

merge-upstream/v5.15.153 from branch/tag: upstream/v5.15.153 into branch: main-R101-cos-5.15

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

Ajay Singh (1):
      wifi: wilc1000: fix multi-vif management when deleting a vif

Alban Boyé (1):
      ASoC: Intel: bytcr_rt5640: Add an extra entry for the Chuwi Vi8 tablet

Alex Bee (1):
      drm/rockchip: inno_hdmi: Fix video timing

Alexander Gordeev (1):
      net/iucv: fix the allocation size of iucv_path_table array

Alexander Stein (1):
      media: tc358743: register v4l2 async device only after successful setup

Alexey I. Froloff (1):
      ACPI: resource: Do IRQ override on Lunnen Ground laptops

Alexey Kodanev (1):
      RDMA/rtrs-clt: Check strnlen return len in sysfs mpath_policy_store()

Alexis Lothoré (3):
      wifi: wilc1000: fix declarations ordering
      wifi: wilc1000: fix RCU usage in connect path
      wifi: wilc1000: prevent use-after-free on vif when cleaning up all interfaces

Anastasia Belova (1):
      cpufreq: brcmstb-avs-cpufreq: add check for cpufreq_cpu_get's return value

Andrew Ballance (1):
      gen_compile_commands: fix invalid escape sequence warning

Andy Shevchenko (1):
      serial: 8250_exar: Don't remove GPIO device on suspend

AngeloGioacchino Del Regno (1):
      drm/mediatek: dsi: Fix DSI RGB666 formats and definitions

Armin Wolf (1):
      ACPI: processor_idle: Fix memory leak in acpi_processor_power_exit()

Arnaud Pouliquen (2):
      remoteproc: stm32: Fix incorrect type in assignment for va
      remoteproc: stm32: Fix incorrect type assignment returned by stm32_rproc_get_loaded_rsc_tablef

Arnd Bergmann (12):
      fs/select: rework stack allocation hack for clang
      wifi: brcmsmac: avoid function pointer casts
      media: pvrusb2: fix pvr2_stream_callback casts
      crypto: arm/sha - fix function cast warnings
      mtd: rawnand: lpc32xx_mlc: fix irq handler prototype
      media: dvb-frontends: avoid stack overflow warnings with clang
      media: mediatek: vcodec: avoid -Wcast-function-type-strict warning
      scsi: csiostor: Avoid function pointer casts
      scsi: bfa: Fix function pointer type mismatch for hcb_qe->cbfn
      remoteproc: stm32: use correct format strings on 64-bit
      soc: fsl: dpio: fix kcalloc() argument order
      remoteproc: stm32: fix incorrect optional pointers

Arınç ÜNAL (5):
      net: dsa: mt7530: prevent possible incorrect XTAL frequency selection
      net: dsa: mt7530: fix handling of LLDP frames
      net: dsa: mt7530: fix handling of 802.1X PAE frames
      net: dsa: mt7530: fix link-local frames that ingress vlan filtering ports
      net: dsa: mt7530: fix handling of all link-local frames

Athaariq Ardhiansyah (1):
      ALSA: hda/realtek: fix ALC285 issues on HP Envy x360 laptops

Baokun Li (1):
      quota: simplify drop_dquot_ref()

Bartosz Golaszewski (1):
      Bluetooth: hci_qca: don't use IS_ERR_OR_NULL() with gpiod_get_optional()

Baruch Siach (1):
      mtd: maps: physmap-core: fix flash size larger than 32-bit

Basavaraj Natikar (1):
      HID: amd_sfh: Update HPD sensor structure elements

Ben Wolsieffer (1):
      watchdog: stm32_iwdg: initialize default timeout

Bitterblue Smith (1):
      wifi: rtw88: 8821c: Fix false alarm count

Breno Leitao (1):
      net: blackhole_dev: fix build warning for ethh set but not used

Bryan O'Donoghue (1):
      clk: Fix clk_core_get NULL dereference

Cai Huoqing (1):
      drm/tegra: dsi: Make use of the helper function dev_err_probe()

Changbin Du (1):
      modules: wait do_free_init correctly

Chao Yu (5):
      f2fs: multidevice: support direct IO
      f2fs: fix to invalidate META_MAPPING before DIO write
      f2fs: invalidate meta pages only for post_read required inode
      f2fs: reduce stack memory cost by using bitfield in struct f2fs_io_info
      f2fs: compress: fix to cover normal cluster write with cp_rwsem

Chen Ni (2):
      sr9800: Add check for usbnet_get_endpoints
      drm/tegra: dsi: Add missing check for of_find_device_by_node

Chen-Yu Tsai (1):
      pinctrl: mediatek: Drop bogus slew rate register range for MT8192

Christian König (1):
      drm/ttm: add ttm_resource_fini v2

Christophe JAILLET (13):
      wireless: Remove redundant 'flush_workqueue()' calls
      mmc: wmt-sdmmc: remove an incorrect release_mem_region() call in the .remove function
      drm/tegra: dsi: Fix some error handling paths in tegra_dsi_probe()
      drm/tegra: dsi: Fix missing pm_runtime_disable() in the error handling path of tegra_dsi_probe()
      drm/tegra: rgb: Fix some error handling paths in tegra_dc_rgb_probe()
      drm/tegra: rgb: Fix missing clk_put() in the error handling paths of tegra_dc_rgb_probe()
      drm/tegra: output: Fix missing i2c_put_adapter() in the error handling paths of tegra_output_probe()
      PCI/P2PDMA: Fix a sleeping issue in a RCU read section
      PCI: switchtec: Fix an error handling path in switchtec_pci_probe()
      clk: hisilicon: hi3519: Release the correct number of gates in hi3519_clk_unregister()
      clk: hisilicon: hi3559a: Fix an erroneous devm_kfree()
      net: sunrpc: Fix an off by one in rpc_sockaddr2uaddr()
      NFS: Fix an off by one in root_nfs_cat()

Christophe Leroy (1):
      powerpc: Force inlining of arch_vmap_p{u/m}d_supported()

Chun-Yi Lee (1):
      aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts

Colin Ian King (1):
      usb: gadget: net2272: Use irqflags in the call to net2272_probe_fin

Conor Dooley (1):
      riscv: dts: sifive: add missing #interrupt-cells to pmic

Dan Carpenter (1):
      staging: greybus: fix get_channel_from_mode() failure path

Daniel Golle (2):
      net: mediatek: mtk_eth_soc: clear MAC_MCR_FORCE_LINK only when MAC is up
      net: ethernet: mtk_eth_soc: fix PPE hanging issue

Daniel Thompson (3):
      backlight: da9052: Fully initialize backlight_properties during probe
      backlight: lm3639: Fully initialize backlight_properties during probe
      backlight: lp8788: Fully initialize backlight_properties during probe

Daniil Dulov (2):
      media: go7007: add check of return value of go7007_read_addr()
      media: pvrusb2: remove redundant NULL check

Dave Airlie (1):
      nouveau: reset the bo resource bus info after an eviction

David Gow (3):
      lib/cmdline: Fix an invalid format specifier in an assertion msg
      time: test: Fix incorrect format specifier
      rtc: test: Fix invalid format specifier.

David Howells (1):
      afs: Revert "afs: Hide silly-rename files from userspace"

David McFarland (1):
      ACPI: resource: Add Infinity laptops to irq1_edge_low_force_override

Dmitry Osipenko (1):
      drm/tegra: dc: rgb: Allow changing PLLD rate on Tegra30+

Duoming Zhou (2):
      nfp: flower: handle acti_netdevs allocation failure
      clk: zynq: Prevent null pointer dereference caused by kmalloc failure

Edward Adam Davis (1):
      media: pvrusb2: fix uaf in pvr2_context_set_notify

Eric Dumazet (5):
      sock_diag: annotate data-races around sock_diag_handlers[family]
      inet_diag: annotate data-races around inet_diag_table[]
      ipv6: mcast: remove one synchronize_net() barrier in ipv6_mc_down()
      net: ip_tunnel: make sure to pull inner header in ip_tunnel_rcv()
      packet: annotate data-races around ignore_outgoing

Ethan Zhao (2):
      PCI: Make pci_dev_is_disconnected() helper public for other drivers
      iommu/vt-d: Don't issue ATS Invalidation request when device is disconnected

Fedor Pchelkin (1):
      drm/tegra: put drm_gem_object ref on error in tegra_fb_create

Fei Shao (1):
      spi: spi-mt65xx: Fix NULL pointer access in interrupt handler

Felix Maurer (1):
      hsr: Handle failures in module init

Frank Li (1):
      PCI: endpoint: Support NTB transfer between RC and EP

Frieder Schrempf (5):
      arm64: dts: imx8mm-kontron: Disable pullups for I2C signals on SL/BL i.MX8MM
      arm64: dts: imx8mm-kontron: Disable pullups for onboard UART signals on BL board
      arm64: dts: imx8mm-kontron: Add support for ultra high speed modes on SD card
      arm64: dts: imx8mm-kontron: Use the VSELECT signal to switch SD card IO voltage
      arm64: dts: imx8mm-kontron: Disable pull resistors for SD card signals on BL board

Gavrilov Ilia (6):
      tcp: fix incorrect parameter validation in the do_tcp_getsockopt() function
      ipmr: fix incorrect parameter validation in the ip_mroute_getsockopt() function
      l2tp: fix incorrect parameter validation in the pppol2tp_getsockopt() function
      udp: fix incorrect parameter validation in the udp_lib_getsockopt() function
      net: kcm: fix incorrect parameter validation in the kcm_getsockopt) function
      net/x25: fix incorrect parameter validation in the x25_getsockopt() function

Geert Uytterhoeven (3):
      ARM: dts: arm: realview: Fix development chip ROM compatible value
      arm64: dts: renesas: r8a779a0: Update to R-Car Gen4 compatible values
      arm64: dts: renesas: r8a779a0: Correct avb[01] reg sizes

George Stark (1):
      leds: aw2013: Unlock mutex before destroying it

Greg Joyce (1):
      block: sed-opal: handle empty atoms when parsing response

Hans de Goede (1):
      ASoC: rt5645: Make LattePanda board DMI match more precise

Harry Wentland (1):
      drm: Don't treat 0 as -1 in drm_fixp2int_ceil

Hou Tao (3):
      bpf: Defer the free of inner map when necessary
      x86/mm: Move is_vsyscall_vaddr() into asm/vsyscall.h
      x86/mm: Disallow vsyscall page read for copy_from_kernel_nofault()

Hsin-Yi Wang (2):
      arm64: dts: mt8183: kukui: Split out keyboard node and describe detachables
      drm/mediatek: Fix a null pointer crash in mtk_drm_crtc_finish_page_flip

Hugo Villeneuve (1):
      serial: max310x: fix syntax error in IRQ error message

Hyeong-Jun Kim (1):
      f2fs: invalidate META_MAPPING before IPU/DIO write

Ian Abbott (1):
      comedi: comedi_test: Prevent timers rescheduling during deletion

Ian Rogers (1):
      perf stat: Avoid metric-only segv

Ignat Korchagin (1):
      net: veth: do not manipulate GRO when using XDP

Igor Prusov (1):
      clk: meson: Add missing clocks to axg_clk_regmaps

Ilpo Järvinen (1):
      PCI/DPC: Print all TLP Prefixes, not just the first

Jakub Kicinski (1):
      selftests: tls: use exact comparison in recv_partial

Jan Höppner (1):
      s390/dasd: Use dev_*() for device log messages

Jan Kara (1):
      quota: Fix rcu annotations of inode dquot pointers

Jens Axboe (3):
      io_uring/unix: drop usage of io_uring socket
      io_uring: drop any code related to SCM_RIGHTS
      io_uring: don't save/restore iowait state

Jernej Skrabec (3):
      media: sun8i-di: Fix coefficient writes
      media: sun8i-di: Fix power on/off sequences
      media: sun8i-di: Fix chroma difference threshold

Jerome Brunet (4):
      ASoC: meson: aiu: fix function pointer type mismatch
      ASoC: meson: t9015: fix function pointer type mismatch
      ASoC: meson: axg-tdm-interface: fix mclk setup without mclk-fs
      ASoC: meson: axg-tdm-interface: add frame rate constraint

Jiaxun Yang (1):
      MIPS: Clear Cause.BD in instruction_pointer_set

Jie Wang (1):
      net: hns3: fix port duplex configure error in IMP reset

Jinjie Ruan (1):
      wifi: mwifiex: debugfs: Drop unnecessary error check for debugfs_create_dir()

Jiri Slaby (SUSE) (1):
      tty: vt: fix 20 vs 0x20 typo in EScsiignore

Johan Carlsson (1):
      ALSA: usb-audio: Stop parsing channels bits when all channels are found.

Johannes Berg (3):
      wifi: iwlwifi: mvm: report beacon protection failures
      wifi: iwlwifi: dbg-tlv: ensure NUL termination
      wifi: iwlwifi: mvm: don't set replay counters to 0xff

Jonah Palmer (1):
      vdpa/mlx5: Allow CVQ size changes

Jonas Dreßler (1):
      Bluetooth: Remove superfluous call to hci_conn_check_pending()

Jorge Mora (2):
      NFSv4.2: fix nfs4_listxattr kernel BUG at mm/usercopy.c:102
      NFSv4.2: fix listxattr maximum XDR buffer size

Jörg Wedekind (1):
      PCI: Mark 3ware-9650SE Root Port Extended Tags as broken

Kailang Yang (1):
      ALSA: hda/realtek - ALC285 reduce pop noise from Headphone port

Kajol Jain (1):
      powerpc/hv-gpci: Fix the H_GET_PERF_COUNTER_INFO hcall return value checks

Kamal Heib (1):
      net: ena: Remove ena_select_queue

Kees Cook (1):
      x86, relocs: Ignore relocations in .notes section

Keisuke Nishimura (1):
      sched/fair: Take the scheduling domain into account in select_idle_core()

Konrad Dybcio (3):
      clk: qcom: reset: Commonize the de/assert functions
      clk: qcom: reset: Ensure write completion on reset de/assertion
      clk: qcom: dispcc-sdm845: Adjust internal GDSC wait times

Kuninori Morimoto (1):
      ASoC: meson: Use dev_err_probe() helper

Kuniyuki Iwashima (1):
      af_unix: Annotate data-race of gc_in_progress in wait_for_unix_gc().

Kunwu Chan (1):
      x86/xen: Add some null pointer checking to smp.c

Kévin L'hôpital (1):
      net: phy: fix phy_get_internal_delay accessing an empty array

Leon Romanovsky (1):
      RDMA/mlx5: Fix fortify source warning while accessing Eth segment

Li Nan (1):
      md: Don't clear MD_CLOSING when the raid is about to stop

Linu Cherian (1):
      octeontx2-af: Use matching wake_up API variant in CGX command interface

Luca Weiss (2):
      backlight: lm3630a: Initialize backlight_properties on init
      backlight: lm3630a: Don't set bl->props.brightness in get_brightness

Lucas Stach (1):
      media: imx: csc/scaler: fix v4l2_ctrl_handler memory leak

Luiz Augusto von Dentz (1):
      Bluetooth: hci_core: Fix possible buffer overflow

Manuel Fombuena (1):
      HID: multitouch: Add required quirk for Synaptics 0xcddc device

Marek Vasut (1):
      regmap: Add missing map->bus check

Mario Limonciello (1):
      iommu/amd: Mark interrupt as managed

Martin KaFai Lau (3):
      net: Change sock_getsockopt() to take the sk ptr instead of the sock ptr
      bpf: net: Change sk_getsockopt() to take the sockptr_t argument
      bpf: net: Change do_ip_getsockopt() to take the sockptr_t argument

Martin Kaistra (1):
      wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work

Masahiro Yamada (1):
      kconfig: fix infinite loop when expanding a macro at the end of file

Max Kellermann (1):
      parisc/ftrace: add missing CONFIG_DYNAMIC_FTRACE check

Maxim Kudinov (1):
      ACPI: resource: Add MAIBENBEN X577 to irq1_edge_low_force_override

Mete Durlu (1):
      s390/vtime: fix average steal time calculation

Michael Ellerman (1):
      powerpc/embedded6xx: Fix no previous prototype for avr_uart_send() etc.

Michal Vokáč (3):
      ARM: dts: imx6dl-yapp4: Move phy reset into switch node
      ARM: dts: imx6dl-yapp4: Fix typo in the QCA switch register address
      ARM: dts: imx6dl-yapp4: Move the internal switch PHYs under the switch node

Mikhail Khvainitski (1):
      HID: lenovo: Add middleclick_workaround sysfs knob for cptkbd

Mikulas Patocka (2):
      dm-verity, dm-crypt: align "struct bvec_iter" correctly
      dm: call the resume method on internal suspend

Ming Lei (1):
      dm raid: fix false positive for requeue needed during reshape

Miri Korenblit (1):
      wifi: iwlwifi: fix EWRD table validity check

Miroslav Franc (1):
      s390/dasd: fix double module refcount decrement

Nathan Chancellor (1):
      s390/vdso: drop '-fPIC' from LDFLAGS

Navid Emamdoost (1):
      nbd: null check for nla_nest_start

NeilBrown (1):
      f2fs: replace congestion_wait() calls with io_schedule_timeout()

Nikita Kiryushin (1):
      net: phy: fix phy_read_poll_timeout argument type in genphy_loopback

Nikita Zhandarovich (4):
      do_sys_name_to_handle(): use kzalloc() to fix kernel-infoleak
      media: em28xx: annotate unchecked call to media_device_register()
      drm/radeon/ni: Fix wrong firmware size logging in ni_init_microcode()
      wireguard: receive: annotate data-race around receiving_counter.counter

Nícolas F. R. A. Prado (3):
      cpufreq: mediatek-hw: Wait for CPU supplies before probing
      cpufreq: mediatek-hw: Don't error out if supply is not found
      arm64: dts: mt8183: Move CrosEC base detection node to kukui-based DTs

Ondrej Jirman (1):
      leds: sgm3140: Add missing timer cleanup and flash gpio control

Pablo Neira Ayuso (2):
      netfilter: nft_set_pipapo: release elements in clone only from destroy path
      netfilter: nf_tables: do not compare internal table flags on updates

Paloma Arellano (1):
      drm/msm/dpu: add division of drm_display_mode's hskew parameter

Paul E. McKenney (1):
      rcu-tasks: Provide rcu_trace_implies_rcu_gp()

Peter Griffin (2):
      mfd: syscon: Call of_node_put() only when of_parse_phandle() takes a ref
      mfd: altera-sysmgr: Call of_node_put() only when of_parse_phandle() takes a ref

Peter Hilber (3):
      timekeeping: Fix cross-timestamp interpolation on counter wrap
      timekeeping: Fix cross-timestamp interpolation corner case decision
      timekeeping: Fix cross-timestamp interpolation for non-x86

Peter Robinson (2):
      bus: tegra-aconnect: Update dependency to ARCH_TEGRA
      dmaengine: tegra210-adma: Update dependency to ARCH_TEGRA

Prashant Malani (1):
      arm64: dts: mt8183: kukui: Add Type C node

Prike Liang (1):
      drm/amdgpu: Enable gpu reset for S3 abort cases on Raven series

Quanyang Wang (1):
      crypto: xilinx - call finalize with bh disabled

Quentin Schulz (2):
      drm/rockchip: lvds: do not overwrite error code
      drm/rockchip: lvds: do not print scary message when probing defer

Rafael J. Wysocki (1):
      ACPI: scan: Fix device check notification handling

Rafał Miłecki (3):
      arm64: dts: mediatek: mt7622: add missing "device_type" to memory nodes
      arm64: dts: marvell: reorder crypto interrupts on Armada SoCs
      arm64: dts: broadcom: bcmbca: bcm4908: drop invalid switch cells

Rahul Rameshbabu (4):
      wifi: b43: Stop/wake correct queue in DMA Tx path when QoS is disabled
      wifi: b43: Stop/wake correct queue in PIO Tx path when QoS is disabled
      wifi: b43: Stop correct queue in DMA worker when QoS is disabled
      wifi: b43: Disable QoS for bcm4331

Randy Dunlap (1):
      rtc: mt6397: select IRQ_DOMAIN instead of depending on it

Ranjan Kumar (1):
      scsi: mpt3sas: Prevent sending diag_reset when the controller is ready

Rob Herring (1):
      cpufreq: Explicitly include correct DT includes

Russell King (Oracle) (1):
      net: mtk_eth_soc: move MAC_MCR setting to mac_finish()

Ruud Bos (1):
      igb: move PEROUT and EXTTS isr logic to separate functions

Sam Ravnborg (1):
      sparc32: Fix section mismatch in leon_pci_grpci

Saravana Kannan (1):
      module: Add support for default value for module async_probe

Sasha Levin (1):
      Linux 5.15.153

Sheng Yong (1):
      f2fs: compress: fix to check unreleased compressed cluster

Shifeng Li (1):
      RDMA/device: Fix a race between mad_client and cm_client init

Shigeru Yoshida (1):
      hsr: Fix uninit-value access in hsr_get_node()

Shiming Cheng (1):
      ipv6: fib6_rules: flush route cache when rule is changed

Srinivasan Shanmugam (3):
      drm/amd/display: Fix a potential buffer overflow in 'dp_dsc_clock_en_read()'
      drm/amd/display: Fix potential NULL pointer dereferences in 'dcn10_set_output_transfer_func()'
      drm/amdgpu: Fix missing break in ATOM_ARG_IMM Case of atom_get_src_int()

Steev Klimaszewski (1):
      Bluetooth: hci_qca: Add support for QTI Bluetooth chip wcn6855

Stefan Haberland (4):
      s390/dasd: put block allocation in separate function
      s390/dasd: add query PPRC function
      s390/dasd: add copy pair setup
      s390/dasd: add autoquiesce feature

Stuart Henderson (3):
      ASoC: wm8962: Enable oscillator if selecting WM8962_FLL_OSC
      ASoC: wm8962: Enable both SPKOUTR_ENA and SPKOUTL_ENA in mono mode
      ASoC: wm8962: Fix up incorrect error message in wm8962_set_fll

Subbaraya Sundeep (1):
      octeontx2-af: Use separate handlers for interrupts

Takashi Iwai (1):
      ALSA: seq: fix function cast warnings

Takashi Sakamoto (1):
      firewire: core: use long bus reset on gap count error

Thierry Reding (1):
      drm/tegra: dpaux: Populate AUX bus

Thinh Tran (1):
      net/bnx2x: Prevent access to a freed page in page_pool

Tiezhu Yang (1):
      bpftool: Silence build warning about calloc()

Tim Harvey (1):
      arm64: dts: imx8mm-venice-gw71xx: fix USB OTG VBUS

Tim Pambor (1):
      net: phy: dp83822: Fix RGMII TX delay configuration

Toke Høiland-Jørgensen (4):
      wifi: ath9k: delay all of ath9k_wmi_event_tasklet() until init is complete
      bpf: Fix DEVMAP_HASH overflow check on 32-bit arches
      bpf: Fix hashtab overflow check on 32-bit arches
      bpf: Fix stackmap overflow check on 32-bit arches

Tomi Valkeinen (1):
      drm/tidss: Fix initial plane zpos values

Tommaso Merciai (1):
      net: phy: DP83822: enable rgmii mode if phy_interface_is_rgmii

Tudor Ambarus (1):
      tty: serial: samsung: fix tx_empty() to return TIOCSER_TEMT

Uwe Kleine-König (6):
      Input: gpio_keys_polled - suppress deferred probe error for gpio
      pwm: atmel-hlcdc: Convert to platform remove callback returning void
      pwm: atmel-hlcdc: Use consistent variable naming
      pwm: atmel-hlcdc: Fix clock imbalance related to suspend support
      pwm: sti: Implement .apply() callback
      pwm: sti: Fix capture for st,pwm-num-chan < st,capture-num-chan

Vinicius Costa Gomes (1):
      igb: Fix missing time sync events

Viresh Kumar (1):
      OPP: debugfs: Fix warning around icc_get_name()

Wang Jianjian (1):
      quota: Fix potential NULL pointer dereference

William Kucharski (1):
      RDMA/srpt: Do not register event handler until srpt device is fully setup

Xingyuan Mo (1):
      wifi: ath10k: fix NULL pointer dereference in ath10k_wmi_tlv_op_pull_mgmt_tx_compl_ev()

Xiuhong Wang (1):
      f2fs: compress: fix reserve_cblocks counting error when out of space

Yan Zhai (3):
      rcu: add a helper to report consolidated flavor QS
      net: report RCU QS on threaded NAPI repolling
      bpf: report RCU QS in cpumap kthread

Yang Jihong (3):
      perf record: Fix possible incorrect free in record__switch_output()
      perf evsel: Fix duplicate initialization of data->id in evsel__parse_sample()
      perf thread_map: Free strlist on normal path in thread_map__new_by_tid_str()

Yang Yingliang (1):
      NTB: fix possible name leak in ntb_register_device()

Yewon Choi (1):
      rds: introduce acquire/release ordering in acquire/release_in_xmit()

Yishai Hadas (1):
      RDMA/mlx5: Relax DEVX access upon modify commands

Yonghong Song (1):
      bpf: Mark bpf_spin_{lock,unlock}() helpers with notrace correctly

Yonglong Liu (1):
      net: hns3: fix kernel crash when 1588 is received on HIP08 devices

Yuxuan Hu (1):
      Bluetooth: rfcomm: Fix null-ptr-deref in rfcomm_check_security

Zhang Shurong (1):
      drm/tegra: dpaux: Fix PM disable depth imbalance in tegra_dpaux_probe

Zhipeng Lu (9):
      wifi: libertas: fix some memleaks in lbs_allocate_cmd_buffer()
      SUNRPC: fix some memleaks in gssx_dec_option_array
      drm/vmwgfx: fix a memleak in vmw_gmrid_man_get_node
      drm/lima: fix a memleak in lima_heap_alloc
      media: v4l2-tpg: fix some memleaks in tpg_alloc
      media: v4l2-mem2mem: fix a memleak in v4l2_m2m_register_entity
      media: edia: dvbdev: fix a use-after-free
      media: go7007: fix a memleak in go7007_load_encoder
      media: ttpci: fix two memleaks in budget_av_attach

ruanjinjie (1):
      NTB: EPF: fix possible memory leak in pci_vntb_probe()

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

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