tree 4ce7849f5b0763d685221fce0115b5b8a908a628
parent 47fa00f1eb2c0c37a5e65a0a1c80fb8a0688bbcb
parent 71e4ec9b2abccce5adecb3b354d0d5003f6f88f2
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1746176995 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1746176995 -0700

merge-upstream/v6.6.89 from branch/tag: upstream/v6.6.89 into branch: cos-6.6

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

Adam Xue (1):
      USB: serial: option: add Sierra Wireless EM9291

Al Viro (2):
      fix a couple of races in MNT_TREE_BENEATH handling by do_move_mount()
      qibfs: fix _another_ leak

Alexander Stein (1):
      usb: host: max3421-hcd: Add missing spi_device_id table

Alexander Usyskin (1):
      mei: me: add panther lake H DID

Alexei Starovoitov (1):
      bpf: Fix deadlock between rcu_tasks_trace and event_mutex.

Alexey Nepomnyashih (1):
      xen-netfront: handle NULL returned by xdp_convert_buff_to_frame()

Anastasia Kovaleva (1):
      scsi: core: Clear flags for scsi_cmnd that did not complete

Andrew Jones (1):
      riscv: Provide all alternative macros all the time

Andy Shevchenko (3):
      usb: dwc3: gadget: Refactor loop to avoid NULL endpoints
      usb: dwc3: gadget: Avoid using reserved endpoints on Intel Merrifield
      gpiolib: of: Move Atmel HSMCI quirk up out of the regulator comment

Ard Biesheuvel (1):
      x86/pvh: Call C code via the kernel virtual mapping

Arnd Bergmann (2):
      dma/contiguous: avoid warning about unused size_bytes
      ntb: reduce stack usage in idt_scan_mws

Baokun Li (1):
      ext4: goto right label 'out_mmap_sem' in ext4_setattr()

Basavaraj Natikar (1):
      ntb_hw_amd: Add NTB PCI ID for new gen CPU

Bo-Cun Chen (1):
      net: ethernet: mtk_eth_soc: net: revise NETSYSv3 hardware configuration

Breno Leitao (2):
      spi: tegra210-quad: use WARN_ON_ONCE instead of WARN_ON for timeouts
      spi: tegra210-quad: add rate limiting and simplify timeout error message

Brett Creeley (2):
      pds_core: handle unsupported PDS_CORE_CMD_FW_CONTROL result
      pds_core: Remove unnecessary check in pds_client_adminq_cmd()

Chenyuan Yang (3):
      scsi: ufs: mcq: Add NULL check in ufshcd_mcq_abort()
      pinctrl: renesas: rza2: Fix potential NULL pointer dereference
      usb: gadget: aspeed: Add NULL pointer check in ast_vhub_init_dev()

Claudiu Beznea (6):
      clk: renesas: rzg2l: Use u32 for flag and mux_flags
      clk: renesas: rzg2l: Add struct clk_hw_data
      clk: renesas: rzg2l: Remove CPG_SDHI_DSEL from generic header
      clk: renesas: rzg2l: Refactor SD mux driver
      clk: renesas: r9a07g04[34]: Use SEL_SDHI1_STS status configuration for SD1 mux
      clk: renesas: r9a07g04[34]: Fix typo for sel_shdi variable

Cong Wang (2):
      net_sched: hfsc: Fix a UAF vulnerability in class handling
      net_sched: hfsc: Fix a potential UAF in hfsc_dequeue() too

Craig Hesling (1):
      USB: serial: simple: add OWON HDS200 series oscilloscope support

Damien Le Moal (4):
      ata: libata-scsi: Improve CDL control
      ata: libata-scsi: Fix ata_mselect_control_ata_feature() return type
      ata: libata-scsi: Fix ata_msense_control_ata_feature()
      scsi: Improve CDL control

Daniel Borkmann (1):
      vmxnet3: Fix malformed packet sizing in vmxnet3_process_xdp

Daniel Golle (1):
      net: dsa: mt7530: sync driver-specific behavior of MT7531 variants

Daniel Wagner (2):
      nvmet-fc: take tgtport reference only once
      nvmet-fc: put ref when assoc->del_work is already scheduled

David Howells (1):
      ceph: Fix incorrect flush end position calculation

Devaraj Rangasamy (1):
      crypto: ccp - Add support for PCI device 0x1134

Dmitry Torokhov (3):
      Revert "drivers: core: synchronize really_probe() and dev_uevent()"
      driver core: introduce device_set_driver() helper
      driver core: fix potential NULL pointer dereference in dev_uevent()

