tree b7d299405153ae9a755b6781e5d193157ad83fa8
parent 2596a4f5e06b085eee5a68a03959aeb818984b1f
parent d497f0738df9504721852225eb5b162d7c8d4a46
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1757496806 -0700
committer Kevin Berry <kpberry@google.com> 1757548985 -0700

merge-upstream/v6.12.46 from branch/tag: upstream/v6.12.46 into branch: main-R125-cos-6.12

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

Aaron Erhardt (1):
      ALSA: hda/realtek: Fix headset mic for TongFang X6[AF]R5xxY

Abin Joseph (1):
      net: xilinx: axienet: Add error handling for RX metadata pointer retrieval

Ada Couprie Diaz (1):
      kasan: fix GCC mem-intrinsic prefix with sw tags

Al Viro (1):
      fs/fhandle.c: fix a race in call of has_locked_children()

Alan Stern (1):
      HID: core: Harden s32ton() against conversion to 0 bits

Alex Deucher (2):
      drm/amdgpu: drop hw access in non-DC audio fini
      Revert "drm/amdgpu: Avoid extra evict-restore process."

Alok Tiwari (4):
      xirc2ps_cs: fix register access when enabling FullDuplex
      bnxt_en: fix incorrect page count in RX aggr ring log
      ixgbe: fix incorrect map used in eee linkmode
      mctp: return -ENOPROTOOPT for unknown getsockopt options

Antheas Kapenekakis (1):
      platform/x86: asus-wmi: Remove extra keys from ignore_key_wlan quirk

Anup Patel (1):
      ACPI: RISC-V: Fix FFH_CPPC_CSR error handling

Bjorn Andersson (1):
      soc: qcom: mdt_loader: Deal with zero e_shentsize

Chen Ni (1):
      pcmcia: omap: Add missing check for platform_get_resource

Christian Loehle (1):
      sched: Fix sched_numa_find_nth_cpu() if mask offline

Christoffer Sandberg (1):
      platform/x86/amd/pmc: Add TUXEDO IB Pro Gen10 AMD to spurious 8042 quirks list

Christoph Hellwig (1):
      block: add a queue_limits_commit_update_frozen helper

Christoph Paasch (1):
      net/tcp: Fix socket memory leak in TCP-AO failure handling for IPv6

Colin Ian King (1):
      drm/amd/amdgpu: Fix missing error return on kzalloc failure

Cryolitia PukNgae (1):
      ALSA: usb-audio: Add mute TLV for playback volumes on some devices

Dan Carpenter (4):
      wifi: cw1200: cap SSID length in cw1200_do_join()
      wifi: libertas: cap SSID len in lbs_associate()
      wifi: cfg80211: sme: cap SSID length in __cfg80211_connect_result()
      ipv4: Fix NULL vs error pointer check in inet_blackhole_dev_init()

Daniel Borkmann (4):
      bpf: Add cookie object to bpf maps
      bpf: Move bpf map owner out of common struct
      bpf: Move cgroup iterator helpers to bpf.h
      bpf: Fix oob access in cgroup local storage

Dave Airlie (1):
      nouveau: fix disabling the nonstall irq due to storm code

David Arcari (1):
      platform/x86/intel: power-domains: Use topology_logical_package_id() for package ID

Dmitry Antipov (1):
      wifi: cfg80211: fix use-after-free in cmp_bss()

Dmitry Torokhov (2):
      HID: simplify snto32()
      HID: stop exporting hid_snto32()

Duoming Zhou (1):
      wifi: brcmfmac: fix use-after-free when rescheduling brcmf_btcoex_info work

Edward Adam Davis (1):
      ocfs2: prevent release journal inode after journal shutdown

Emil Tantilov (1):
      idpf: set mac type when adding and removing MAC filters

Eric Dumazet (2):
      net_sched: gen_estimator: fix est_timer() vs CONFIG_PREEMPT_RT=y
      ax25: properly unshare skbs in ax25_kiss_rcv()

Fabian Bläse (1):
      icmp: fix icmp_ndo_send address translation for reply direction

Fabio Porcedda (3):
      net: usb: qmi_wwan: fix Telit Cinterion FN990A name
      net: usb: qmi_wwan: fix Telit Cinterion FE990A name
      net: usb: qmi_wwan: add Telit Cinterion FN990A w/audio composition

