tree 0f34eb3033db0b5986bc2aad8818c31b143aab63
parent 86aaa539e0b0e0557160dd188bf4a076dd4ae6ee
parent b925f60c6ee7ec871d2d48575d0fde3872129c20
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1714294971 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1714294972 -0700

merge-upstream/v5.15.157 from branch/tag: upstream/v5.15.157 into branch: main-R105-cos-5.15

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

Alan Stern (1):
      fs: sysfs: Fix reference leak in sysfs_break_active_protection()

Alexander Usyskin (1):
      mei: me: disable RPL-S on SPS and IGN firmwares

Arınç ÜNAL (4):
      net: dsa: mt7530: fix mirroring frames received on local port
      net: dsa: mt7530: set all CPU ports in MT7531_CPU_PMAP
      net: dsa: mt7530: fix improper frames on all 25MHz and 40MHz XTAL MT7530
      net: dsa: mt7530: fix enabling EEE on MT7531 switch on all boards

Boris Burkov (1):
      btrfs: record delayed inode root in transaction

Carlos Llamas (1):
      binder: check offset alignment in binder_get_object()

Chuanhong Guo (1):
      USB: serial: option: add support for Fibocom FM650/FG650

Chuck Lever (1):
      Revert "lockd: introduce safe async lock op"

Claudiu Beznea (1):
      clk: remove extra empty line

Coia Prant (1):
      USB: serial: option: add Lonsung U8300/U9300 product

Daniel Borkmann (4):
      bpf: Generalize check_ctx_reg for reuse with other types
      bpf: Generally fix helper register offset check
      bpf: Fix out of bounds access for ringbuf helpers
      bpf: Fix ringbuf memory type confusion when passing to helpers

Daniele Palmas (1):
      USB: serial: option: add Telit FN920C04 rmnet compositions

Dave Airlie (1):
      nouveau: fix instmem race condition around ptr stores

Dmitry Baryshkov (1):
      drm/panel: visionox-rm69299: don't unregister DSI device

Eric Biggers (1):
      x86/cpufeatures: Fix dependencies for GFNI, VAES, and VPCLMULQDQ

Finn Thain (1):
      serial/pmac_zilog: Remove flawed mitigation for rx irq flood

Florian Westphal (1):
      netfilter: nft_set_pipapo: do not free live element

Gil Fine (2):
      thunderbolt: Avoid notify PM core about runtime PM resume
      thunderbolt: Fix wake configurations after device unplug

Greg Kroah-Hartman (2):
      Revert "usb: cdc-wdm: close race between read and workqueue"
      Linux 5.15.157

Jeongjun Park (1):
      nilfs2: fix OOB in nilfs_set_de_type

Jerry Meng (1):
      USB: serial: option: support Quectel EM060K sub-models

Josh Poimboeuf (1):
      x86/bugs: Fix BHI retpoline check

Kai-Heng Feng (1):
      usb: Disable USB3 LPM at shutdown

Konrad Dybcio (1):
      clk: Print an info line before disabling unused clocks

Kumar Kartikeya Dwivedi (1):
      bpf: Extend kfunc with PTR_TO_CTX, PTR_TO_MEM argument support

Kuniyuki Iwashima (2):
      af_unix: Call manage_oob() for every skb in unix_stream_read_generic().
      af_unix: Don't peek OOB data without MSG_OOB.

Lei Chen (1):
      tun: limit printing rate when illegal packet received by tun dev

Mark Zhang (1):
      RDMA/cm: Print the old state when cm_destroy_id gets timeout

Michael Guralnik (1):
      RDMA/mlx5: Fix port number for counter query in multi-port configuration

Mikhail Kobuk (1):
      drm: nv04: Fix out of bounds access

Minas Harutyunyan (1):
      usb: dwc2: host: Fix dereference issue in DDMA completion flow.

Namjae Jeon (3):
      ksmbd: don't send oplock break if rename fails
      ksmbd: validate payload size in ipc response
      ksmbd: do not set SMB2_GLOBAL_CAP_ENCRYPTION for SMB 3.1.1

Nikita Zhandarovich (1):
      comedi: vmk80xx: fix incomplete endpoint checking

Norihiko Hama (1):
      usb: gadget: f_ncm: Fix UAF ncm object at re-bind after usb ep transport error

Pablo Neira Ayuso (3):
      netfilter: br_netfilter: skip conntrack input hook for promisc packets
      netfilter: flowtable: validate pppoe header
      netfilter: flowtable: incorrect pppoe tuple

Peter Oberparleiter (2):
      s390/qdio: handle deferred cc1
      s390/cio: fix race condition during online processing

Samuel Thibault (1):
      speakup: Avoid crash on very long word

Sandipan Das (1):
      KVM: x86/pmu: Do not mask LVTPC when handling a PMI on AMD platforms

Sean Christopherson (1):
      KVM: x86: Snapshot if a vCPU's vendor model is AMD vs. Intel compatible

Siddh Raman Pant (1):
      Revert "tracing/trigger: Fix to return error if failed to alloc snapshot"

Siddharth Vadapalli (1):
      net: ethernet: ti: am65-cpsw-nuss: cleanup DMA Channels before using them

Stephen Boyd (4):
      clk: Remove prepare_lock hold assertion in __clk_release()
      clk: Mark 'all_lists' as const
      clk: Initialize struct clk_core kref earlier
      clk: Get runtime PM before walking tree during disable_unused

Steven Rostedt (Google) (1):
      SUNRPC: Fix rpcgss_context trace event acceptor field

Vanillan Wang (1):
      USB: serial: option: add Rolling RW101-GL and RW135-GL support

Vlad Buslov (1):
      netfilter: nf_flow_table: count pending offload workqueue tasks

Vladimir Oltean (1):
      net: dsa: introduce preferred_default_local_cpu_port and use on MT7530

Yanjun.Zhu (1):
      RDMA/rxe: Fix the problem "mutex_destroy missing"

Yaxiong Tian (1):
      arm64: hibernate: Fix level3 translation fault in swsusp_save()

Yuanhe Shu (1):
      selftests/ftrace: Limit length in subsystem-enable tests

Yuntao Wang (1):
      init/main.c: Fix potential static_command_line memory overflow

Zack Rusin (1):
      drm/vmwgfx: Sort primary plane formats by order of preference

Zheng Yejian (1):
      kprobes: Fix possible use-after-free issue on kprobe registration

Ziyang Xuan (2):
      netfilter: nf_tables: Fix potential data-race in __nft_expr_type_get()
      netfilter: nf_tables: Fix potential data-race in __nft_obj_type_get()

bolan wang (1):
      USB: serial: option: add Fibocom FM135-GL variants

xinhui pan (1):
      drm/amdgpu: validate the parameters of bo mapping operations more clearly

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

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