Dominique Martinet (1):
      9p/net: fix improper handling of bogus negative read/write replies

Edward Adam Davis (1):
      fs/ntfs3: Fix WARNING in ntfs_extend_initialized_size

Fedor Pchelkin (3):
      usb: chipidea: ci_hdrc_imx: fix usbmisc handling
      usb: chipidea: ci_hdrc_imx: fix call balance of regulator routines
      usb: chipidea: ci_hdrc_imx: implement usb_phy_init() error handling

Fernando Fernandez Mancera (1):
      x86/i8253: Call clockevent_i8253_disable() with interrupts disabled

Fiona Klute (1):
      net: phy: microchip: force IRQ polling mode for lan88xx

Frode Isaksen (1):
      usb: dwc3: gadget: check that event count does not exceed event buffer length

Gabriel Shahrouzi (1):
      perf/core: Fix WARN_ON(!ctx) in __free_event() for partial init

Gou Hao (1):
      iomap: skip unnecessary ifs_block_is_uptodate check

Greg Kroah-Hartman (1):
      Linux 6.6.89

Gregory CLEMENT (1):
      MIPS: cm: Detect CM quirks from device tree

Halil Pasic (1):
      virtio_console: fix missing byte order handling for cols and rows

Hannes Reinecke (3):
      nvme: requeue namespace scan on missed AENs
      nvme: re-read ANA log page after ns scan completes
      nvme: fixup scan failure for non-ANA multipath controllers

Haoxiang Li (4):
      auxdisplay: hd44780: Fix an API misuse in hd44780.c
      mcb: fix a double free bug in chameleon_parse_gdd()
      s390/sclp: Add check for get_zeroed_page()
      s390/tty: Fix a potential memory leak bug

Heiko Stuebner (1):
      clk: check for disabled clock-provider in of_clk_get_hw_from_clkspec()

Henry Martin (3):
      cpufreq: apple-soc: Fix null-ptr-deref in apple_soc_cpufreq_get_rate()
      cpufreq: scmi: Fix null-ptr-deref in scmi_cpufreq_get_rate()
      cpufreq: scpi: Fix null-ptr-deref in scpi_cpufreq_get_rate()

Herbert Xu (1):
      crypto: null - Use spin lock instead of mutex

Huacai Chen (1):
      USB: OHCI: Add quirk for LS7A OHCI controller (rev 0x02)

Huisong Li (1):
      mailbox: pcc: Fix the possible race in updation of chan_in_use flag

Ian Abbott (1):
      comedi: jr3_pci: Fix synchronous deletion of timer

Igor Pylypiv (1):
      scsi: pm80xx: Set phy_attached to zero when device is gone

Jason Andryuk (1):
      xen: Change xen-acpi-processor dom0 dependency

Jean-Marc Eurin (1):
      ACPI PPTT: Fix coding mistakes in a couple of sizeof() calls

Jens Axboe (1):
      io_uring: fix 'sync' handling of io_fallback_tw()

John Stultz (1):
      sound/virtio: Fix cancel_sync warnings on uninitialized work_structs

Jonathan Cameron (1):
      iio: adc: ad7768-1: Move setting of val a bit later to avoid unnecessary return value check

Josh Poimboeuf (11):
      objtool: Silence more KCOV warnings
      objtool, panic: Disable SMAP in __stack_chk_fail()
      objtool, ASoC: codecs: wcd934x: Remove potential undefined behavior in wcd934x_slim_irq_handler()
      objtool, regulator: rk808: Remove potential undefined behavior in rk806_set_mode_dcdc()
      objtool, lkdtm: Obfuscate the do_nothing() pointer
      objtool: Stop UNRET validation on UD2
      x86/bugs: Use SBPB in write_ibpb() if applicable
      x86/bugs: Don't fill RSB on VMEXIT with eIBRS+retpoline
      x86/bugs: Don't fill RSB on context switch with eIBRS
      objtool: Ignore end-of-section jumps for KCOV/GCOV
      objtool: Silence more KCOV warnings, part 2

Justin Iurman (1):
      net: lwtunnel: disable BHs when required

Krzysztof Kozlowski (2):
      ASoC: qcom: q6apm-dai: drop unused 'q6apm_dai_rtd' fields
      ASoC: qcom: Fix trivial code style issues

Lad Prabhakar (1):
      clk: renesas: r9a07g043: Fix HP clock source for RZ/Five

Lukas Stockmann (1):
      rtc: pcf85063: do a SW reset if POR failed

Luo Gengkun (1):
      perf/x86: Fix non-sampling (counting) events on certain x86 platforms

