tree 243f120eed5a92e10a7125ec626cdafbeb6d14a0
parent f7066b69876bbabca5f5530d59d22f6fc8115b80
parent cc1a1c5b404a5e6ad751d0831b1991a90c3de4c5
author Kevin Berry <kpberry@google.com> 1756843214 +0000
committer Kevin Berry <kpberry@google.com> 1756916283 -0700

merge-upstream/v6.6.103 from branch/tag: upstream/v6.6.103 into branch: main-R117-cos-6.6

Conflicts:
 drivers/net/ethernet/google/gve/gve_main.c

gve_tx_timeout function was split into three functions upstream:
gve_tx_timeout, gve_tx_timeout_try_q_kick, and
gve_get_tx_notify_block. We resolve the conflicts by taking the
upstream changes almost verbatim, with the exception of retaining
the line which sets the reason for a reset in the timeout case.
Additionally, we remove the gve_tx_rings_dump since calling it
requires additional differences from upstream and it only provides
some debug logs.

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

Aahil Awatramani (1):
      bonding: Add independent control state machine

Aakash Kumar S (1):
      xfrm: Duplicate SPI Handling

Aaron Kling (1):
      ARM: tegra: Use I/O memcpy to write to IRAM

Aaron Plattner (1):
      watchdog: sbsa: Adjust keepalive timeout to avoid MediaTek WS0 race condition

Abdun Nihaal (2):
      regmap: fix potential memory leak of regmap_bus
      staging: fbtft: fix potential memory leak in fbtft_framebuffer_alloc()

Abel Vesa (1):
      power: supply: qcom_battmgr: Add lithium-polymer entry

Abinash Singh (1):
      f2fs: fix KMSAN uninit-value in extent_info usage

Ada Couprie Diaz (1):
      arm64/entry: Mask DAIF in cpu_switch_to(), call_on_irq_stack()

Adam Ford (2):
      arm64: dts: imx8mm-beacon: Fix HS400 USDHC clock speed
      arm64: dts: imx8mn-beacon: Fix HS400 USDHC clock speed

Adam Queler (1):
      ASoC: amd: yc: Add DMI entries to support HP 15-fb1xxx

Aditya Garg (2):
      HID: magicmouse: avoid setting up battery timer when not needed
      HID: apple: avoid setting up battery timer for devices without battery

Adrian Hunter (1):
      scsi: ufs: ufs-pci: Fix default runtime and system PM levels

Akhil R (1):
      i2c: tegra: Fix reset error handling with ACPI

Akinobu Mita (1):
      resource: fix false warning in __request_region()

Al Viro (5):
      better lockdep annotations for simple_recursive_removal()
      fix locking in efi_secret_unlink()
      securityfs: don't pin dentries twice, once is enough...
      use uniform permission checks for all mount propagation changes
      alloc_fdtable(): change calling conventions.

Alain Volmat (3):
      i2c: stm32f7: use dev_err_probe upon calls of devm_request_irq
      i2c: stm32f7: perform most of irq job in threaded handler
      i2c: stm32f7: simplify status messages in case of errors

Albin Törnqvist (1):
      arm: dts: ti: omap: Fixup pinheader typo

Alessandro Carminati (1):
      regulator: core: fix NULL dereference on unbind due to stale coupling data

Alex Deucher (1):
      drm/amdgpu: update mmhub 3.0.1 client id mappings

Alex Guo (2):
      media: dvb-frontends: dib7090p: fix null-ptr-deref in dib7090p_rw_on_apb()
      media: dvb-frontends: w7090p: fix null-ptr-deref in w7090p_tuner_write_serpar and w7090p_tuner_read_serpar

Alex Williamson (1):
      vfio/pci: Separate SR-IOV VF dev_set

Alexander Kochetkov (1):
      ARM: rockchip: fix kernel hang during smp initialization

Alexander Sverdlin (1):
      arm64: dts: ti: k3-pinctrl: Enable Schmitt Trigger by default

Alexander Wetzel (2):
      wifi: mac80211: Do not schedule stopped TXQs
      wifi: mac80211: Don't call fq_flow_idx() for management frames

Alexander Wilhelm (2):
      soc: qcom: QMI encoding/decoding for big endian
      bus: mhi: host: Fix endianness of BHI vector table

Alexandru Andries (1):
      ASoC: amd: yc: add DMI quirk for ASUS M6501RM

Alexei Lazar (1):
      net/mlx5e: Clear Read-Only port buffer size in PBMC before update

Alexey Klimov (1):
      iommu/arm-smmu-qcom: Add SM6115 MDSS compatible

Alok Tiwari (7):
      staging: nvec: Fix incorrect null termination of battery manufacturer
      net: ti: icss-iep: Fix incorrect type for return value in extts_enable()
      ALSA: intel8x0: Fix incorrect codec index usage in mixer for ICH4
      be2net: Use correct byte order and format string for TCP seq and ack_seq
      net: thunderx: Fix format-truncation warning in bgx_acpi_match_id()
      perf/cxlpmu: Remove unintended newline from IRQ name format string
      gve: Return error for unknown admin queue command

Amber Lin (1):
      drm/amdkfd: Destroy KFD debugfs after destroy KFD wq

Amelie Delaunay (1):
      dmaengine: stm32-dma: configure next sg only if there are more than 2 sgs

Amir Goldstein (1):
      fanotify: sanitize handle_type values when reporting fid

Amir Mohammad Jahangirzad (1):
      fs/orangefs: use snprintf() instead of sprintf()

Amit Sunil Dhamne (2):
      usb: typec: maxim_contaminant: re-enable cc toggle if cc is open and port is clean
      usb: typec: maxim_contaminant: disable low power mode when reading comparator values

Ammar Faizi (1):
      net: usbnet: Fix the wrong netif_carrier_on() call

Anantha Prabhu (1):
      RDMA/bnxt_re: Fix to initialize the PBL array

Andi Shyti (1):
      i2c: stm32f7: Use devm_clk_get_enabled()

Andreas Dilger (1):
      ext4: check fast symlink for ea_inode correctly

Andreas Gruenbacher (1):
      gfs2: No more self recovery

Andrew Price (1):
      gfs2: Set .migrate_folio in gfs2_{rgrp,meta}_aops

André Apitzsch (1):
      arm64: dts: qcom: msm8976: Make blsp_dma controlled-remotely

André Draszik (1):
      scsi: ufs: exynos: Fix programming of HCI_UTRL_NEXUS_TYPE

Andy Shevchenko (3):
      mm/hmm: move pmd_to_hmm_pfn_flags() to the respective #ifdeffery
      Documentation: ACPI: Fix parent device references
      iio: imu: inv_icm42600: Convert to uXX and sXX integer types

Andy Yan (1):
      drm/rockchip: cleanup fb when drm_gem_fb_afbc_init failed

Annette Kobou (1):
      ARM: dts: imx6ul-kontron-bl-common: Fix RTS polarity for RS485 interface

Anshuman Khandual (1):
      mm/ptdump: take the memory hotplug lock inside ptdump_walk_pgd()

Anthoine Bourgeois (1):
      xen/netfront: Fix TX response spurious interrupts

Archana Patni (1):
      scsi: ufs: ufs-pci: Fix hibernate state transition for Intel MTL-like host controllers

Armen Ratner (1):
      net/mlx5e: Preserve shared buffer capacity during headroom updates

Arnaud Lecomte (1):
      jfs: upper bound check of tree index in dbAllocAG

Arnd Bergmann (8):
      ethernet: intel: fix building with large NR_CPUS
      ASoC: Intel: fix SND_SOC_SOF dependencies
      ASoC: ops: dynamically allocate struct snd_ctl_elem_value
      caif: reduce stack size, again
      crypto: arm/aes-neonbs - work around gcc-15 warning
      kernel: trace: preemptirq_delay_test: use offstack cpu mask
      irqchip: Build IMX_MU_MSI only on ARM
      RDMA/core: reduce stack using in nldev_stat_get_doit()

Artem Sadovnikov (1):
      vfio/mlx5: fix possible overflow in tracking max message size

Avraham Stern (1):
      wifi: iwlwifi: mvm: fix scan request validation

Baihan Li (1):
      drm/hisilicon/hibmc: fix the hibmc loaded failed bug

Balamanikandan Gunasundar (1):
      mtd: rawnand: atmel: set pmecc data setup time

Baokun Li (4):
      ext4: fix zombie groups in average fragment size lists
      ext4: fix largest free orders lists corruption on mb_optimize_scan switch
      jbd2: prevent softlockup in jbd2_log_do_checkpoint()
      ext4: preserve SB_I_VERSION on remount

Bard Liao (1):
      soundwire: stream: restore params when prepare ports fail

Bartosz Golaszewski (2):
      gpio: wcd934x: check the return value of regmap_update_bits()
      gpio: tps65912: check the return value of regmap_update_bits()

Ben Hutchings (1):
      sh: Do not use hyphen in exported variable name

Benjamin Coddington (1):
      NFS: Fixup allocation flags for nfsiod's __GFP_NORETRY

Benjamin Marzinski (1):
      dm-table: fix checking for rq stackable devices

Benson Leung (1):
      usb: typec: ucsi: psy: Set current max to 100mA for BC 1.2 and Default

Bharat Bhushan (1):
      crypto: octeontx2 - add timeout for load_fvc completion poll

Biju Das (1):
      net: phy: micrel: Add ksz9131_resume()

Bingbu Cao (1):
      media: hi556: correct the test pattern configuration

Bitterblue Smith (3):
      wifi: rtw89: Lower the timeout in rtw89_fw_read_c2h_reg() for USB
      wifi: rtw89: Fix rtw89_mac_power_switch() for USB
      wifi: rtw89: Disable deep power saving for USB/SDIO

Bjorn Andersson (2):
      soc: qcom: mdt_loader: Actually use the e_phoff
      soc: qcom: mdt_loader: Ensure we don't read past the ELF header

Bjorn Helgaas (1):
      mmc: sdhci-pci-gli: Use PCI AER definitions, not hard-coded values

Boris Burkov (1):
      btrfs: fix ssd_spread overallocation