Felix Fietkau (4):
      wifi: mt76: prevent non-offchannel mgmt tx during scan/roc
      wifi: mt76: free pending offchannel tx frames on wcid cleanup
      wifi: mt76: fix linked list corruption
      net: ethernet: mtk_eth_soc: fix tx vlan tag for llc packets

Filipe Manana (3):
      btrfs: fix race between logging inode and checking if it was logged before
      btrfs: fix race between setting last_dir_index_offset and inode logging
      btrfs: avoid load/store tearing races when checking if an inode was logged

Florian Westphal (1):
      netfilter: nft_flowtable.sh: re-run with random mtu sizes

Greg Kroah-Hartman (1):
      Linux 6.12.46

Gu Bowen (1):
      mm: fix possible deadlock in kmemleak

Harry Yoo (2):
      x86/mm/64: define ARCH_PAGE_TABLE_SYNC_MASK and arch_sync_kernel_mappings()
      mm: move page table sync declarations to linux/pgtable.h

Harshit Mogalapalli (1):
      wifi: mt76: mt7925: fix locking in mt7925_change_vif_links()

Horatiu Vultur (1):
      phy: mscc: Stop taking ts_lock for tx_queue and use its own lock

Huacai Chen (1):
      LoongArch: Save LBT before FPU in setup_sigcontext()

Hyesoo Yu (2):
      mm: slub: Print the broken data before restoring them
      mm: slub: call WARN() when detecting a slab corruption

Ian Rogers (3):
      perf bpf-event: Fix use-after-free in synthesis
      perf bpf-utils: Constify bpil_array_desc
      perf bpf-utils: Harden get_bpf_prog_info_linear

Ido Schimmel (6):
      vxlan: Fix NPD when refreshing an FDB entry with a nexthop object
      vxlan: Refresh FDB 'updated' time upon 'NTF_USE'
      vxlan: Avoid unnecessary updates to FDB 'used' time
      vxlan: Add RCU read-side critical sections in the Tx path
      vxlan: Rename FDB Tx lookup function
      vxlan: Fix NPD in {arp,neigh}_reduce() when using nexthop objects

Ivan Lipski (1):
      drm/amd/display: Clear the CUR_ENABLE register on DCN314 w/out DPP PG

Ivan Pravdin (1):
      Bluetooth: vhci: Prevent use-after-free by removing debugfs files early

Jacob Keller (2):
      ice: fix NULL access of tx->in_use in ice_ll_ts_intr
      i40e: remove read access to debugfs files

Jakub Kicinski (1):
      selftests: drv-net: csum: fix interface name for remote host

Jens Axboe (1):
      io_uring/msg_ring: ensure io_kiocb freeing is deferred for RCU

Jeremy Kerr (1):
      net: mctp: mctp_fraq_queue should take ownership of passed skb

Jiufei Xue (1):
      fs: writeback: fix use-after-free in __mark_inode_dirty()

Johannes Berg (1):
      wifi: iwlwifi: uefi: check DSM item validity

Johannes Thumshirn (1):
      btrfs: zoned: skip ZONE FINISH of conventional zones

John Evans (1):
      scsi: lpfc: Fix buffer free/clear order in deferred receive path

Jonas Gorski (1):
      net: dsa: b53: do not enable EEE on bcm63xx

Karol Wachowski (1):
      accel/ivpu: Prevent recovery work from being queued during device removal

Kuniyuki Iwashima (2):
      Bluetooth: Fix use-after-free in l2cap_sock_cleanup_listen()
      selftest: net: Fix weird setsockopt() in bind_bhash.c.

Lad Prabhakar (1):
      net: pcs: rzn1-miic: Correct MODCTRL register offset

Larisa Grigore (4):
      spi: spi-fsl-lpspi: Fix transmissions when using CONT
      spi: spi-fsl-lpspi: Set correct chip-select polarity bit
      spi: spi-fsl-lpspi: Reset FIFO and disable module on transfer abort
      spi: spi-fsl-lpspi: Clear status register after disabling the module

Li Nan (1):
      md: prevent incorrect update of resync/recovery offset

