tree 27266bfca35f57b574b995fd204ad0a4d1cc47b9
parent d00ed5dbd47a2f14eef7f8cfb8d0b8f9da5ec6b8
parent 4fdad925aa1a320c2f32bf956ed29100c7fdc464
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1681465320 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1681465320 -0700

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

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

Alistair Popple (1):
      mm: take a page reference when removing device exclusive entries

Andy Roulin (1):
      ethtool: reset #lanes when lanes is omitted

Andy Shevchenko (1):
      serial: 8250_exar: derive nr_ports from PCI ID for Acces I/O cards

Armin Wolf (1):
      platform/x86: think-lmi: Fix memory leak when showing current settings

Arnd Bergmann (1):
      iio: adis16480: select CONFIG_CRC32

Biju Das (2):
      tty: serial: sh-sci: Fix transmit end interrupt handler
      tty: serial: sh-sci: Fix Rx on RZ/G2L SCI

Bjørn Mork (1):
      USB: serial: option: add Quectel RM500U-CN modem

Boris Brezillon (1):
      drm/panfrost: Fix the panfrost_mmu_map_fault_addr() error path

Brian Foster (1):
      NFSD: pass range end to vfs_fsync_range() instead of count

Christian Brauner (1):
      fs: drop peer group ids under namespace lock

Chuck Lever (2):
      NFSD: Fix sparse warning
      NFSD: Avoid calling OPDESC() with ops->opnum == OP_ILLEGAL

Corinna Vinschen (1):
      net: stmmac: fix up RX flow hash indirection table when setting channels

D Scott Phillips (1):
      xhci: also avoid the XHCI_ZERO_64B_REGS quirk with a passthrough iommu

Dai Ngo (1):
      NFSD: callback request does not use correct credential for AUTH_SYS

Daniil Tatianin (1):
      iavf/iavf_main: actually log ->src mask when talking about it

Dhruva Gole (1):
      gpio: davinci: Add irq chip flag to skip set wake

Eduard Zingerman (1):
      bpftool: Print newline before '}' for struct with padding only fields

Enrico Sau (1):
      USB: serial: option: add Telit FE990 compositions

Eric Dumazet (1):
      icmp: guard against too small mtu

Felix Fietkau (1):
      wifi: mac80211: fix invalid drv_sta_pre_rcu_remove calls for non-uploaded sta

Geert Uytterhoeven (1):
      dt-bindings: serial: renesas,scif: Fix 4th IRQ for 4-IRQ SCIFs

Greg Kroah-Hartman (1):
      Linux 5.15.107

Gustav Ekelund (1):
      net: dsa: mv88e6xxx: Reset mv88e6393x force WD event bit

Hans de Goede (2):
      platform/x86: int3472: Split into 2 drivers
      platform/x86: int3472/discrete: Ensure the clk/power enable pins are in output mode

Heikki Krogerus (1):
      usb: dwc3: pci: add support for the Intel Meteor Lake-S

Heming Zhao (1):
      ocfs2: fix freeing uninitialized resource on ocfs2_dlm_shutdown

Heming Zhao via Ocfs2-devel (2):
      ocfs2: ocfs2_mount_volume does cleanup job before return error
      ocfs2: rewrite error handling of ocfs2_fill_super

Jacob Keller (1):
      iavf: return errno code instead of status code

Jakub Kicinski (1):
      net: don't let netpoll invoke NAPI if in xmit context

Jason Montleon (1):
      ASoC: hdac_hdmi: use set_stream() instead of set_tdm_slots()

Jeff Layton (1):
      sunrpc: only free unix grouplist after RCU settles

Jeremy Soller (1):
      ALSA: hda/realtek: Add quirk for Clevo X370SNW

John Keeping (1):
      ftrace: Mark get_lock_parent_ip() __always_inline

Kai-Heng Feng (1):
      iio: light: cm32181: Unregister second I2C client if present

Kan Liang (1):
      perf/core: Fix the same task check in perf_event_set_output

Karol Herbst (1):
      drm/nouveau/disp: Support more modes by checking with lower bpc

Kees Jan Koster (1):
      USB: serial: cp210x: add Silicon Labs IFS-USB-DATACABLE IDs

Lars-Peter Clausen (1):
      iio: adc: ti-ads7950: Set `can_sleep` flag for GPIO chip