Boshi Yu (1):
      RDMA/erdma: Fix ignored return value of init_kernel_qp

Brahmajit Das (1):
      samples: mei: Fix building on musl libc

Breno Leitao (5):
      ACPI: APEI: GHES: add TAINT_MACHINE_CHECK on GHES panic path
      arm64: Mark kernel as tainted on SAE and SError panic
      ptp: Use ratelimite for freerun error message
      ipmi: Use dev_warn_ratelimited() for incorrect message warnings
      mm/kmemleak: avoid deadlock by moving pr_warn() outside kmemleak_lock

Brett Creeley (1):
      vfio/pds: Fix missing detach_ioas op

Brian Masney (6):
      rtc: ds1307: fix incorrect maximum clock rate handling
      rtc: hym8563: fix incorrect maximum clock rate handling
      rtc: nct3018y: fix incorrect maximum clock rate handling
      rtc: pcf85063: fix incorrect maximum clock rate handling
      rtc: pcf8563: fix incorrect maximum clock rate handling
      rtc: rv3028: fix incorrect maximum clock rate handling

Buday Csaba (1):
      net: phy: smsc: add proper reset flags for LAN8710A

Budimir Markovic (1):
      vsock: Do not allow binding to VMADDR_PORT_ANY

Caleb Sander Mateos (1):
      ublk: use vmalloc for ublk_device's __queues

Cezary Rojewski (1):
      ASoC: Intel: avs: Fix uninitialized pointer error in probe()

Chao Gao (1):
      KVM: nVMX: Defer SVI update to vmcs01 on EOI when L2 is active w/o VID

Chao Yu (8):
      f2fs: doc: fix wrong quota mount option description
      f2fs: fix to avoid UAF in f2fs_sync_inode_meta()
      f2fs: fix to avoid panic in f2fs_evict_inode
      f2fs: fix to avoid out-of-boundary access in devs.path
      f2fs: fix to update upper_p in __get_secs_required() correctly
      f2fs: fix to calculate dirty data during has_not_enough_free_secs()
      f2fs: fix to trigger foreground gc during f2fs_map_blocks() in lfs mode
      f2fs: fix to avoid out-of-boundary access in dnode page

Charalampos Mitrodimas (1):
      usb: misc: apple-mfi-fastcharge: Make power supply names unique

Charles Han (2):
      power: supply: cpcap-charger: Fix null check for power_supply_get_by_name
      power: supply: max14577: Handle NULL pdata when CONFIG_OF is not set

Charles Keepax (1):
      soundwire: Move handle_nested_irq outside of sdw_dev_lock

Cheick Traore (1):
      pinctrl: stm32: Manage irq affinity settings

Chen Pei (1):
      perf tools: Remove libtraceevent in .gitignore

Chen Ridong (1):
      sched,freezer: Remove unnecessary warning in __thaw_task

Chen Yu (1):
      ACPI: pfr_update: Fix the driver update version check

Chen-Yu Tsai (2):
      ASoC: mediatek: use reserved memory or enable buffer pre-allocation
      mfd: axp20x: Set explicit ID for AXP313 regulator

Chenyuan Yang (2):
      fbdev: imxfb: Check fb_add_videomode to prevent null-ptr-deref
      drm/amd/display: Add null pointer check in mod_hdcp_hdcp1_create_session()

Chiara Meiohas (1):
      net/mlx5: Fix memory leak in cmd_exec()

Chris Down (1):
      Bluetooth: hci_event: Mask data status from LE ext adv reports

Chris Mason (1):
      sched/fair: Bump sd->max_newidle_lb_cost when newidle balance fails

Christian Loehle (1):
      cpuidle: menu: Remove iowait influence

Christoph Hellwig (2):
      block: reject invalid operation in submit_bio_noacct
      xfs: fully decouple XFS_IBULK* flags from XFS_IWALK* flags

Christoph Paasch (2):
      net/mlx5: Correctly set gso_segs when LRO is used
      mptcp: drop skb if MPTCP skb extension allocation fails

Christophe Leroy (1):
      ALSA: pcm: Rewrite recalculate_boundary() to avoid costly loop

Christopher Eby (1):
      ALSA: hda/realtek: Add Framework Laptop 13 (AMD Ryzen AI 300) to quirks

Clément Le Goffic (2):
      spi: stm32: Check for cfg availability in stm32_spi_probe
      i2c: stm32f7: unmap DMA mapped buffer

Corey Minyard (1):
      ipmi: Fix strcpy source and destination the same

Cristian Ciocaltea (1):
      ALSA: usb-audio: Avoid precedence issues in mixer_quirks macros

Cynthia Huang (1):
      selftests/futex: Define SYS_futex on 32-bit architectures with 64-bit time_t

D. Wythe (1):
      net/smc: fix UAF on smcsk after smc_listen_out()

Dai Ngo (1):
      NFSD: detect mismatch of file handle and delegation stateid in OPEN op

Damien Le Moal (9):
      ata: libata-sata: Disallow changing LPM state if not supported
      scsi: mpt3sas: Correctly handle ATA device errors
      scsi: mpi3mr: Correctly handle ATA device errors
      ata: libata-scsi: Fix ata_to_sense_error() status handling
      PCI: endpoint: Fix configfs group list head handling
      PCI: endpoint: Fix configfs group removal on driver teardown
      block: Make REQ_OP_ZONE_FINISH a write operation
      ata: Fix SATA_MOBILE_LPM_POLICY description in Kconfig
      ata: libata-scsi: Return aborted command when missing sense and result TF

Dan Carpenter (7):
      watchdog: ziirave_wdt: check record length in ziirave_firm_verify()
      fs/orangefs: Allow 2 more characters in do_c_string()
      cpufreq: armada-8k: Fix off by one in armada_8k_cpufreq_free_table()
      media: gspca: Add bounds checking to firmware parser
      soc: qcom: mdt_loader: Fix error return values in mdt_header_valid()
      scsi: qla4xxx: Prevent a potential error pointer dereference
      ALSA: usb-audio: Fix size validation in convert_chmap_v3()

Daniel Dadap (1):
      ALSA: hda: Add missing NVIDIA HDA codec IDs

Daniel Golle (1):
      Revert "leds: trigger: netdev: Configure LED blink interval for HW offload"

Daniel Jurgens (1):
      net/mlx5: Base ECVF devlink port attrs from 0

Daniil Dulov (1):
      wifi: rtl818x: Kill URBs before clearing tx status queue

Dave Hansen (1):
      x86/fpu: Delay instruction pointer fixup until after warning

Dave Stevenson (3):
      media: tc358743: Check I2C succeeded during probe
      media: tc358743: Return an appropriate colorspace from tc358743_set_fmt
      media: tc358743: Increase FIFO trigger level to 374

David Bauer (1):
      wifi: mt76: mt7915: mcu: re-init MCU before loading FW patch

David Collins (1):
      thermal/drivers/qcom-spmi-temp-alarm: Enable stage 2 shutdown when required

David Lechner (7):
      iio: adc: ad7949: use spi_is_bpw_supported()
      iio: adc: ad_sigma_delta: don't overallocate scan buffer
      iio: imu: bno055: fix OOB access of hw_xlate array
      iio: adc: ad_sigma_delta: change to buffer predisable
      iio: proximity: isl29501: fix buffered read on big-endian systems
      iio: temperature: maxim_thermocouple: use DMA-safe buffer for spi_read()
      iio: imu: inv_icm42600: use = { } instead of memset()

David Sterba (3):
      btrfs: move transaction aborts to the error site in add_block_group_free_space()
      btrfs: open code timespec64 in struct btrfs_inode
      btrfs: constify more pointer parameters

David Thompson (3):
      gpio: mlxbf2: use platform_get_irq_optional()
      Revert "gpio: mlxbf3: only get IRQ for device instance 0"
      gpio: mlxbf3: use platform_get_irq_optional()

Davide Caratti (1):
      net/sched: ets: use old 'nbands' while purging unused classes

Dawid Rezler (1):
      ALSA: hda/realtek - Add mute LED support for HP Pavilion 15-eg0xxx

Denis OSTERLAND-HEIM (1):
      pps: fix poll support

Dennis Chen (1):
      i40e: report VF tx_dropped with tx_errors instead of tx_discards

Deren Wu (1):
      wifi: mt76: mt7921: prevent decap offload config before STA initialization

Dmitry Antipov (1):
      jfs: reject on-disk inodes of an unsupported type

Dmitry Baryshkov (2):
      interconnect: qcom: sc8280xp: specify num_links for qnm_a1noc_cfg
      interconnect: qcom: sc8180x: specify num_nodes

Dmitry Vyukov (1):
      selftests: Fix errno checking in syscall_user_dispatch test

Douglas Anderson (1):
      drm/bridge: ti-sn65dsi86: Remove extra semicolon in ti_sn_bridge_probe()

Edward Adam Davis (3):
      fs/ntfs3: cancle set bad inode after removing name fails
      jfs: Regular file corruption check
      comedi: pcl726: Prevent invalid irq number

Eliav Farber (1):
      pps: clients: gpio: fix interrupt handling order in remove path

Elliot Berman (4):
      sched/core: Remove ifdeffery for saved_state
      freezer,sched: Use saved_state to reduce some spurious wakeups
      freezer,sched: Do not restore saved_state of a thawed task
      freezer,sched: Clean saved_state when restoring it during thaw

Emanuele Ghidoli (1):
      arm64: dts: ti: k3-am62-verdin: Enable pull-ups on I2C buses

Emily Deng (1):
      drm/ttm: Should to return the evict error

Eric Biggers (5):
      crypto: powerpc/poly1305 - add depends on BROKEN for now
      thunderbolt: Fix copy+paste error in match_service_id()
      lib/crypto: mips/chacha: Fix clang build and remove unneeded byteswap
      ipv6: sr: Fix MAC comparison to be constant-time
      fscrypt: Don't use problematic non-inline crypto engines