Ma Ke (1):
      PCI: Fix reference leak in pci_register_host_bridge()

Marc Zyngier (1):
      cpufreq: cppc: Fix invalid return value in .get() callback

Marek Behún (7):
      net: dsa: mv88e6xxx: fix internal PHYs for 6320 family
      net: dsa: mv88e6xxx: fix VTU methods for 6320 family
      crypto: atmel-sha204a - Set hwrng quality to lowest possible
      net: dsa: mv88e6xxx: fix atu_move_port_mask for 6341 family
      net: dsa: mv88e6xxx: enable PVT for 6321 switch
      net: dsa: mv88e6xxx: enable .port_set_policy() for 6320 family
      net: dsa: mv88e6xxx: enable STU methods for 6320 family

Mario Limonciello (1):
      ACPI: EC: Set ec_no_wakeup for Lenovo Go S

Martin KaFai Lau (1):
      bpf: Only fails the busy counter check in bpf_cgrp_storage_get if it creates storage

Meir Elisha (1):
      md/raid1: Add check for missing source disk in process_checks()

Miao Li (2):
      usb: quirks: add DELAY_INIT quirk for Silicon Motion Flash Drive
      usb: quirks: Add delay init quirk for SanDisk 3.2Gen1 Flash Drive

Michael Ehrenreich (1):
      USB: serial: ftdi_sio: add support for Abacus Electrics Optical Probe

Michal Pecio (2):
      usb: xhci: Fix invalid pointer dereference in Etron workaround
      usb: xhci: Avoid Stop Endpoint retry loop if the endpoint seems Running

Mika Westerberg (1):
      thunderbolt: Scan retimers after device router has been enumerated

Mike Looijmans (1):
      usb: dwc3: xilinx: Prevent spike in reset signal

Ming Lei (1):
      selftests: ublk: fix test_stripe_04

Ming Wang (1):
      LoongArch: Return NULL from huge_pte_offset() for invalid PMD

Mostafa Saleh (1):
      ubsan: Fix panic from test_ubsan_out_of_bounds

Nikita Zhandarovich (1):
      media: vimc: skip .s_stream() for stopped entities

Ninad Malwade (1):
      arm64: tegra: Remove the Orin NX/Nano suspend key

Ojaswin Mujoo (1):
      ext4: make block validity check resistent to sb bh corruption

Oleg Nesterov (1):
      sched/isolation: Make CONFIG_CPU_ISOLATION depend on CONFIG_SMP

Oleksij Rempel (1):
      net: selftests: initialize TCP header and skb payload with zero

Oliver Neukum (6):
      USB: storage: quirk for ADATA Portable HDD CH94
      USB: VLI disk crashes if LPM is used
      USB: wdm: handle IO errors in wdm_wwan_port_start
      USB: wdm: close race between wdm_open and wdm_wwan_port_stop
      USB: wdm: wdm_wwan_port_tx_complete mutex in atomic context
      USB: wdm: add annotation

Pali Rohár (2):
      cifs: Fix encoding of SMB1 Session Setup Kerberos Request in non-UNICODE mode
      cifs: Fix querying of WSL CHR and BLK reparse points over SMB1

Pavel Begunkov (1):
      io_uring: always do atomic put from iowq

Peter Griffin (1):
      scsi: ufs: exynos: Ensure pre_link() executes before exynos_ufs_phy_init()

Petr Tesarik (1):
      LoongArch: Remove a bogus reference to ZONE_DMA

Pi Xiange (1):
      x86/cpu: Add CPU model number for Bartlett Lake CPUs with Raptor Cove cores

Qingfang Deng (1):
      net: phy: leds: fix memory leak

Qiuxu Zhuo (1):
      selftests/mincore: Allow read-ahead pages to reach the end of the file

Qu Wenruo (1):
      btrfs: avoid page_lockend underflow in btrfs_punch_hole_lock_range()

Rafael J. Wysocki (1):
      cpufreq/sched: Explicitly synchronize limits_changed flag handling

Ralph Siemsen (1):
      usb: cdns3: Fix deadlock when using NCM gadget

Rengarajan S (2):
      misc: microchip: pci1xxxx: Fix Kernel panic during IRQ handler registration
      misc: microchip: pci1xxxx: Fix incorrect IRQ status handling during ack

Rob Herring (Arm) (1):
      of: resolver: Simplify of_resolve_phandles() using __free()

Roman Li (2):
      drm/amd/display: Fix gpu reset in multidisplay config
      drm/amd/display: Force full update in gpu reset

Ryo Takakura (1):
      serial: sifive: lock port in startup()/shutdown() callbacks