Li Qiong (1):
      mm/slub: avoid accessing metadata when pointer is invalid in object_err()

Liu Jian (1):
      net/smc: fix one NULL pointer dereference in smc_ib_is_sg_need_sync()

Lubomir Rintel (1):
      cdc_ncm: Flag Intel OEM version of Fibocom L850-GL as WWAN

Ma Ke (1):
      pcmcia: Fix a NULL pointer dereference in __iodyn_find_io_region()

Mahanta Jambigi (1):
      net/smc: Remove validation of reserved bits in CLC Decline message

Makar Semyonov (1):
      cifs: prevent NULL pointer dereference in UTF16 conversion

Marek Vasut (2):
      arm64: dts: imx8mp: Fix missing microSD slot vqmmc on DH electronics i.MX8M Plus DHCOM
      arm64: dts: imx8mp: Fix missing microSD slot vqmmc on Data Modul i.MX8M Plus eDM SBC

Markus Niebel (1):
      arm64: dts: imx8mp-tqma8mpql: fix LDO5 power off

Menglong Dong (7):
      net: skb: add pskb_network_may_pull_reason() helper
      net: tunnel: add pskb_inet_may_pull_reason() helper
      net: vxlan: add skb drop reasons to vxlan_rcv()
      net: vxlan: make vxlan_snoop() return drop reasons
      net: vxlan: make vxlan_set_mac() return drop reasons
      net: vxlan: use kfree_skb_reason() in vxlan_xmit()
      net: vxlan: use kfree_skb_reason() in vxlan_mdb_xmit()

Miaoqian Lin (2):
      mISDN: Fix memory leak in dsp_hwec_enable()
      ACPI/IORT: Fix memory leak in iort_rmr_alloc_sids()

Michael Walle (1):
      drm/bridge: ti-sn65dsi86: fix REFCLK setting

Miguel Ojeda (1):
      rust: support Rust >= 1.91.0 target spec

Ming Lei (1):
      scsi: sr: Reinstate rotational media flag

Ming Yen Hsieh (2):
      wifi: mt76: mt7925u: use connac3 tx aggr check in tx complete
      wifi: mt76: mt7925: fix the wrong bss cleanup for SAP

Nathan Chancellor (2):
      wifi: mt76: mt7996: Initialize hdr before passing to skb_put_data()
      riscv: Only allow LTO with CMODEL_MEDANY

Nícolas F. R. A. Prado (1):
      thermal/drivers/mediatek/lvts: Disable low offset IRQ for minimum threshold

Ojaswin Mujoo (2):
      ext4: define ext4_journal_destroy wrapper
      ext4: avoid journaling sb update on error if journal is destroying

Paul Alvin (1):
      mmc: sdhci-of-arasan: Support for emmc hardware reset

Pei Xiao (2):
      tee: fix NULL pointer dereference in tee_shm_put
      tee: fix memory leak in tee_dyn_shm_alloc_helper

Peter Robinson (1):
      arm64: dts: rockchip: Add vcc-supply to SPI flash on rk3399-pinebook-pro

Phil Sutter (1):
      netfilter: conntrack: helper: Replace -EEXIST by -EBUSY

Qianfeng Rong (1):
      wifi: mwifiex: Initialize the chan_stats array to zero

Qingfang Deng (1):
      ppp: fix memory leak in pad_compress_skb

Qiu-ji Chen (2):
      dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status()
      dmaengine: mediatek: Fix a flag reuse error in mtk_cqdma_tx_status()

Radim Krčmář (4):
      riscv: use lw when reading int cpu in new_vmalloc_check
      riscv: use lw when reading int cpu in asm_per_cpu
      riscv, bpf: use lw when reading int cpu in BPF_MOV64_PERCPU_REG
      riscv, bpf: use lw when reading int cpu in bpf_get_smp_processor_id

Radu Rendec (1):
      net: vxlan: rename SKB_DROP_REASON_VXLAN_NO_REMOTE

Rameshkumar Sundaram (1):
      wifi: ath11k: fix group data packet drops during rekey

Rosen Penev (2):
      net: thunder_bgx: add a missing of_node_put
      net: thunder_bgx: decrement cleanup index before use