Eric Dumazet (12):
      net: dst: annotate data-races around dst->input
      net: dst: annotate data-races around dst->output
      net_sched: act_ctinfo: use atomic64_t for three counters
      tcp: call tcp_measure_rcv_mss() for ooo packets
      ipv6: prevent infinite loop in rt6_nlmsg_size()
      ipv6: fix possible infinite loop in fib6_info_uses_dev()
      ipv6: annotate data-races around rt->fib6_nsiblings
      pptp: ensure minimal skb length in pptp_xmit()
      ipv6: reject malicious packets in ipv6_gso_segment()
      pptp: fix pptp_xmit() error path
      net: better track kernel sockets lifetime
      net_sched: sch_ets: implement lockless ets_dump()

Eric Work (1):
      net: atlantic: add set_power to fw_ops for atl2 to fix wol

Evgeniy Harchenko (1):
      ALSA: hda/realtek: Add support for HP EliteBook x360 830 G6 and EliteBook 830 G6

Eyal Birger (1):
      xfrm: interface: fix use-after-free after changing collect_md xfrm interface

Fabrice Gasnier (1):
      Input: gpio-keys - fix a sleep while atomic with PREEMPT_RT

Fanhua Li (1):
      drm/nouveau/nvif: Fix potential memory leak in nvif_vmm_ctor().

Fedor Pchelkin (3):
      drm/amd/pm/powerplay/hwmgr/smu_helper: fix order of mask and value
      netfilter: nf_tables: adjust lockdep assertions handling
      netlink: avoid infinite retry looping in netlink_unicast()

Fenglin Wu (1):
      leds: flash: leds-qcom-flash: Limit LED current based on thermal condition

Filipe Manana (14):
      btrfs: abort transaction during log replay if walk_log_tree() failed
      btrfs: clear dirty status from extent buffer on error at insert_new_root()
      btrfs: fix log tree replay failure due to file with 0 links and extents
      btrfs: don't ignore inode missing when replaying log tree
      btrfs: qgroup: fix race between quota disable and quota rescan ioctl
      btrfs: always abort transaction on failure to add block group to free space tree
      btrfs: abort transaction on unexpected eb generation at btrfs_copy_root()
      btrfs: send: factor out common logic when sending xattrs
      btrfs: send: only use boolean variables at process_recorded_refs()
      btrfs: send: add and use helper to rename current inode when processing refs
      btrfs: send: keep the current inode's path cached
      btrfs: send: avoid path allocation for the current inode when issuing commands
      btrfs: send: use fallocate for hole punching with send stream v2
      btrfs: send: make fs_path_len() inline and constify its argument

Finn Thain (2):
      m68k: Don't unregister boot console needlessly
      m68k: Fix lost column on framebuffer debug console

Florian Larysch (1):
      net: phy: micrel: fix KSZ8081/KSZ8091 cable test

Florian Westphal (3):
      netfilter: xt_nfacct: don't assume acct name is null-terminated
      netfilter: ctnetlink: fix refcount leak on table dump
      netfilter: nf_reject: don't leak dst refcount for loopback packets

Florin Leotescu (1):
      hwmon: (emc2305) Set initial PWM minimum value during probe based on thermal state

Frederic Weisbecker (1):
      rcu: Fix racy re-initialization of irq_work causing hangs

Fushuai Wang (1):
      selftests/bpf: fix signedness bug in redir_partial()

Gabor Juhos (1):
      mtd: spinand: propagate spinand_wait() errors from spinand_write_page()

Gabriel Totev (1):
      apparmor: shift ouid when mediating hard links in userns

Gabriele Monaco (1):
      tools/rv: Do not skip idle in trace

Gal Pressman (2):
      net: vlan: Make is_vlan_dev() a stub when VLAN is not configured
      net: vlan: Replace BUG() with WARN_ON_ONCE() in vlan_dev_* stubs

Gang Ba (1):
      drm/amdgpu: Avoid extra evict-restore process.

Gao Xiang (1):
      erofs: address D-cache aliasing

Gautham R. Shenoy (1):
      pm: cpupower: Fix the snapshot-order of tsc,mperf, clock in mperf_stop()

Geliang Tang (2):
      mptcp: remove duplicate sk_reset_timer call
      mptcp: disable add_addr retransmission when timeout is 0

Geoffrey D. Bennett (1):
      ALSA: scarlett2: Add retry on -EPROTO from scarlett2_usb_tx()

George Moussalem (1):
      clk: qcom: ipq5018: keep XO clock always on

Gerald Schaefer (1):
      s390/mm: Remove possible false-positive warning in pte_free_defer()

Geraldo Nascimento (3):
      phy: rockchip-pcie: Properly disable TEST_WRITE strobe signal
      PCI: rockchip: Use standard PCIe definitions
      PCI: rockchip: Set Target Link Speed to 5.0 GT/s before retraining

Giovanni Cabiddu (5):
      crypto: qat - add shutdown handler to qat_dh895xcc
      crypto: qat - fix DMA direction for compression on GEN2 devices
      crypto: qat - fix seq_file position update in adf_ring_next()
      crypto: qat - lower priority for skcipher and aead algorithms
      crypto: qat - flush misc workqueue during device shutdown

Gokul Sivakumar (1):
      wifi: brcmfmac: fix P2P discovery failure in P2P peer due to missing P2P IE

Greg Kroah-Hartman (4):
      Linux 6.6.101
      Revert "vmci: Prevent the dispatching of uninitialized payloads"
      Linux 6.6.102
      Linux 6.6.103

Gui-Dong Han (1):
      media: rainshadow-cec: fix TOCTOU race condition in rain_interrupt()

Haiyang Zhang (1):
      hv_netvsc: Fix panic during namespace deletion with VF

Halil Pasic (1):
      s390/ism: fix concurrency management in ism_cmd()

Hangbin Liu (2):
      bonding: update LACP activity flag after setting lacp_active
      bonding: send LACPDUs periodically in passive mode after receiving partner's LACPDU

Hans Verkuil (1):
      media: vivid: fix wrong pixel_array control size

Hans Zhang (1):
      PCI: rockchip-host: Fix "Unexpected Completion" log message

Hans de Goede (2):
      mei: bus: Check for still connected devices in mei_cl_bus_dev_release()
      media: ivsc: Fix crash at shutdown due to missing mei_cldev_disable() calls

Haoran Jiang (1):
      LoongArch: BPF: Fix jump offset calculation in tailcall

Haoxiang Li (2):
      ice: Fix a null pointer dereference in ice_copy_and_init_pkg()
      media: imx: fix a potential memory leak in imx_media_csc_scaler_device_init()

Harald Mommer (1):
      gpio: virtio: Fix config space reading.

Hari Chandrakanthan (1):
      wifi: mac80211: fix rx link assignment for non-MLO stations

Hari Kalavakunta (1):
      net: ncsi: Fix buffer overflow in fetching version id

Hariprasad Kelam (1):
      Octeontx2-af: Skip overlap check for SPI field

Harry Yoo (1):
      mm/zsmalloc: do not pass __GFP_MOVABLE if CONFIG_COMPACTION=n

Heikki Krogerus (1):
      usb: dwc3: pci: add support for the Intel Wildcat Lake

Heiner Kallweit (1):
      dpaa_eth: don't use fixed_phy_change_carrier

Helge Deller (1):
      Revert "vgacon: Add check for vc_origin address range in vgacon_scroll()"

Heming Zhao (1):
      md/md-cluster: handle REMOVE message earlier

Henry Martin (1):
      clk: davinci: Add NULL check in davinci_lpsc_clk_register()

Herbert Xu (1):
      crypto: marvell/cesa - Fix engine load inaccuracy

Herton R. Krzesinski (1):
      mm/debug_vm_pgtable: clear page table entries at destroy_args()

Hiago De Franco (1):
      remoteproc: imx_rproc: skip clock enable when M-core is managed by the SCU

Hong Guan (1):
      arm64: dts: ti: k3-am62a7-sk: fix pinmux for main_uart1

Horatiu Vultur (2):
      phy: mscc: Fix parsing of unicast frames
      phy: mscc: Fix timestamping for vsc8584

Hsin-Te Yuan (1):
      thermal: sysfs: Return ENODATA instead of EAGAIN for reads

Huacai Chen (1):
      PCI: Extend isolated function probing to LoongArch

Ian Abbott (4):
      comedi: comedi_test: Fix possible deletion of uninitialized timers
      comedi: fix race between polling and detaching
      comedi: Make insn_rw_emulate_bits() do insn->n samples
      comedi: Fix use of uninitialized memory in do_insn_ioctl() and do_insnlist_ioctl()

Ian Forbes (1):
      drm/vmwgfx: Fix Host-Backed userspace on Guest-Backed kernel

Ian Rogers (1):
      perf dso: Add missed dso__put to dso__load_kcore

Ido Schimmel (1):
      mlxsw: spectrum: Forward packets with an IPv4 link-local source IP

Igor Pylypiv (1):
      ata: libata-scsi: Fix CDL control

Ihor Solodrai (1):
      bpf: Make reg_not_null() true for CONST_PTR_TO_MAP

Ilan Peer (1):
      wifi: cfg80211: Fix interface type validation

Ilya Bakoulin (1):
      drm/amd/display: Separate set_gsl from set_gsl_source_select

Imre Deak (1):
      drm/dp: Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS

Isaac J. Manjarres (4):
      mm: drop the assumption that VM_SHARED always implies writable
      mm: update memfd seal write check to include F_SEAL_WRITE
      mm: reinstate ability to map write-sealed memfd mappings read-only
      selftests/memfd: add test for mapping write-sealed memfd read-only

Ivan Stepchenko (1):
      mtd: fix possible integer overflow in erase_xfer()

Jacek Kowalski (2):
      e1000e: disregard NVM checksum on tgp when valid checksum bit is not set
      e1000e: ignore uninitialized checksum word on tgp

Jack Xiao (1):
      drm/amdgpu: fix incorrect vm flags to map bo

Jacob Pan (2):
      vfio: Fix unbalanced vfio_df_close call in no-iommu mode
      vfio: Prevent open_count decrement to negative

Jaegeuk Kim (1):
      f2fs: check the generic conditions first