Sean Christopherson (4):
      iommu/amd: Return an error if vCPU affinity is set for non-vCPU IRTE
      KVM: SVM: Allocate IR data using atomic allocation
      KVM: x86: Explicitly treat routing entry type changes as changes
      KVM: x86: Reset IRTE to host control if *new* route isn't postable

Sebastian Andrzej Siewior (1):
      timekeeping: Add a lockdep override in tick_freeze()

Sergiu Cuciurean (1):
      iio: adc: ad7768-1: Fix conversion result sign

Sewon Nam (1):
      bpf: bpftool: Setting error code in do_loader()

Shannon Nelson (1):
      pds_core: make wait_context part of q_info

Shuai Xue (1):
      x86/mce: use is_copy_from_user() to determine copy-from-user context

Smita Koralahalli (1):
      cxl/core/regs.c: Skip Memory Space Enable check for RCD and RCH Ports

Srinivas Kandagatla (2):
      ASoC: q6apm-dai: schedule all available frames to avoid dsp under-runs
      ASoC: q6apm-dai: make use of q6apm_get_hw_pointer

Stephan Gerhold (1):
      serial: msm: Configure correct working mode before starting earlycon

Steven Rostedt (2):
      tracing: Add __print_dynamic_array() helper
      tracing: Verify event formats that have "%*p.."

Steven Rostedt (Google) (1):
      tracing: Add __string_len() example

Sudeep Holla (1):
      mailbox: pcc: Always clear the platform ack interrupt first

Suzuki K Poulose (1):
      irqchip/gic-v2m: Prevent use after free of gicv2m_get_fwnode()

T.J. Mercier (1):
      splice: remove duplicate noinline from pipe_clear_nowait

Tamura Dai (1):
      spi: spi-imx: Add check for spi_imx_setupxfer()

Thadeu Lima de Souza Cascardo (1):
      char: misc: register chrdev region with all possible minors

Thomas Bogendoerfer (1):
      MIPS: cm: Fix warning if MIPS_CM is disabled

Thomas Weißschuh (2):
      KVM: s390: Don't use %pK through tracepoints
      KVM: s390: Don't use %pK through debug printing

Thorsten Leemhuis (1):
      module: sign with sha512 instead of sha1 by default

Théo Lebrun (1):
      usb: host: xhci-plat: mvebu: use ->quirks instead of ->init_quirk() func

Tiezhu Yang (2):
      LoongArch: Make regs_irqs_disabled() more clear
      LoongArch: Make do_xyz() exception handlers more robust

Tomi Valkeinen (3):
      media: subdev: Fix use of sd->enabled_streams in call_s_stream()
      media: subdev: Improve v4l2_subdev_enable/disable_streams_fallback
      media: subdev: Add v4l2_subdev_is_streaming()

Tong Tiangen (1):
      x86/extable: Remove unused fixup type EX_TYPE_COPY

Tudor Ambarus (3):
      soc: qcom: ice: introduce devm_of_qcom_ice_get
      mmc: sdhci-msm: fix dev reference leaked through of_qcom_ice_get
      scsi: ufs: qcom: fix dev reference leaked through of_qcom_ice_get

Tung Nguyen (1):
      tipc: fix NULL pointer dereference in tipc_mon_reinit_self()

Uday Shankar (1):
      nvme: multipath: fix return value of nvme_available_path

Uwe Kleine-König (2):
      auxdisplay: hd44780: Convert to platform remove callback returning void
      ASoC: qcom: lpass: Make asoc_qcom_lpass_cpu_platform_remove() return void

Vincent Guittot (2):
      sched/topology: Consolidate and clean up access to a CPU's max compute capacity
      sched/cpufreq: Rework schedutil governor performance estimation

Vinicius Costa Gomes (1):
      dmaengine: dmatest: Fix dmatest waiting less when interrupted

Xiaogang Chen (1):
      udmabuf: fix a buf size overflow issue during udmabuf creation

Xingui Yang (1):
      scsi: hisi_sas: Fix I/O errors caused by hardware port ID changes

Yafang Shao (1):
      bpf: Reject attaching fexit/fmod_ret to __noreturn functions

Yu-Chun Lin (1):
      parisc: PDT: Fix missing prototype warning

Yuli Wang (1):
      LoongArch: Select ARCH_USE_MEMTEST

Yunlong Xing (1):
      loop: aio inherit the ioprio of original request

Zijun Hu (1):
      of: resolver: Fix device node refcount leakage in of_resolve_phandles()

BUG=b/415243728
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Updated the Linux kernel to v6.6.89.

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