Russell King (Oracle) (3):
      net: dsa: add hook to determine whether EEE is supported
      net: dsa: provide implementation of .support_eee()
      net: dsa: b53/bcm_sf2: implement .support_eee() method

Sabrina Dubroca (1):
      macsec: read MACSEC_SA_ATTR_PN with nla_get_uint

Sai Krishna Potthuri (1):
      mmc: sdhci-of-arasan: Ensure CD logic stabilization before power-up

Sasha Levin (1):
      mm/userfaultfd: fix kmap_local LIFO ordering for CONFIG_HIGHPTE

Sean Anderson (1):
      net: macb: Fix tx_ptr_lock locking

Shinji Nomoto (1):
      cpupower: Fix a bug where the -t option of the set subcommand was not working.

Stanislav Fort (1):
      batman-adv: fix OOB read/write in network-coding decode

Stefan Wahren (3):
      net: ethernet: oa_tc6: Handle failure of spi_setup
      microchip: lan865x: Fix module autoloading
      microchip: lan865x: Fix LAN8651 autoloading

Su Yue (1):
      md/md-bitmap: fix wrong bitmap_limit for clustermd when write sb

Sumanth Korikkar (1):
      mm: fix accounting of memmap pages

Sungbae Yoo (1):
      tee: optee: ffa: fix a typo of "optee_ffa_api_is_compatible"

Takashi Iwai (1):
      ALSA: hda/hdmi: Add pin fix for another HP EliteDesk 800 G4 model

Timur Kristóf (1):
      drm/amd/display: Don't warn when missing DCE encoder caps

Vadim Pasternak (1):
      hwmon: mlxreg-fan: Prevent fans from getting stuck at 0 RPM

Vitaly Lifshits (1):
      e1000e: fix heap overflow in e1000_set_eeprom

Vlastimil Babka (1):
      mm, slab: cleanup slab_bug() parameters

Wang Liang (3):
      netfilter: br_netfilter: do not check confirmed bit in br_nf_local_in() after confirm
      net: atm: fix memory leak in atm_register_sysfs when device_register fail
      net: fix NULL pointer dereference in l3mdev_l3_rcv

Wen Gong (2):
      wifi: ath11k: update channel list in reg notifier instead reg worker
      wifi: ath11k: update channel list in worker when wait flag is set

Wentao Guan (1):
      LoongArch: vDSO: Remove -nostdlib complier flag

Wentao Liang (1):
      pcmcia: Add error handling for add_interval() in do_validate_mem()

Xi Ruoyao (1):
      LoongArch: vDSO: Remove --hash-style=sysv

Yang Li (1):
      Bluetooth: hci_sync: Avoid adding default advertising on startup

Yeoreum Yun (1):
      kunit: kasan_test: disable fortify string checker on kasan_strings() test

Yin Tirui (1):
      of_numa: fix uninitialized memory nodes causing kernel panic

Yu Kuai (3):
      md/raid1,raid10: don't ignore IO flags
      md/raid1,raid10: don't handle IO error for REQ_RAHEAD and REQ_NOWAIT
      md/raid1: fix data lost for writemostly rdev

Zhen Ni (1):
      i40e: Fix potential invalid access when MAC list is empty

Zheng Qixing (1):
      md/raid1,raid10: strip REQ_NOWAIT from member bios

panfan (1):
      arm64: ftrace: fix unreachable PLT for ftrace_caller in init_module with CONFIG_DYNAMIC_FTRACE

wangzijie (1):
      proc: fix missing pde_set_flags() for net proc files

yangshiguang (1):
      mm: slub: avoid wake up kswapd in set_track_prepare

zhang jiao (1):
      tools: gpio: remove the include directory on make clean

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

Change-Id: Id0a0079a124fe2744d5732e27b56a21d47720be0
Signed-off-by: COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com>
Reviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/111106
Tested-by: Kevin Berry <kpberry@google.com>
Reviewed-by: Miri Amarilio <mirilio@google.com>
Main-Branch-Verified: Cusky Presubmit Bot <presubmit@cos-infra-prod.iam.gserviceaccount.com>
Reviewed-by: Kevin Berry <kpberry@google.com>