Jakub Acs (1):
      net, hsr: reject HSR frame if skb can't hold tag

Jakub Kicinski (5):
      netpoll: prevent hanging NAPI when netcons gets enabled
      netlink: specs: ethtool: fix module EEPROM input/output arguments
      tls: handle data disappearing from under the TLS ULP
      uapi: in6: restore visibility of most IPv6 socket options
      tls: fix handling of zero-length records on the rx_list

Jakub Ramaseuski (1):
      net: gso: Forbid IPv6 TSO with extensions on devices with only IPV6_CSUM

James Cowgill (1):
      media: v4l2-ctrls: Fix H264 SEPARATE_COLOUR_PLANE check

Jamie Bainbridge (1):
      i40e: When removing VF MAC filters, only check PF-set MAC

Jan Beulich (1):
      compiler: remove __ADDRESSABLE_ASM{_STR,}() again

Jan Kara (2):
      loop: Avoid updating block size under exclusive owner
      udf: Verify partition map count

Jan Prusakowski (1):
      f2fs: vm_unmap_ram() may be called from an invalid context

Jann Horn (1):
      eventpoll: Fix semi-unbounded recursion

Jason Gunthorpe (2):
      iommu/amd: Fix geometry.aperture_end for V2 tables
      iommufd: Prevent ALIGN() overflow

Jason Wang (1):
      vhost: fail early when __vhost_add_used() fails

Jason Xing (1):
      ixgbe: xsk: resolve the negative overflow of budget in ixgbe_xmit_zc

Jay Chen (1):
      usb: xhci: Set avg_trb_len = 8 for EP0 during Address Device Command

Jean-Baptiste Maneyrol (1):
      iio: imu: inv_icm42600: change invalid data error to -EBUSY

Jeff Layton (1):
      nfsd: handle get_client_locked() failure in nfsd4_setclientid_confirm()

Jens Axboe (1):
      io_uring/net: commit partial buffers on retry

Jeongjun Park (1):
      ptp: prevent possible ABBA deadlock in ptp_clock_freerun()

Jerome Brunet (1):
      PCI: endpoint: pci-epf-vntb: Return -ENOENT if pci_epc_get_next_free_bar() fails

Jian Shen (2):
      net: hns3: fix concurrent setting vlan filter issue
      net: hns3: fixed vf get max channels bug

Jianbo Liu (1):
      net/mlx5e: Remove skb secpath if xfrm state is not found

Jiasheng Jiang (2):
      iwlwifi: Add missing check for alloc_ordered_workqueue
      scsi: lpfc: Remove redundant assignment to avoid memory leak

Jiaxun Yang (1):
      MIPS: mm: tlb-r4k: Uniquify TLB entries on init

Jiayi Li (2):
      ACPI: processor: perflib: Fix initial _PPC limit application
      memstick: Fix deadlock by moving removing flag earlier

Jiayuan Chen (2):
      bpf, sockmap: Fix psock incorrectly pointing to sk
      bpf, ktls: Fix data corruption when using bpf_msg_pop_data() in ktls

Jijie Shao (1):
      net: hns3: default enable tx bounce buffer when smmu enabled

Jimmy Assarsson (2):
      can: kvaser_pciefd: Store device channel index
      can: kvaser_usb: Assign netdev.dev_port based on device channel index

Jinjiang Tu (1):
      mm/memory-failure: fix infinite UCE for VM_PFNMAP pfn

Joel Fernandes (1):
      rcu: Fix rcu_read_unlock() deadloop due to IRQ work

Johan Adolfsson (1):
      leds: leds-lp50xx: Handle reg to get correct multi_index

Johan Hovold (16):
      soc: qcom: pmic_glink: fix OF node leak
      net: gianfar: fix device leak when querying time stamp info
      net: enetc: fix device and OF node leak at probe
      net: mtk_eth_soc: fix device leak at probe
      net: ti: icss-iep: fix device and OF node leaks at probe
      net: dpaa: fix device leak when querying time stamp info
      usb: gadget: udc: renesas_usb3: fix device leak at unbind
      usb: musb: omap2430: fix device leak at unbind
      usb: dwc3: meson-g12a: fix device leaks at unbind
      wifi: ath12k: fix dest ring-buffer corruption
      wifi: ath12k: fix source ring-buffer corruption
      wifi: ath12k: fix dest ring-buffer corruption when ring is full
      wifi: ath11k: fix dest ring-buffer corruption
      wifi: ath11k: fix source ring-buffer corruption
      wifi: ath11k: fix dest ring-buffer corruption when ring is full
      usb: dwc3: imx8mp: fix device leak at unbind

Johan Korsnes (1):
      arch: powerpc: defconfig: Drop obsolete CONFIG_NET_CLS_TCINDEX

Johannes Berg (2):
      wifi: cfg80211: reject HTC bit for management frames
      wifi: mac80211: don't complete management TX on SAE commit

Johannes Thumshirn (1):
      btrfs: zoned: use filesystem size not disk size for reclaim decision

John David Anglin (8):
      parisc: Check region is readable by user in raw_copy_from_user()
      parisc: Define and use set_pte_at()
      parisc: Drop WARN_ON_ONCE() from flush_cache_vmap
      parisc: Rename pte_needs_flush() to pte_needs_cache_flush() in cache.c
      parisc: Revise __get_user() to probe user read access
      parisc: Revise gateway LWS calls to probe user read access
      parisc: Try to fixup kernel exception in bad_area_nosemaphore path of do_page_fault()
      parisc: Update comments in make_insert_tlb

John Ernberg (1):
      net: usbnet: Avoid potential RCU stall on LINK_CHANGE event

John Garry (2):
      scsi: aacraid: Stop using PCI_IRQ_AFFINITY
      block: avoid possible overflow for chunk_sectors check in blk_stack_limits()

Jon Hunter (1):
      soc/tegra: pmc: Ensure power-domains are in a known state

Jonas Rebmann (1):
      net: fec: allow disable coalescing

Jonathan Cameron (2):
      iio: light: as73211: Ensure buffer holes are zeroed
      iio: imu: inv_icm42600: switch timestamp type from int64_t __aligned(8) to aligned_s64

Jonathan Santos (1):
      iio: adc: ad7768-1: Ensure SYNC_IN pulse minimum timing requirement

Jordan Rhee (1):
      gve: prevent ethtool ops after shutdown

Jorge Marques (1):
      i3c: master: Initialize ret in i3c_i2c_notifier_call()

Jorge Ramirez-Ortiz (2):
      media: venus: hfi: explicitly release IRQ during teardown
      media: venus: protect against spurious interrupts during probe

Judith Mendez (1):
      arm64: dts: ti: k3-am62-main: Remove eMMC High Speed DDR support

Juergen Gross (1):
      xen/gntdev: remove struct gntdev_copy_batch from stack

Junxian Huang (1):
      RDMA/hns: Fix -Wframe-larger-than issue

Justin Tee (1):
      scsi: lpfc: Check for hdwq null ptr when cleaning up lpfc_vport structure

Kan Liang (1):
      perf/x86/intel: Fix crash in icl_update_topdown_event()

Kanglong Wang (1):
      LoongArch: Optimize module load time by optimizing PLT/GOT counting

Karthikeyan Kathirvel (1):
      wifi: ath12k: Decrement TID on RX peer frag setup error handling

Kashyap Desai (2):
      RDMA/bnxt_re: Fix to do SRQ armena by default
      RDMA/bnxt_re: Fix to remove workload check in SRQ limit path

Kathiravan Thirumoorthy (1):
      phy: qcom: phy-qcom-m31: Update IPQ5332 M31 USB phy initialization sequence

Kees Cook (4):
      wifi: mac80211: Write cnt before copying in ieee80211_copy_rnr_beacon()
      arm64: Handle KCOV __init vs inline mismatches
      platform/x86: thinkpad_acpi: Handle KCOV __init vs inline mismatches
      iommu/amd: Avoid stack buffer overflow from kernel cmdline

Keith Busch (2):
      nvme-pci: try function level reset on init failure
      vfio/type1: conditional rescheduling while pinning

Khairul Anuar Romli (1):
      spi: cadence-quadspi: fix cleanup of rx_chan on failure paths

Kito Xu (veritas501) (1):
      net: appletalk: Fix use-after-free in AARP proxy probe

Konrad Dybcio (3):
      arm64: dts: qcom: sdm845: Expand IMEM region
      arm64: dts: qcom: sc7180: Expand IMEM region
      drm/msm/dpu: Fill in min_prefill_lines for SC8180X

Konstantin Komarov (1):
      Revert "fs/ntfs3: Replace inode_trylock with inode_lock"

Krzysztof Hałasa (1):
      imx8m-blk-ctrl: set ISI panic write hurry level

Krzysztof Kozlowski (4):
      ARM: dts: vfxxx: Correctly use two tuples for timer address
      dt-bindings: display: sprd,sharkl3-dpu: Fix missing clocks constraints
      dt-bindings: display: sprd,sharkl3-dsi-host: Fix missing clocks constraints
      leds: flash: leds-qcom-flash: Fix registry access after re-bind

Kuen-Han Tsai (1):
      usb: dwc3: Ignore late xferNotReady event to prevent halt timeout

Kuninori Morimoto (2):
      ASoC: soc-dai: tidyup return value of snd_soc_xlate_tdm_slot_mask()
      ASoC: soc-dapm: set bias_level if snd_soc_dapm_set_bias_level() was successed

Kuniyuki Iwashima (3):
      bpf: Disable migration in nf_hook_run_bpf().
      ipv6: mcast: Check inet6_dev->dead under idev->mc_lock in __ipv6_dev_mc_inc().
      net: Add net_passive_inc() and net_passive_dec().

Lad Prabhakar (1):
      drm: renesas: rz-du: mipi_dsi: Add min check for VCLK range

Lane Odenbach (1):
      ASoC: amd: yc: Add DMI quirk for HP Laptop 17 cp-2033dx

Laurent Vivier (1):
      virtio_ring: Fix error reporting in virtqueue_resize

Laurentiu Mihalcea (1):
      pwm: imx-tpm: Reset counter if CMOD is 0