Li Zetao (2):
      ocfs2: fix memory leak in ocfs2_mount_volume()
      scsi: qla2xxx: Fix memory leak in qla2x00_probe_one()

Lingyu Liu (1):
      ice: Reset FDIR counter in FDIR init stage

Luca Weiss (1):
      net: qrtr: combine nameservice into main module

Marios Makassikis (1):
      ksmbd: do not call kvmalloc() with __GFP_NORETRY | __GFP_NO_WARN

Mark Pearson (2):
      platform/x86: think-lmi: Fix memory leaks when parsing ThinkStation WMI strings
      platform/x86: think-lmi: Clean up display of current_value on Thinkstation

Masahiro Yamada (2):
      kbuild: refactor single builds of *.ko
      kbuild: fix single directory build

Matthew Howell (1):
      serial: exar: Add support for Sealevel 7xxxC serial cards

Michal Sojka (1):
      can: isotp: isotp_ops: fix poll() to not report false EPOLLOUT events

Mohammed Gamal (1):
      Drivers: vmbus: Check for channel allocation before looking up relids

Mustafa Ismail (1):
      RDMA/irdma: Do not request 2-level PBLEs for CQ alloc

Nico Boehr (1):
      KVM: s390: pv: fix external interruption loop not always detected

Nuno Sá (1):
      iio: adc: ad7791: fix IRQ flags

Oleksij Rempel (1):
      can: j1939: j1939_tp_tx_dat_new(): fix out-of-bounds memory access

Pawel Laszczak (1):
      usb: cdnsp: Fixes error: uninitialized symbol 'len'

RD Babiera (1):
      usb: typec: altmodes/displayport: Fix configure initial pin assignment

Randy Dunlap (1):
      gpio: GPIO_REGMAP: select REGMAP instead of depending on it

Robert Foss (1):
      drm/bridge: lt9611: Fix PLL being unable to lock

Rongwei Wang (1):
      mm/swap: fix swap_info_struct race between swapoff and get_swap_pages()

Ryusuke Konishi (2):
      nilfs2: fix potential UAF of struct nilfs_sc_info in nilfs_segctor_thread()
      nilfs2: fix sysfs interface lifetime

Shailend Chand (1):
      gve: Secure enough bytes in the first TX desc for all TCP pkts

Sherry Sun (1):
      tty: serial: fsl_lpuart: avoid checking for transfer complete when UARTCTRL_SBK is asserted in lpuart32_tx_empty

Siddharth Vadapalli (1):
      net: ethernet: ti: am65-cpsw: Fix mdio cleanup in probe

Simei Su (1):
      ice: fix wrong fallback logic for FDIR

Sricharan Ramabadhran (1):
      net: qrtr: Do not do DEL_SERVER broadcast after DEL_CLIENT

Steve Clevenger (1):
      coresight-etm4: Fix for() loop drvdata->nr_addr_cmp range bug

Steve French (2):
      smb3: allow deferred close timeout to be configurable
      smb3: lower default deferred close timeout to address perf regression

Steven Rostedt (Google) (1):
      tracing: Free error logs of tracing instances

Suzuki K Poulose (1):
      coresight: etm4x: Do not access TRCIDR1 for identification

Thiago Rafael Becker (1):
      cifs: sanitize paths in cifs_update_super_prepath.

Tonghao Zhang (1):
      bpf: hash map, avoid deadlock with suitable hash mask

Uwe Kleine-König (2):
      pwm: cros-ec: Explicitly set .polarity in .get_state()
      pwm: sprd: Explicitly set .polarity in .get_state()

Wayne Chang (1):
      usb: xhci: tegra: fix sleep in atomic call

William Breathitt Gray (1):
      iio: dac: cio-dac: Fix max DAC write value check for 12-bit

Xin Long (1):
      sctp: check send stream number after wait_for_sndbuf

Yafang Shao (1):
      mm: vmalloc: avoid warn_alloc noise caused by fatal signal

Zheng Yejian (2):
      ftrace: Fix issue that 'direct->addr' not restored in modify_ftrace_direct()
      ring-buffer: Fix race while reader and writer are on the same page

Zhong Jinghua (1):
      scsi: iscsi_tcp: Check that sock is valid before iscsi_set_param()

Ziyang Xuan (2):
      net: qrtr: Fix a refcount bug in qrtr_recvmsg()
      ipv6: Fix an uninit variable access bug in __ip6_make_skb()

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

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