Len Brown (1):
      intel_idle: Allow loading ACPI tables for any family

Leo Yan (1):
      perf tests bp_account: Fix leaked file descriptor

Leon Romanovsky (1):
      net/mlx5e: Properly access RCU protected qdisc_sleeping variable

Li Lingfeng (1):
      scsi: Revert "scsi: iscsi: Fix HW conn removal use after free"

Liao Yuanhong (1):
      ext4: use kmalloc_array() for array space allocation

Lifeng Zheng (5):
      PM / devfreq: Check governor before using governor->name
      cpufreq: Initialize cpufreq-based frequency-invariance later
      cpufreq: Init policy->rwsem before it may be possibly used
      cpufreq: Exit governor when failed to start old governor
      PM / devfreq: governor: Replace sscanf() with kstrtoul() in set_freq_store()

Lin.Cao (1):
      drm/sched: Remove optimization that causes hang when killing dependent jobs

Liu Shixin (1):
      mm: khugepaged: fix call hpage_collapse_scan_file() for anonymous vma

Lizhi Xu (3):
      vmci: Prevent the dispatching of uninitialized payloads
      fs/ntfs3: Add sanity check for file name
      jfs: truncate good inode pages when hard link is 0

Lorenzo Stoakes (1):
      selftests/perf_events: Add a mmap() correctness test

Luca Weiss (1):
      net: ipa: add IPA v5.1 and v5.5 to ipa_version_string()

Lucas De Marchi (1):
      usb: early: xhci-dbc: Fix early_ioremap leak

Lucy Thrun (1):
      ALSA: hda/ca0132: Fix buffer overflow in add_tuning_control

Ludwig Disterhof (1):
      media: usbtv: Lock resolution while streaming

Lukas Wunner (1):
      PCI/ACPI: Fix runtime PM ref imbalance on Hot-Plug Capable ports

Ma Ke (4):
      bus: fsl-mc: Fix potential double device reference in fsl_mc_get_endpoint()
      dpaa2-eth: Fix device reference count leak in MAC endpoint handling
      dpaa2-switch: Fix device reference count leak in MAC endpoint handling
      sunvdc: Balance device refcount in vdc_port_mpgroup_check

Mael GUERIN (1):
      USB: storage: Add unusual-devs entry for Novatek NTK96550-based camera

Maher Azzouzi (1):
      net/sched: mqprio: fix stack out-of-bounds write in tc entry parsing

Manivannan Sadhasivam (1):
      PCI: endpoint: pci-epf-vntb: Fix the incorrect usage of __iomem attribute

Manuel Andreas (1):
      KVM: x86/hyper-v: Skip non-canonical addresses during PV TLB flush

Maor Gottlieb (1):
      RDMA/core: Rate limit GID cache warning messages

Marc Kleine-Budde (3):
      can: dev: can_restart(): reverse logic to remove need for goto
      can: dev: can_restart(): move debug message and stats after successful restart
      can: netlink: can_changelink(): fix NULL pointer deref of struct can_priv::do_set_mode

Marco Elver (2):
      kasan: use vmalloc_dump_obj() for vmalloc error reports
      kcsan: test: Initialize dummy variable

Marek Szyprowski (1):
      zynq_fpga: use sgtable-based scatterlist wrappers

Marek Vasut (1):
      usb: renesas-xhci: Fix External ROM access timeouts

Mario Limonciello (8):
      platform/x86/amd: pmc: Add Lenovo Yoga 6 13ALC6 to pmc quirk list
      usb: xhci: Avoid showing warnings for dying controller
      usb: xhci: Avoid showing errors during surprise removal
      drm/amd: Allow printing VanGogh OD SCLK levels without setting dpm to manual
      drm/amd/display: Only finalize atomic_obj if it was initialized
      drm/amd/display: Avoid configuring PSR granularity if PSR-SU not supported
      drm/amd: Restore cached power limit during resume
      drm/amd/display: Avoid a NULL pointer dereference

Mark Brown (3):
      kselftest/arm64: Fix check for setting new VLs in sve-ptrace
      ASoC: hdac_hdmi: Rate limit logging on connection and disconnection
      kselftest/arm64: Specify SVE data when testing VL set in sve-ptrace

Markus Theil (1):
      crypto: jitter - fix intermediary handling

Martin Kaistra (1):
      wifi: rtl8xxxu: Fix RX skb size for aggregation disabled

Masahiro Yamada (3):
      kconfig: qconf: fix ConfigList::updateListAllforAll()
      kconfig: gconf: avoid hardcoding model2 in on_treeview2_cursor_changed()
      kconfig: gconf: fix potential memory leak in renderer_edited()

Masami Hiramatsu (Google) (2):
      selftests: tracing: Use mutex_unlock for testing glob filter
      tracing: fprobe-event: Sanitize wildcard for fprobe event name

Mateusz Guzik (1):
      apparmor: use the condition in AA_BUG_FMT even with debug disabled

Matt Johnston (1):
      net: mctp: Prevent duplicate binds

Matthieu Baerts (NGI0) (4):
      selftests: mptcp: connect: also cover alt modes
      selftests: mptcp: connect: also cover checksum
      mptcp: pm: kernel: flush: do not reset ADD_ADDR limit
      selftests: mptcp: pm: check flush doesn't reset limits

Maulik Shah (1):
      soc: qcom: rpmh-rsc: Add RSC version 4 support

Maurizio Lombardi (1):
      scsi: target: core: Generate correct identifiers for PR OUT transport IDs

Maxim Levitsky (3):
      KVM: nVMX: Check vmcs12->guest_ia32_debugctl on nested VM-Enter
      KVM: VMX: Wrap all accesses to IA32_DEBUGCTL with getter/setter APIs
      KVM: VMX: Preserve host's DEBUGCTLMSR_FREEZE_IN_SMM while running the guest

Md Sadre Alam (1):
      mtd: rawnand: qcom: Fix last codeword read in qcom_param_page_type_exec()

Meagan Lloyd (2):
      rtc: ds1307: handle oscillator stop flag (OSF) for ds1341
      rtc: ds1307: remove clear of oscillator stop flag (OSF) in probe

Mengbiao Xiong (1):
      crypto: ccp - Fix crash when rebind ccp device for ccp.ko

Miao Li (1):
      usb: quirks: Add DELAY_INIT quick for another SanDisk 3.2Gen1 Flash Drive

Miaoqian Lin (1):
      most: core: Drop device reference after usage in get_channel()

Michael Grzeschik (2):
      usb: typec: tcpm: allow to use sink in accessory mode
      usb: typec: tcpm: allow switching to mode accessory to mux properly

Michael Walle (1):
      mtd: spi-nor: Fix spi_nor_try_unlock_all()

Michael Zhivich (1):
      x86/bugs: Fix use of possibly uninit value in amd_check_tsa_microcode()

Michal Schmidt (1):
      benet: fix BUG when creating VFs

Michal Suchanek (1):
      powerpc/boot: Fix build with gcc 15

Michel Dänzer (1):
      drm/amd/display: Add primary plane to commits for correct VRR handling

Mike Christie (1):
      vhost-scsi: Fix log flooding with target does not exist errors

Mikhail Lobanov (1):
      wifi: mac80211: check basic rates validity in sta_link_apply_parameters

Mikulas Patocka (1):
      dm-mpath: don't print the "loaded" message if registering fails

Mina Almasry (1):
      netmem: fix skb_frag_address_safe with unreadable skbs

Minhong He (1):
      ipv6: sr: validate HMAC algorithm ID in seg6_hmac_info_add

Miri Korenblit (1):
      wifi: iwlwifi: mvm: set gtk id also in older FWs

Mohan Kumar D (1):
      ALSA: hda/tegra: Add Tegra264 support

Moon Hee Lee (1):
      wifi: mac80211: reject TDLS operations when station is not associated

Mukesh Ojha (1):
      pinmux: fix race causing mux_owner NULL with active mux_usecount

Murad Masimov (1):
      wifi: plfxlc: Fix error handling in usb driver probe

Myrrh Periwinkle (3):
      usb: typec: ucsi: Update power_supply on power role change
      vt: keyboard: Don't process Unicode characters in K_OFF mode
      vt: defkeymap: Map keycodes above 127 to K_HOLE

Namhyung Kim (4):
      perf tools: Fix use-after-free in help_unknown_cmd()
      perf sched: Free thread->priv using priv_destructor
      perf sched: Fix memory leaks for evsel->priv in timehist
      perf sched: Fix memory leaks in 'perf sched latency'

Namjae Jeon (7):
      ksmbd: fix use-after-free in __smb2_lease_break_noti()
      ksmbd: add free_transport ops in ksmbd connection
      ksmbd: fix null pointer dereference error in generate_encryptionkey
      ksmbd: fix Preauh_HashValue race condition
      ksmbd: fix corrupted mtime and ctime in smb2_open
      ksmbd: limit repeated connections from clients with the same IP
      ksmbd: extend the connection limiting mechanism to support IPv6

Naohiro Aota (3):
      btrfs: zoned: do not remove unwritten non-data block group
      btrfs: zoned: do not select metadata BG as finish target
      btrfs: zoned: fix write time activation failure for metadata block group

Nathan Chancellor (3):
      ARM: 9448/1: Use an absolute path to unified.h in KBUILD_AFLAGS
      usb: atm: cxacru: Merge cxacru_upload_firmware() into cxacru_heavy_init()
      wifi: brcmsmac: Remove const from tbl_ptr parameter in wlc_lcnphy_common_read_table()

NeilBrown (2):
      sched: Add test_and_clear_wake_up_bit() and atomic_dec_and_wake_up()
      smb/server: avoid deadlock when linking with ReplaceIfExists

Nianyao Tang (1):
      arm64/cpufeatures/kvm: Add ARMv8.9 FEAT_ECBHB bits in ID_AA64MMFR1 register

Nicolas Dufresne (1):
      media: verisilicon: Fix AV1 decoder clock frequency

Nicolas Escande (1):
      neighbour: add support for NUD_PERMANENT proxy entries

Nicolin Chen (1):
      iommufd: Report unmapped bytes in the error path of iopt_unmap_iova_range

Niklas Söderlund (1):
      media: v4l2-common: Reduce warnings about missing V4L2_CID_LINK_FREQ control

Nitin Gote (1):
      iosys-map: Fix undefined behavior in iosys_map_clear()

Nuno Das Neves (1):
      x86/hyperv: Fix usage of cpu_online_mask to get valid cpu

Nuno Sá (1):
      clk: clk-axi-clkgen: fix fpfd_max frequency for zynq

Ojaswin Mujoo (2):
      ext4: fix fsmap end of range reporting with bigalloc
      ext4: fix reserved gdt blocks handling in fsmap

Olga Kornievskaia (3):
      NFSv4.2: another fix for listxattr
      sunrpc: fix client side handling of tls alerts
      sunrpc: fix handling of server side tls alerts

Oliver Neukum (3):
      usb: core: usb_submit_urb: downgrade type check
      net: usb: cdc-ncm: check for filtering capability
      cdc-acm: fix race between initial clearing halt and open

Oscar Maes (1):
      net: ipv4: fix incorrect MTU in broadcast routes

Ovidiu Panait (2):
      crypto: sun8i-ce - fix nents passed to dma_unmap_sg()
      hwrng: mtk - handle devm_pm_runtime_enable errors

Pagadala Yesu Anjaneyulu (1):
      wifi: iwlwifi: fw: Fix possible memory leak in iwl_fw_dbg_collect

Pali Rohár (1):
      cifs: Fix calling CIFSFindFirst() for root path without msearch

Paolo Abeni (3):
      mptcp: make fallback action and fallback decision atomic
      mptcp: plug races between subflow fail and subflow creation
      mptcp: reset fallback status gracefully at disconnect() time

Paul Chaignon (2):
      bpf: Check flow_dissector ctx accesses are aligned
      bpf: Check netfilter ctx accesses are aligned

Paul E. McKenney (1):
      rcu: Protect ->defer_qs_iw_pending from data race

Paul Kocialkowski (1):
      clk: sunxi-ng: v3s: Fix de clock definition

Pauli Virtanen (1):
      Bluetooth: hci_event: fix MTU for BN == 0 in CIS Established

Pavel Begunkov (1):
      io_uring: don't use int for ABI

Pawan Gupta (1):
      x86/bugs: Avoid warning when overriding return thunk

Pedro Falcato (1):
      RDMA/siw: Fix the sendmsg byte count in siw_tcp_sendpages

Pei Xiao (1):
      clk: tegra: periph: Fix error handling and resolve unsigned compare warning

Peter Oberparleiter (3):
      s390/sclp: Fix SCCB present check
      s390/hypfs: Avoid unnecessary ioctl registration in debugfs
      s390/hypfs: Enable limited access during lockdown

Peter Robinson (1):
      reset: brcmstb: Enable reset drivers for ARCH_BCM2835

Peter Ujfalusi (1):
      ASoC: core: Check for rtd == NULL in snd_soc_remove_pcm_runtime()

Peter Zijlstra (2):
      sched/psi: Optimize psi_group_change() cpu_clock() usage
      sched/psi: Fix psi_seq initialization

Petr Machata (1):
      net: ipv6: ip6mr: Fix in/out netdev to pass to the FORWARD chain

Petr Pavlu (2):
      module: Restore the moduleparam prefix length check
      module: Prevent silent truncation of module name in delete_module(2)

Phil Sutter (1):
      netfilter: nf_tables: Drop dead code from fill_*_info routines

Philip Yang (1):
      drm/amdkfd: Don't call mmput from MMU notifier callback

Phillip Lougher (1):
      squashfs: fix memory leak in squashfs_fill_super

Prashant Malani (1):
      cpufreq: CPPC: Mark driver with NEED_UPDATE_LIMITS flag

Praveen Kaligineedi (1):
      gve: Fix stuck TX queue for DQ queue format

Pu Lehui (1):
      tracing: Limit access to parser->buffer when trace_get_user failed

Purva Yeshi (1):
      md: dm-zoned-target: Initialize return variable r to avoid uninitialized use

Qingfang Deng (2):
      net: ethernet: mtk_ppe: add RCU lock around dev_fill_forward_path
      ppp: fix race conditions in ppp_fill_forward_path

Qu Wenruo (2):
      btrfs: do not allow relocation of partially dropped subvolumes
      btrfs: populate otime when logging an inode item

Quang Le (1):
      net/packet: fix a race in packet_set_ring() and packet_notifier()

RD Babiera (1):
      usb: typec: tcpm: apply vbus before data bringup in tcpm_src_attach

Rafael J. Wysocki (6):
      cpufreq: intel_pstate: Always use HWP_DESIRED_PERF in passive mode
      ACPI: processor: perflib: Move problematic pr->performance check
      cpuidle: governors: menu: Avoid using invalid recent intervals data
      PM: runtime: Clear power.needs_force_resume in pm_runtime_reinit()
      PM: runtime: Take active children into account in pm_runtime_get_if_in_use()
      cpuidle: governors: menu: Avoid selecting states with too much latency

Raj Kumar Bhagat (1):
      wifi: ath12k: Enable REO queue lookup table feature on QCN9274 hw2.0

Ramya Gnanasekar (1):
      wifi: mac80211: update radar_required in channel context after channel switch

Rand Deeb (1):
      wifi: iwlwifi: dvm: fix potential overflow in rs_fill_link_cmd()

Randy Dunlap (2):
      parisc: Makefile: fix a typo in palo.conf
      parisc: Makefile: explain that 64BIT requires both 32-bit and 64-bit compilers

Ranjan Kumar (4):
      scsi: Fix sas_user_scan() to handle wildcard and multi-channel scans
      scsi: mpi3mr: Fix race between config read submit and interrupt completion
      scsi: mpi3mr: Drop unnecessary volatile from __iomem pointers
      scsi: mpi3mr: Serialize admin queue BAR writes on 32-bit systems

Remi Pommarel (2):
      wifi: mac80211: Check 802.11 encaps offloading in ieee80211_tx_h_select_key()
      Reapply "wifi: mac80211: Update skb's control block key in ieee80211_tx_dequeue()"

Ricardo Ribalda (3):
      media: uvcvideo: Do not mark valid metadata as invalid
      media: venus: vdec: Clamp param smaller than 1fps and bigger than 240.
      media: venus: venc: Clamp param smaller than 1fps and bigger than 240

Richard Guy Briggs (1):
      audit,module: restore audit logging in load failure case

Richard Zhu (2):
      PCI: imx6: Delay link start until configfs 'start' written
      PCI: imx6: Add IMX8MM_EP and IMX8MP_EP fixed 256-byte BAR 4 in epc_features

Ricky Wu (1):
      misc: rtsx: usb: Ensure mmc child device is active when card is present

Rob Clark (1):
      drm/msm: use trylock for debugfs

Rohit Visavalia (1):
      clk: xilinx: vcu: unregister pll_post only if registered correctly

Rong Zhang (2):
      platform/x86: ideapad-laptop: Fix kbd backlight not remembered among boots
      fs/ntfs3: correctly create symlink for relative path

RubenKelevra (1):
      fs_context: fix parameter name in infofc() macro

Ryan Lee (2):
      apparmor: ensure WB_HISTORY_SIZE value is a power of 2
      apparmor: fix loop detection used in conflicting attachment resolution

Ryusuke Konishi (1):
      nilfs2: reject invalid file types when reading inodes

Sabrina Dubroca (1):
      udp: also consider secpath when evaluating ipsec use for checksumming

Sakari Ailus (2):
      media: v4l2-ctrls: Don't reset handler's error in v4l2_ctrl_handler_free()
      PM: runtime: Simplify pm_runtime_get_if_active() usage

Salah Triki (1):
      iio: pressure: bmp280: Use IS_ERR() in bmp280_common_probe()

Salomon Dushimirimana (1):
      scsi: sd: Make sd shutdown issue START STOP UNIT appropriately

Sarah Newman (1):
      drbd: add missing kref_get in handle_write_conflicts

Sarika Sharma (2):
      wifi: ath12k: Correct tid cleanup when tid setup fails
      wifi: ath12k: Add memset and update default rate value in wmi tx completion

Sarthak Garg (1):
      mmc: sdhci-msm: Ensure SD card power isn't ON when card removed

Sasha Levin (1):
      fs: Prevent file descriptor table allocations exceeding INT_MAX

Sean Christopherson (15):
      KVM: SVM: Set RFLAGS.IF=1 in C code, to get VMRUN out of the STI shadow
      KVM: x86: Plumb in the vCPU to kvm_x86_ops.hwapic_isr_update()
      KVM: x86: Snapshot the host's DEBUGCTL in common x86
      KVM: x86: Snapshot the host's DEBUGCTL after disabling IRQs
      KVM: x86: Plumb "force_immediate_exit" into kvm_entry() tracepoint
      KVM: VMX: Re-enter guest in fastpath for "spurious" preemption timer exits
      KVM: VMX: Handle forced exit due to preemption timer in fastpath
      KVM: x86: Move handling of is_guest_mode() into fastpath exit handlers
      KVM: VMX: Handle KVM-induced preemption timer exits in fastpath for L2
      KVM: x86: Fully defer to vendor code to decide how to force immediate exit
      KVM: x86: Convert vcpu_run()'s immediate exit param into a generic bitmap
      KVM: x86: Drop kvm_x86_ops.set_dr6() in favor of a new KVM_RUN flag
      KVM: VMX: Allow guest to set DEBUGCTL.RTM_DEBUG if RTM is supported
      KVM: VMX: Extract checking of guest's DEBUGCTL into helper
      KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer

Sebastian Ott (1):
      ACPI: processor: fix acpi_object initialization

Sebastian Reichel (2):
      watchdog: dw_wdt: Fix default timeout
      usb: typec: fusb302: cache PD RX state

Selvarasu Ganesan (1):
      usb: dwc3: Remove WARN_ON for device endpoint command timeouts

Sergey Bashirov (4):
      pNFS: Fix stripe mapping in block/scsi layout
      pNFS: Fix disk addr range check in block/scsi layout
      pNFS: Handle RPC size limit for layoutcommits
      pNFS: Fix uninited ptr deref in block/scsi layout

Sergey Senozhatsky (1):
      wifi: ath11k: clear initialized flag for deinit-ed srng lists

Sergey Shtylyov (1):
      Bluetooth: hci_conn: do return error from hci_enhanced_setup_sync()

Seunghui Lee (1):
      scsi: ufs: core: Use link recovery when h8 exit fails during runtime resume

Seungjin Bae (1):
      usb: host: xhci-plat: fix incorrect type for of_match variable in xhci_plat_probe()

Shahar Shitrit (1):
      net/mlx5: E-Switch, Fix peer miss rules to use peer eswitch

Shankari Anand (1):
      kconfig: nconf: Ensure null termination where strncpy is used

Shannon Nelson (1):
      ionic: clean dbpage in de-init

Shen Lichuan (2):
      smb: client: Use min() macro
      smb: client: Correct typos in multiple comments across various files

Shengjiu Wang (2):
      ASoC: fsl_xcvr: get channel status data when PHY is not exists
      ASoC: fsl_sai: replace regmap_write with regmap_update_bits

Shiji Yang (2):
      MIPS: vpe-mt: add missing prototypes for vpe_{alloc,start,stop,free}
      MIPS: lantiq: falcon: sysctrl: fix request memory check logic

Shixiong Ou (1):
      fbcon: Fix outdated registered_fb reference in comment

Showrya M N (1):
      scsi: libiscsi: Initialize iscsi_conn->dd_data only if memory is allocated

Shuai Xue (1):
      ACPI: APEI: send SIGBUS to current task if synchronous memory error not recovered

Shubhrajyoti Datta (1):
      EDAC/synopsys: Clear the ECC counters on init

Shung-Hsi Yu (1):
      Revert "selftests/bpf: Add a cgroup prog bpf_get_ns_current_pid_tgid() test"

Shyam Prasad N (1):
      cifs: reset iface weights when we cannot find a candidate

Sivan Zohar-Kotzer (1):
      powercap: dtpm_cpu: Fix NULL pointer dereference in get_pd_power_uw()

Slark Xiao (1):
      USB: serial: option: add Foxconn T99W709

Sravan Kumar Gundu (1):
      fbdev: Fix vmalloc out-of-bounds write in fast_imageblit

Srinivas Kandagatla (1):
      ASoC: qcom: use drvdata instead of component to keep id

Stanislav Fomichev (1):
      vrf: Drop existing dst reference in vrf_ip6_input_dst

Stanislaw Gruszka (1):
      wifi: iwlegacy: Check rate_idx range after addition

Stav Aviram (1):
      net/mlx5: Check device memory pointer before usage

Stefan Metzmacher (12):
      smb: server: remove separate empty_recvmsg_queue
      smb: server: make sure we call ib_dma_unmap_single() only if we called ib_dma_map_single already
      smb: server: let recv_done() consistently call put_recvmsg/smb_direct_disconnect_rdma_connection
      smb: server: let recv_done() avoid touching data_transfer after cleanup/move
      smb: smbdirect: add smbdirect_socket.h
      smb: client: make use of common smbdirect_socket
      smb: client: make sure we call ib_dma_unmap_single() only if we called ib_dma_map_single already
      smb: client: let recv_done() cleanup before notifying the callers.
      smb: client: return an error if rdma_connect does not return within 5 seconds
      smb: client: let send_done() cleanup before calling smbd_disconnect_rdma_connection()
      smb: client: don't wait for info->send_pending == 0 on error
      smb: server: split ksmbd_rdma_stop_listening() out of ksmbd_rdma_destroy()

Stefan Wahren (2):
      staging: vchiq_arm: Make vchiq_shutdown never fail
      spi: spi-fsl-lpspi: Clamp too high speed_hz

Stephane Grosjean (1):
      can: peak_usb: fix USB FD devices potential malfunction

Stephen Rothwell (1):
      sprintf.h requires stdarg.h

Steve French (1):
      smb3: fix for slab out of bounds on mount to ksmbd

Steven Rostedt (6):
      selftests/tracing: Fix false failure of subsystem event test
      tracefs: Add d_delete to remove negative dentries
      powerpc/thp: tracing: Hide hugepage events under CONFIG_PPC_BOOK3S_64
      ktest.pl: Prevent recursion of default variable options
      ftrace: Also allocate and copy hash for reading of filter files
      tracing: Remove unneeded goto out logic

Su Hui (1):
      usb: xhci: print xhci->xhc_state when queue_command failed

Suchit Karunakaran (1):
      kconfig: lxdialog: replace strcpy() with strncpy() in inputbox.c

Suman Kumar Chakraborty (1):
      crypto: qat - use unmanaged allocation for dc_data

Sumit Gupta (1):
      soc/tegra: cbb: Clear ERR_FORCE register with ERR_STATUS

Sven Schnelle (2):
      s390/time: Use monotonic clock in get_cycles()
      s390/stp: Remove udelay from stp_sync_clock()

Takamitsu Iwai (1):
      net/sched: taprio: enforce minimum value for picos_per_byte

Takashi Iwai (6):
      ALSA: hda/ca0132: Fix missing error handling in ca0132_alt_select_out()
      ALSA: usb-audio: Validate UAC3 power domain descriptors, too
      ALSA: usb-audio: Validate UAC3 cluster segment descriptors
      ALSA: hda: Handle the jack polling always via a work
      ALSA: hda: Disable jack polling at shutdown
      ALSA: usb-audio: Use correct sub-type for UAC3 feature unit validation

Tamizh Chelvam Raja (1):
      wifi: ath12k: fix endianness handling while accessing wmi service bit

Tao Xue (1):
      usb: gadget : fix use-after-free in composite_dev_cleanup()

Tetsuo Handa (1):
      hfsplus: don't use BUG_ON() in hfsplus_create_attributes_file()

Theodore Ts'o (2):
      ext4: do not BUG when INLINE_DATA_FL lacks system.data xattr
      ext4: don't try to clear the orphan_present feature block device is r/o

Thierry Reding (1):
      firmware: tegra: Fix IVC dependency problems

Thomas Fourier (21):
      mwl8k: Add missing check after DMA map
      Fix dma_unmap_sg() nents value
      crypto: inside-secure - Fix `dma_unmap_sg()` nents value
      scsi: ibmvscsi_tgt: Fix dma_unmap_sg() nents value
      scsi: elx: efct: Fix dma_unmap_sg() nents value
      scsi: mvsas: Fix dma_unmap_sg() nents value
      scsi: isci: Fix dma_unmap_sg() nents value
      crypto: keembay - Fix dma_unmap_sg() nents value
      crypto: img-hash - Fix dma_unmap_sg() nents value
      dmaengine: mv_xor: Fix missing check after DMA map and missing unmap
      dmaengine: nbpfaxi: Add missing check after DMA map
      mtd: rawnand: atmel: Fix dma_mapping_error() address
      mtd: rawnand: rockchip: Add missing check after DMA map
      et131x: Add missing check after DMA map
      net: ag71xx: Add missing check after DMA map
      (powerpc/512) Fix possible `dma_unmap_single()` on uninitialized pointer
      wifi: rtlwifi: fix possible skb memory leak in `_rtl_pci_rx_interrupt()`.
      powerpc: floppy: Add missing checks after DMA map
      wifi: rtlwifi: fix possible skb memory leak in _rtl_pci_init_one_rxdesc()
      mtd: rawnand: fsmc: Add missing check after DMA map
      mtd: rawnand: renesas: Add missing check after DMA map

Thomas Gleixner (3):
      perf/core: Don't leak AUX buffer refcount on allocation failure
      perf/core: Exit early on perf_mmap() fail
      perf/core: Prevent VMA split of buffer mappings

Thomas Weißschuh (6):
      bpf/preload: Don't select USERMODE_DRIVER
      tools/nolibc: define time_t in terms of __kernel_old_time_t
      tools/build: Fix s390(x) cross-compilation with clang
      um: Re-evaluate thread flags repeatedly
      MIPS: Don't crash in stack_top() for tasks without ABI or vDSO
      kbuild: userprogs: use correct linker when mixing clang and GNU ld

Thorsten Blum (4):
      smb: server: Fix extension string in ksmbd_extract_shortname()
      ALSA: intel_hdmi: Fix off-by-one error in __hdmi_lpe_audio_probe()
      cdx: Fix off-by-one error in cdx_rpmsg_probe()
      usb: storage: realtek_cr: Use correct byte order for bcs->Residue

Tianxiang Peng (1):
      x86/cpu/hygon: Add missing resctrl_cpu_detect() in bsp_init helper

Tigran Mkrtchyan (1):
      pNFS/flexfiles: don't attempt pnfs on fatal DS errors

Tim Harvey (1):
      hwmon: (gsc-hwmon) fix fan pwm setpoint show functions

Timothy Pearson (5):
      PCI: pnv_php: Clean up allocated IRQs on unplug
      PCI: pnv_php: Work around switches with broken presence detection
      powerpc/eeh: Export eeh_unfreeze_pe()
      powerpc/eeh: Make EEH driver device hotplug safe
      PCI: pnv_php: Fix surprise plug detection and recovery

Timur Kristóf (6):
      drm/amd/display: Don't overwrite dce60_clk_mgr
      drm/amd/display: Fix fractional fb divider in set_pixel_clock_v3
      drm/amd/display: Fix DP audio DTO1 clock source on DCE 6.
      drm/amd/display: Find first CRTC and its line time in dce110_fill_display_configs
      drm/amd/display: Fill display clock and vblank time in dce110_fill_display_configs
      drm/amd/display: Don't overclock DCE 6 by 15%

Tiwei Bie (1):
      um: rtc: Avoid shadowing err in uml_rtc_start()

Tom Lendacky (1):
      x86/sev: Evict cache lines during SNP memory validation

Tomas Henzl (1):
      scsi: mpt3sas: Fix a fw_event memory leak

Tomasz Michalec (2):
      usb: typec: intel_pmc_mux: Defer probe if SCU IPC isn't present
      platform/chrome: cros_ec_typec: Defer probe on missing EC parent

Torsten Hilbrich (1):
      platform/x86: Fix initialization order for firmware_attributes_class

Trond Myklebust (3):
      NFS: Fix wakeup of __nfs_lookup_revalidate() in unblock_revalidate()
      NFS: Fix filehandle bounds checking in nfs_fh_to_dentry()
      NFS: Fix the setting of capabilities when automounting a new filesystem

Tvrtko Ursulin (1):
      drm/ttm: Respect the shrinker core free target

Tzung-Bi Shih (1):
      platform/chrome: cros_ec: Unregister notifier in cros_ec_unregister()

Ulf Hansson (1):
      mmc: rtsx_usb_sdmmc: Fix error-path in sd_set_power_mode()

Uros Bizjak (1):
      ucount: fix atomic_long_inc_below() argument type

Uwe Kleine-König (2):
      pwm: mediatek: Handle hardware enable and clock enable separately
      pwm: mediatek: Fix duty and period setting

ValdikSS (1):
      igc: fix disabling L1.2 PCI-E link substate on I226 on init

Vasiliy Kovalev (1):
      ALSA: hda/realtek: Fix headset mic on HONOR BRB-X

Vedang Nagar (2):
      media: venus: Fix OOB read due to missing payload bound check
      media: venus: Add a check for packet size after reading from shared memory

Viacheslav Dubeyko (5):
      hfs: fix general protection fault in hfs_find_init()
      hfs: fix slab-out-of-bounds in hfs_bnode_read()
      hfsplus: fix slab-out-of-bounds in hfsplus_bnode_read()
      hfsplus: fix slab-out-of-bounds read in hfsplus_uni2asc()
      hfs: fix not erasing deleted b-tree node issue

Victor Shih (3):
      mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency
      mmc: sdhci-pci-gli: Add a new function to simplify the code
      mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER

Vijendar Mukunda (1):
      soundwire: amd: serialize amd manager resume sequence during pm_prepare

Ville Syrjälä (1):
      drm/i915/dp: Fix 2.7 Gbps DP_LINK_BW value on g4x

Vincent Guittot (8):
      sched/topology: Add a new arch_scale_freq_ref() method
      cpufreq: Use the fixed and coherent frequency for scaling capacity
      cpufreq/schedutil: Use a fixed reference frequency
      energy_model: Use a fixed reference frequency
      cpufreq/cppc: Set the frequency used for computing the capacity
      arm64/amu: Use capacity_ref_freq() to set AMU ratio
      topology: Set capacity_freq_ref in all cases
      sched/fair: Fix frequency selection for non-invariant case

Viresh Kumar (1):
      i2c: virtio: Avoid hang by using interruptible completion wait

Vladimir Zapolskiy (1):
      media: qcom: camss: cleanup media device allocated resource on error path

Waiman Long (2):
      mm/kmemleak: avoid soft lockup in __kmemleak_do_cleanup()
      cgroup/cpuset: Use static_branch_enable_cpuslocked() on cpusets_insane_config_key

Wang Liang (2):
      net: drop UFO packets in udp_rcv_segment()
      net: bridge: fix soft lockup in br_multicast_query_expired()

Wang Zhaolong (2):
      smb: client: remove redundant lstrp update in negotiate protocol
      smb: client: fix netns refcount leak after net_passive changes

Wayne Lin (1):
      drm/amd/display: Avoid trying AUX transactions on disconnected ports

Wei Gao (1):
      ext2: Handle fiemap on empty files to prevent EINVAL

Weitao Wang (1):
      usb: xhci: Fix slot_id resource race conflict

Wen Chen (1):
      drm/amd/display: Fix 'failed to blank crtc!'

Will Deacon (4):
      vsock/virtio: Resize receive buffers so that each SKB fits in a 4K page
      vsock/virtio: Validate length in packet header before skb_put()
      vhost/vsock: Avoid allocating arbitrarily-sized SKBs
      KVM: arm64: Fix kernel BUG() due to bad backport of FPSIMD/SVE/SME fix

William Liu (3):
      net/sched: Restrict conditions for adding duplicating netems to qdisc tree
      net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit
      net/sched: Remove unnecessary WARNING condition for empty child qdisc in htb_activate

Willy Tarreau (1):
      tools/nolibc: fix spelling of FD_SETBITMASK in FD_* macros

Wolfram Sang (3):
      media: usb: hdpvr: disable zero-length read messages
      i3c: add missing include to internal header
      i3c: don't fail if GETHDRCAP is unsupported

Xiang Mei (1):
      net/sched: sch_qfq: Avoid triggering might_sleep in atomic context in qfq_delete_class

Xilin Wu (1):
      interconnect: qcom: sc7280: Add missing num_links to xm_pcie3_1 node

Xin Long (1):
      sctp: linearize cloned gso packets in sctp_rcv

Xinxin Wan (1):
      ASoC: codecs: rt5640: Retry DEVICE_ID verification

Xinyu Liu (1):
      usb: core: config: Prevent OOB read in SS endpoint companion parsing

Xiu Jianfeng (1):
      wifi: iwlwifi: Fix memory leak in iwl_mvm_init()

Xiumei Mu (1):
      selftests: rtnetlink.sh: remove esp4_offload after test

Xu Yang (2):
      net: usb: asix_devices: add phy_mask for ax88772 mdio bus
      usb: core: hcd: fix accessing unmapped memory in SINGLE_STEP_SET_FEATURE test

Xu Yilun (1):
      fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable()

Yajun Deng (1):
      i40e: Add rx_missed_errors for buffer exhaustion

Yang Xiwen (1):
      i2c: qup: jump out of the loop in case of timeout

Yangtao Li (3):
      hfsplus: make splice write available again
      hfs: make splice write available again
      hfsplus: remove mutex_lock check in hfsplus_free_extents

Yann E. MORIN (1):
      kconfig: lxdialog: fix 'space' to (de)select options

Ye Bin (1):
      fs/buffer: fix use-after-free when call bh_read() helper

Yonghong Song (1):
      selftests/bpf: Fix a user_ringbuf failure with arm64 64KB page size

Yonglong Liu (1):
      net: hns3: disable interrupt when ptp init failed

Yongzhen Zhang (1):
      fbdev: fix potential buffer overflow in do_register_framebuffer()

Youngjun Lee (1):
      media: uvcvideo: Fix 1-byte out-of-bounds read in uvc_parse_format()

Youssef Samir (1):
      bus: mhi: host: Detect events pointing to unexpected TREs

Yuan Chen (3):
      bpftool: Fix memory leak in dump_xx_nlmsg on realloc failure
      pinctrl: sunxi: Fix memory leak on krealloc failure
      bpftool: Fix JSON writer resource leak in version command

Yuezhang Mo (1):
      exfat: add cluster chain loop check for dir

Yuichiro Tsuji (1):
      net: usb: asix_devices: Fix PHY address mask in MDIO bus initialization

Yunhui Cui (1):
      serial: 8250: fix panic due to PSLVERR

Yury Norov [NVIDIA] (1):
      RDMA: hfi1: fix possible divide-by-zero in find_hw_thread_mask()

Zenm Chen (2):
      Bluetooth: btusb: Add USB ID 3625:010b for TP-LINK Archer TX10UB Nano
      USB: storage: Ignore driver CD mode for Realtek multi-mode Wi-Fi dongles

Zhang Lixu (2):
      iio: hid-sensor-prox: Fix incorrect OFFSET calculation
      iio: hid-sensor-prox: Restore lost scale assignments

Zhang Shurong (1):
      media: ov2659: Fix memory leaks in ov2659_probe()

Zhang Yi (1):
      ext4: fix hole length calculation overflow in non-extent inodes

Zheng Yu (1):
      jfs: fix metapage reference count leak in dbAllocCtl

Zhiqi Song (1):
      crypto: hisilicon/hpre - fix dma unmap sequence

Zhu Qiyu (1):
      ACPI: PRM: Reduce unnecessary printing to avoid user confusion

Zijun Hu (2):
      char: misc: Fix improper and inaccurate error code returned by misc_init()
      Bluetooth: hci_sock: Reset cookie to zero in hci_sock_free_cookie()

Ziyan Fu (1):
      watchdog: iTCO_wdt: Report error if timeout configuration fails

Ziyan Xu (1):
      ksmbd: fix refcount leak causing resource not released

Zong-Zhe Yang (1):
      wifi: rtw89: avoid NULL dereference when RX problematic packet on unsupported 6 GHz band

chenchangcheng (1):
      media: uvcvideo: Fix bandwidth issue for Alcor camera

fangzhong.zhou (1):
      i2c: Force DLL0945 touchpad i2c freq to 100khz

jackysliu (1):
      scsi: bfa: Double-free fix

tuhaowen (1):
      PM: sleep: console: Fix the black screen issue

wangzijie (1):
      proc: use the same treatment to check proc_lseek as ones for proc_read_iter et.al

xin.guo (1):
      tcp: fix tcp_ofo_queue() to avoid including too much DUP SACK range

zhangjianrong (2):
      net: thunderbolt: Enable end-to-end flow control also in transmit
      net: thunderbolt: Fix the parameter passing of tb_xdomain_enable_paths()/tb_xdomain_disable_paths()

Álvaro Fernández Rojas (5):
      net: dsa: b53: fix b53_imp_vlan_setup for BCM5325
      net: dsa: b53: prevent GMII_PORT_OVERRIDE_CTRL access on BCM5325
      net: dsa: b53: prevent DIS_LEARNING access on BCM5325
      net: dsa: b53: prevent SWITCH_CTRL access on BCM5325
      net: dsa: b53: fix IP_MULTICAST_CTRL on BCM5325

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

Change-Id: Idee2cebeae2d29caadd1269126029463cbb6644c
Signed-off-by: Kevin Berry <kpberry@google.com>
Reviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/110481
Main-Branch-Verified: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
Reviewed-by: Shuo Yang <gshuoy@google.com>
