tree be1cf1ce9bed11c444772b1635c40f96d7862e32
parent 495f4ead966221747156f3e600a431004446499a
parent 883d1a9562083922c6d293e9adad8cca4626adf3
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1706261975 -0800
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1706261976 -0800

merge-upstream/v6.1.75 from branch/tag: upstream/v6.1.75 into branch: main-R109-cos-6.1

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

Abhinav Singh (1):
      drm/nouveau/fence:: fix warning directly dereferencing a rcu pointer

Adam Ford (1):
      arm64: dts: imx8mm: Reduce GPU to nominal speed

Ahmad Fatoum (1):
      ARM: dts: stm32: don't mix SCMI and non-SCMI board compatibles

Alex Deucher (1):
      drm/amdgpu/debugfs: fix error code when smc register accessors are NULL

Alexandra Diupina (1):
      cpufreq: scmi: process the result of devm_of_clk_add_hw_provider()

Alexandre Ghiti (5):
      riscv: Check if the code to patch lies in the exit section
      riscv: Fix module_alloc() that did not reset the linear mapping permissions
      riscv: Fix set_memory_XX() and set_direct_map_XX() by splitting huge linear mappings
      riscv: Fix set_direct_map_default_noflush() to reset _PAGE_EXEC
      riscv: Fix wrong usage of lm_alias() when splitting a huge linear mapping

Amir Goldstein (1):
      scsi: target: core: add missing file_{start,end}_write()

Amit Cohen (2):
      mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure
      selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes

Amit Kumar Mahapatra (1):
      spi: spi-zynqmp-gqspi: fix driver kconfig dependencies

Andrei Matei (1):
      bpf: Fix verification of indirect var-off stack access

Andrii Nakryiko (2):
      bpf: enforce precision of R0 on callback return
      bpf: fix check for attempt to corrupt spilled pointer

Andy Shevchenko (2):
      ACPI: LPSS: Fix the fractional clock divider flags
      mfd: intel-lpss: Fix the fractional clock divider flags

AngeloGioacchino Del Regno (3):
      drm/panfrost: Really power off GPU cores in panfrost_gpu_power_off()
      drm/panfrost: Ignore core_mask for poweroff and disable PWRTRANS irq
      ASoC: mediatek: sof-common: Add NULL check for normal_link string

Anton Protopopov (1):
      bpf: add percpu stats for bpf_map elements insertions/deletions

Ard Biesheuvel (1):
      efivarfs: Free s_fs_info on unmount

Arnaldo Carvalho de Melo (1):
      libapi: Add missing linux/types.h header to get the __u64 type on io.h

Arnd Bergmann (6):
      EDAC/thunderx: Fix possible out-of-bounds string access
      csky: fix arch_jump_label_transform_static override
      wifi: libertas: stop selecting wext
      ARM: davinci: always select CONFIG_CPU_ARM926T
      nvmet: re-fix tracing strncpy() warning
      nvme: trace: avoid memcpy overflow warning

Arseniy Krasnov (1):
      virtio/vsock: fix logic which reduces credit update messages

Artem Chernyshev (1):
      scsi: fnic: Return error if vmalloc() failed

Asmaa Mnebhi (2):
      mlxbf_gige: Fix intermittent no ip issue
      mlxbf_gige: Enable the GigE port in mlxbf_gige_open

Atul Dhudase (1):
      soc: qcom: llcc: Fix dis_cap_alloc and retain_on_pc configuration

Bart Van Assche (2):
      scsi: ufs: core: Simplify power management during async scan
      md/raid1: Use blk_opf_t for read and write operations

Benjamin Coddington (1):
      blocklayoutdriver: Fix reference leak of pnfs_device_node

Bin Li (1):
      ALSA: hda/realtek: Enable headset mic on Lenovo M70 Gen5

Brent Lu (1):
      ASoC: Intel: glk_rt5682_max98357a: fix board id mismatch

Carlos Llamas (3):
      binder: fix async space check for 0-sized buffers
      binder: fix unused alloc->free_async_space
      binder: fix race between mmput() and do_exit()

Chandrakanth patil (2):
      scsi: mpi3mr: Refresh sdev queue depth after controller reset
      scsi: mpi3mr: Block PEL Enable Command on Controller Reset and Unrecoverable State

Chao Yu (4):
      f2fs: fix to avoid dirent corruption
      f2fs: fix to wait on block writeback for post_read case
      f2fs: fix to check compress file in f2fs_move_file_range()
      f2fs: fix to update iostat correctly in f2fs_filemap_fault()

Chen Ni (2):
      KEYS: encrypted: Add check for strsep
      crypto: sa2ul - Return crypto_aead_setkey to transfer the error

Chengchang Tang (1):
      RDMA/hns: Fix memory leak in free_mr_init()

Chenghai Huang (1):
      crypto: hisilicon/zip - add zip comp high perf mode configuration

Chengming Zhou (1):
      crypto: scomp - fix req->dst buffer overflow

Chih-Kang Chang (1):
      wifi: rtw88: fix RX filter in FIF_ALLMULTI flag

Chris Morgan (2):
      drm/panel-elida-kd35t133: hold panel in reset for unprepare
      drm/panel: st7701: Fix AVCL calculation

Christian A. Ehrhardt (1):
      of: Fix double free in of_parse_phandle_with_args_map

Christian Brauner (1):
      fs: indicate request originates from old mount API

Christian Marangi (2):
      arm64: dts: qcom: ipq6018: improve pcie phy pcs reg table
      wifi: mt76: fix broken precal loading from MTD for mt7915

Christoph Hellwig (2):
      null_blk: don't cap max_hw_sectors to BLK_DEF_MAX_SECTORS
      loop: fix the the direct I/O support check when used on top of block devices

Christoph Niedermaier (2):
      serial: imx: Ensure that imx_uart_rs485_config() is called with enabled clock
      serial: imx: Correct clock error message in function probe()

Christophe JAILLET (6):
      firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create()
      media: dvb-frontends: m88ds3103: Fix a memory leak in an error handling path of m88ds3103_probe()
      MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup()
      MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
      vdpa: Fix an error handling path in eni_vdpa_probe()
      kdb: Fix a potential buffer overflow in kdb_local()

Chukun Pan (1):
      arm64: dts: qcom: ipq6018: fix clock rates for GCC_USB0_MOCK_UTMI_CLK

Chunfeng Yun (1):
      usb: xhci-mtk: fix a short packet issue of gen1 isoc-in transfer

Claudiu Beznea (3):
      clk: renesas: rzg2l-cpg: Reuse code in rzg2l_cpg_reset()
      clk: renesas: rzg2l: Check reset monitor registers
      net: phy: micrel: populate .soft_reset for KSZ9131

Colin Ian King (1):
      x86/lib: Fix overflow when counting digits

Curtis Klein (1):
      watchdog: set cdev owner before adding

Dafna Hirschfeld (1):
      drm/amdkfd: fixes for HMM mem allocation

Dan Carpenter (2):
      wifi: plfxlc: check for allocation failure in plfxlc_usb_wreq_async()
      media: dvbdev: drop refcount on error path in dvb_device_open()

Dang Huynh (1):
      leds: aw2013: Select missing dependency REGMAP_I2C

Dario Binacchi (2):
      drm/bridge: Fix typo in post_disable() description
      fbdev: imxfb: fix left margin setting

David E. Box (1):
      platform/x86/intel/vsec: Fix xa_alloc memory leak

David Howells (1):
      keys, dns: Fix size check of V1 server-list header

David Lin (1):
      wifi: mwifiex: configure BSSID consistently when starting AP

Deepak R Varma (1):
      drm/amdkfd: Use resource_size() helper function

Dinghao Liu (1):
      crypto: ccp - fix memleak in ccp_init_dm_workarea

Dmitry Baryshkov (4):
      ARM: dts: qcom: apq8064: correct XOADC register address
      arm64: dts: qcom: sm8150-hdk: fix SS USB regulators
      drm/msm/mdp4: flush vblank event on disable
      drm/drv: propagate errors from drm_modeset_register_all()

Dmitry Rokosov (1):
      firmware: meson_sm: populate platform devices from sm device tree data

Douglas Anderson (7):
      arm64: dts: qcom: sc7180: Make watchdog bark interrupt edge triggered
      arm64: dts: qcom: sc7280: Make watchdog bark interrupt edge triggered
      arm64: dts: qcom: sdm845: Make watchdog bark interrupt edge triggered
      arm64: dts: qcom: sm8150: Make watchdog bark interrupt edge triggered
      arm64: dts: qcom: sm8250: Make watchdog bark interrupt edge triggered
      arm64: dts: qcom: sc8280xp: Make watchdog bark interrupt edge triggered
      arm64: dts: qcom: sm6350: Make watchdog bark interrupt edge triggered

Eric Dumazet (9):
      sctp: support MSG_ERRQUEUE flag in recvmsg()
      sctp: fix busy polling
      ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim()
      mptcp: mptcp_parse_option() fix for MPTCPOPT_MP_JOIN
      mptcp: strict validation before using mp_opt->hmac
      mptcp: use OPTION_MPTCP_MPJ_SYNACK in subflow_finish_connect()
      mptcp: use OPTION_MPTCP_MPJ_SYN in subflow_check_req()
      mptcp: refine opt_mp_capable determination
      udp: annotate data-races around up->pending

Fedor Pchelkin (2):
      apparmor: avoid crash when parsed profile name is empty
      ipvs: avoid stat macros calls from preemptible context

Florian Lehner (1):
      bpf, lpm: Fix check prefixlen before walking trie

Florian Westphal (1):
      netfilter: nf_tables: mark newset as dead on transaction abort

Francesco Dolcini (1):
      Bluetooth: btmtkuart: fix recv_buf() return value

Frank Li (3):
      usb: cdns3: fix uvc failure work since sg support enabled
      usb: cdns3: fix iso transfer error when mult is not zero
      usb: cdns3: Fix uvc fail when DMA cross 4k boundery since sg enabled

Frederik Haxel (1):
      riscv: Fixed wrong register in XIP_FIXUP_FLASH_OFFSET macro

Gao Xiang (1):
      erofs: fix memory leak on short-lived bounced pages

Gavrilov Ilia (1):
      calipso: fix memory leak in netlbl_calipso_add_pass()

Geert Uytterhoeven (2):
      arm64: dts: renesas: white-hawk-cpu: Fix missing serial console pin control
      of: unittest: Fix of_count_phandle_with_args() expected value message

Geoffrey D. Bennett (5):
      ALSA: scarlett2: Add missing error check to scarlett2_config_save()
      ALSA: scarlett2: Add missing error check to scarlett2_usb_set_config()
      ALSA: scarlett2: Allow passing any output to line_out_remap()
      ALSA: scarlett2: Add missing error checks to *_ctl_get()
      ALSA: scarlett2: Add clamp() in scarlett2_mixer_ctl_put()

Gonglei (Arei) (1):
      crypto: virtio - Handle dataq logic with tasklet

Greg Kroah-Hartman (1):
      Linux 6.1.75

Gregory Price (1):
      base/node.c: initialize the accessor list before registering

Gui-Dong Han (2):
      usb: mon: Fix atomicity violation in mon_bin_vma_fault
      Bluetooth: Fix atomicity violation in {min,max}_key_size_set

Hangbin Liu (2):
      selftests/net: specify the interface when do arping
      selftests/net: fix grep checking for fib_nexthop_multiprefix

Hans de Goede (2):
      ASoC: rt5645: Drop double EF20 entry from dmi_platform_data[]
      Input: atkbd - use ab83 as id when skipping the getid command

Hao Sun (1):
      bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS

Heikki Krogerus (1):
      Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs"

Heiko Carstens (1):
      tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug

Hengqi Chen (1):
      LoongArch: BPF: Prevent out-of-bounds memory access

Herbert Xu (1):
      crypto: af_alg - Disallow multiple in-flight AIO requests

Hou Tao (2):
      bpf: Add map and need_defer parameters to .map_fd_put_ptr()
      bpf: Defer the free of inner map when necessary

Hsiao Chien Sung (2):
      drm/mediatek: Return error if MDP RDMA failed to enable the clock
      drm/mediatek: Fix underrun in VDO1 when switches off the layer

Huang Ying (1):
      cxl/port: Fix decoder initialization when nr_targets > interleave_ways

Hugo Villeneuve (2):
      serial: sc16is7xx: add check for unsupported SPI modes during probe
      serial: sc16is7xx: set safe default SPI clock frequency

Ian Rogers (1):
      perf env: Avoid recursively taking env->bpf_progs.lock

Ilias Apalodimas (1):
      efivarfs: force RO when remounting if SetVariable is not supported

Ilpo Järvinen (2):
      wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code
      wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors

Isaac J. Manjarres (1):
      iommu/dma: Trace bounce buffer usage when mapping buffers

Jan Beulich (1):
      xen-netback: don't produce zero-size SKB frags

Jan Palus (1):
      power: supply: cw2015: correct time_to_empty units in sysfs

Jason Gerecke (1):
      HID: wacom: Correct behavior when processing some confidence == false touches

Jay Buddhabhatti (2):
      drivers: clk: zynqmp: calculate closest mux rate
      drivers: clk: zynqmp: update divider round rate logic

Jens Axboe (2):
      io_uring/rw: ensure io->bytes_done is always initialized
      block: ensure we hold a queue reference when using queue limits

Jeroen van Ingen Schenau (1):
      selftests/bpf: Fix erroneous bitmask operation

Jerry Hoemann (1):
      watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO

Jessica Zhang (2):
      drm/msm/dpu: Set input_sel bit for INTF
      drm/msm/dpu: Drop enable and frame_count parameters from dpu_hw_setup_misr()

Jianjun Wang (1):
      PCI: mediatek-gen3: Fix translation window size calculation

Jim Harris (1):
      cxl/region: fix x9 interleave typo

Jiri Olsa (1):
      bpf: Fix re-attachment branch in bpf_tracing_prog_attach

Jiri Slaby (SUSE) (4):
      tty: change tty_write_lock()'s ndelay parameter to bool
      tty: early return from send_break() on TTY_DRIVER_HARDWARE_BREAK
      tty: don't check for signal_pending() in send_break()
      tty: use 'if' in send_break() instead of 'goto'

Jo Van Bulck (3):
      selftests/sgx: Fix uninitialized pointer dereference in error path
      selftests/sgx: Fix uninitialized pointer dereferences in encl_get_entry
      selftests/sgx: Include memory clobber for inline asm in test enclave

Joakim Zhang (1):
      dma-mapping: clear dev->dma_mem to NULL after freeing it

Johan Hovold (2):
      arm64: dts: qcom: sc7280: fix usb_2 wakeup interrupt types
      arm64: dts: hisilicon: hikey970-pmic: fix regulator cells properties

Johannes Berg (2):
      wifi: iwlwifi: mvm: set siso/mimo chains to 1 in FW SMPS request
      wifi: iwlwifi: mvm: send TX path flush in rfkill

John Fastabend (1):
      bpf: sockmap, fix proto update hook to avoid dup calls

Jordan Rome (2):
      bpf: Add crosstask check to __bpf_get_stack
      selftests/bpf: Add assert for user stacks in test_task_stack

Junxian Huang (1):
      RDMA/hns: Fix inappropriate err code for unsupported operations

Keith Busch (1):
      block: make BLK_DEF_MAX_SECTORS unsigned

Kirill A. Shutemov (1):
      x86/kvm: Do not try to disable kvmclock if it was not enabled

Konrad Dybcio (7):
      arm64: dts: qcom: sc7280: Fix up GPU SIDs
      arm64: dts: qcom: sc7280: Mark Adreno SMMU as DMA coherent
      arm64: dts: qcom: sc7280: Mark SDHCI hosts as cache-coherent
      arm64: dts: qcom: ipq6018: Use lowercase hex
      arm64: dts: qcom: ipq6018: Pad addresses to 8 hex digits
      arm64: dts: qcom: ipq6018: Fix up indentation
      drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks

Krzysztof Kozlowski (3):
      ARM: dts: qcom: sdx65: correct SPMI node name
      arm64: dts: qcom: qrb5165-rb5: correct LED panic indicator
      arm64: dts: qcom: sdm845-db845c: correct LED panic indicator

Kunwu Chan (6):
      powerpc/powernv: Add a null pointer check to scom_debug_init_one()
      powerpc/powernv: Add a null pointer check in opal_event_init()
      powerpc/powernv: Add a null pointer check in opal_powercap_init()
      powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
      mfd: syscon: Fix null pointer dereference in of_syscon_register()
      net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe

Leon Romanovsky (1):
      RDMA/usnic: Silence uninitialized symbol smatch warnings

Leone Fernando (1):
      ipmr: support IP_PKTINFO on cache report IGMP msg

Li Nan (3):
      block: Set memalloc_noio to false on device_add_disk() error path
      block: add check of 'minors' and 'first_minor' in device_add_disk()
      ksmbd: validate the zero field of packet header

Lin Ma (1):
      net: qualcomm: rmnet: fix global oob in rmnet_policy

Lino Sanfilippo (5):
      serial: core: fix sanitizing check for RTS settings
      serial: core: make sure RS485 cannot be enabled when it is not supported
      serial: core, imx: do not set RS485 enabled if it is not supported
      serial: 8250_exar: Set missing rs485_supported flag
      serial: omap: do not override settings for RS485 support

Linus Walleij (2):
      ASoC: cs35l33: Fix GPIO name and drop legacy include
      ASoC: cs35l34: Fix GPIO name and drop legacy include

Luca Weiss (2):
      wifi: ath11k: Defer on rproc_get failure
      arm64: dts: qcom: sc7280: Mark some nodes as 'reserved'

Ludvig Pärsson (1):
      ethtool: netlink: Add missing ethnl_ops_begin/complete

Luiz Augusto von Dentz (1):
      Bluetooth: Fix bogus check for re-auth no supported with non-ssp

Marc Zyngier (1):
      KVM: arm64: vgic-v4: Restore pending state on host userspace write

Marcelo Schmitt (1):
      iio: adc: ad7091r: Pass iio_dev to event handler

Marek Szyprowski (2):
      i2c: s3c24xx: fix read transfers in polling mode
      i2c: s3c24xx: fix transferring more than one message in polling mode

Mario Limonciello (1):
      drm/amd: Enable PCIe PME from D3

Masahiro Yamada (2):
      powerpc: remove checks for binutils older than 2.25
      powerpc: add crtsavres.o to always-y instead of extra-y

Matthew Wilcox (Oracle) (2):
      block: Fix iterating over an empty bio with bio_for_each_folio_all
      block: Remove special-casing of compound pages

Maurizio Lombardi (3):
      nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
      nvmet-tcp: fix a crash in nvmet_req_complete()
      nvmet-tcp: Fix the H2C expected PDU len calculation

Mehdi Djait (1):
      media: dt-bindings: media: rkisp1: Fix the port description for the parallel interface

Michael Ellerman (2):
      selftests/powerpc: Fix error handling in FPU/VMX preemption tests
      powerpc/64s: Increase default stack size to 32KB

Michal Simek (1):
      dt-bindings: gpio: xilinx: Fix node address in gpio

Mickaël Salaün (1):
      selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket

Mimi Zohar (1):
      Revert "KEYS: encrypted: Add check for strsep"

Min Li (1):
      block: add check that partition length needs to be aligned with block size

Ming Yen Hsieh (1):
      wifi: mt76: mt7921: fix country count limitation for CLC

Mirsad Todorovac (2):
      kselftest/alsa - mixer-test: fix the number of parameters to ksft_exit_fail_msg()
      kselftest/alsa - mixer-test: Fix the print format specifier warning

Moudy Ho (2):
      dt-bindings: media: mediatek: mdp3: correct RDMA and WROT node with generic names
      arm64: dts: mediatek: mt8183: correct MDP3 DMA-related nodes

Nam Cao (2):
      fbdev: flush deferred work in fb_deferred_io_fsync()
      fbdev: flush deferred IO before closing

Namhyung Kim (1):
      perf genelf: Set ELF program header addresses properly

Namjae Jeon (3):
      ksmbd: validate mech token in session setup
      ksmbd: fix UAF issue in ksmbd_tcp_new_connection()
      ksmbd: only v2 leases handle the directory

Nathan Lynch (1):
      powerpc/pseries/memhp: Fix access beyond end of drmem array

Nia Espera (1):
      arm64: dts: qcom: sm8350: Fix DMA0 address

Nicolas Dichtel (1):
      Revert "net: rtnetlink: Enslave device before bringing it up"

Nikita Kiryushin (2):
      ACPI: video: check for error while searching for backlight device parent
      ACPI: LPIT: Avoid u32 multiplication overflow

Nikita Yushchenko (1):
      net: ravb: Fix dma_addr_t truncation in error case

Nikita Zhandarovich (5):
      crypto: safexcel - Add error handling for dma_map_sg() calls
      drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg()
      drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check()
      drm/radeon: check return value of radeon_ring_lock()
      ipv6: mcast: fix data-race in ipv6_mc_down / mld_ifc_work

Niklas Cassel (1):
      PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support

Niklas Schnelle (1):
      s390/pci: fix max size calculation in zpci_memcpy_toio()

Nitin Yadav (1):
      arm64: dts: ti: k3-am62a-main: Fix GPIO pin count in DT nodes

Nuno Sa (3):
      iio: adc: ad9467: fix reset gpio handling
      iio: adc: ad9467: don't ignore error codes
      iio: adc: ad9467: fix scale setting

Nícolas F. R. A. Prado (2):
      drm/mediatek: dp: Add phy_mtk_dp module as pre-dependency
      spmi: mtk-pmif: Serialize PMIF status check and command submission

Olga Kornievskaia (1):
      SUNRPC: fix _xprt_switch_find_current_entry logic

Oliver Neukum (1):
      usb: cdc-acm: return correct error code on unsupported break

Oliver Upton (1):
      KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache

Osama Muhammad (1):
      gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump

Ovidiu Panait (12):
      crypto: sahara - remove FLAGS_NEW_KEY logic
      crypto: sahara - fix cbc selftest failure
      crypto: sahara - fix ahash selftest failure
      crypto: sahara - fix processing requests with cryptlen < sg->length
      crypto: sahara - fix error handling in sahara_hw_descriptor_create()
      crypto: sahara - avoid skcipher fallback code duplication
      crypto: sahara - handle zero-length aes requests
      crypto: sahara - fix ahash reqsize
      crypto: sahara - fix wait_for_completion_timeout() error handling
      crypto: sahara - improve error handling in sahara_sha_process()
      crypto: sahara - fix processing hash requests with req->nbytes < sg->length
      crypto: sahara - do not resize req->src when doing hash operations

Pablo Neira Ayuso (6):
      netfilter: nf_tables: check if catch-all set element is active in next generation
      netfilter: nf_tables: reject invalid set policy
      netfilter: nft_limit: do not ignore unsupported flags
      netfilter: nf_tables: do not allow mismatch field size and set key length
      netfilter: nf_tables: skip dead set elements in netlink dump
      netfilter: nf_tables: reject NFT_SET_CONCAT with not field length description

Paolo Abeni (1):
      mptcp: relax check on MPC passive fallback

Paul E. McKenney (1):
      rcu-tasks: Provide rcu_trace_implies_rcu_gp()

Paul Geurts (1):
      serial: imx: fix tx statemachine deadlock

Paul Kocialkowski (2):
      media: verisilicon: Hook the (TRY_)DECODER_CMD stateless ioctls
      media: rkvdec: Hook the (TRY_)DECODER_CMD stateless ioctls

Pavel Tikhomirov (4):
      netfilter: nfnetlink_log: use proper helper for fetching physinif
      netfilter: nf_queue: remove excess nf_bridge variable
      netfilter: propagate net to nf_bridge_get_physindev
      netfilter: bridge: replace physindev with physinif in nf_bridge_info

Peter Delevoryas (1):
      net/ncsi: Fix netlink major/minor version numbers

Peter Robinson (2):
      mmc: sdhci_am654: Fix TI SoC dependencies
      mmc: sdhci_omap: Fix TI SoC dependencies

Philipp Zabel (2):
      pwm: stm32: Use hweight32 in stm32_pwm_detect_channels
      pwm: stm32: Fix enable count for clk in .probe()

Qiang Ma (1):
      net: stmmac: ethtool: Fixed calltrace caused by unbalanced disable_irq_wake calls

RD Babiera (1):
      usb: typec: class: fix typec_altmode_put_partner to put plugs

Randy Dunlap (2):
      powerpc/44x: select I2C for CURRITUCK
      ARM: 9330/1: davinci: also select PINCTRL

Ricardo B. Marliere (1):
      media: pvrusb2: fix use after free on context disconnection

Richard Fitzgerald (1):
      kunit: debugfs: Fix unchecked dereference in debugfs_print_results()

Rob Clark (1):
      iommu/arm-smmu-qcom: Add missing GMU entry to match table

Rob Herring (2):
      of: Add of_property_present() helper
      cpufreq: Use of_property_present() for testing DT property presence

Ronald Monthero (1):
      mtd: rawnand: Increment IFC_TIMEOUT_MSECS for nand controller response

Sakari Ailus (2):
      acpi: property: Let args be NULL in __acpi_node_get_property_reference
      software node: Let args be NULL in software_node_get_reference_args

Sanjuán García, Jorge (1):
      net: ethernet: ti: am65-cpsw: Fix max mtu to fit ethernet frames

Satya Priya Kakitapalli (4):
      clk: qcom: gpucc-sm8150: Update the gpu_cc_pll1 config
      dt-bindings: clock: Update the videocc resets for sm8150
      clk: qcom: videocc-sm8150: Update the videocc resets
      clk: qcom: videocc-sm8150: Add missing PLL config property

Serge Semin (2):
      mips: dmi: Fix early remap on MIPS32
      mips: Fix incorrect max_low_pfn adjustment

Sergey Gorenko (1):
      IB/iser: Prevent invalidating wrong MR

Sergey Shtylyov (1):
      pstore: ram_core: fix possible overflow in persistent_ram_init_ecc()

Siddharth Vadapalli (1):
      PCI: keystone: Fix race condition when initializing PHYs

Sjoerd Simons (1):
      arm64: dts: armada-3720-turris-mox: set irq type for RTC

Song Liu (1):
      Revert "Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d""

Srinivas Pandruvada (3):
      platform/x86/intel/vsec: Enhance and Export intel_vsec_add_aux()
      platform/x86/intel/vsec: Support private data
      platform/x86/intel/vsec: Use mutex for ida_alloc() and ida_free()

Srinivasan Shanmugam (1):
      drm/amdkfd: Confirm list is non-empty before utilizing list_first_entry in kfd_topology.c

Stefan Berger (1):
      rootfs: Fix support for rootfstype= when root= is given

Stefan Wahren (2):
      watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling
      serial: 8250_bcm2835aux: Restore clock error handling

Stefan Wiehler (1):
      mips/smp: Call rcutree_report_cpu_starting() earlier

Su Hui (11):
      wifi: rtlwifi: rtl8821ae: phy: fix an undefined bitwise shift behavior
      wifi: rtlwifi: add calculate_bit_shift()
      wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift()
      wifi: rtlwifi: rtl8192c: using calculate_bit_shift()
      wifi: rtlwifi: rtl8192cu: using calculate_bit_shift()
      wifi: rtlwifi: rtl8192ce: using calculate_bit_shift()
      wifi: rtlwifi: rtl8192de: using calculate_bit_shift()
      wifi: rtlwifi: rtl8192ee: using calculate_bit_shift()
      wifi: rtlwifi: rtl8192se: using calculate_bit_shift()
      clk: si5341: fix an error code problem in si5341_output_clk_set_rate
      power: supply: bq256xx: fix some problem in bq256xx_hw_init

Tadeusz Struk (1):
      PCI/P2PDMA: Remove reference to pci_p2pdma_map_sg()

Taehee Yoo (1):
      amt: do not use overwrapped cb area

Takashi Iwai (1):
      ALSA: oxygen: Fix right channel of capture volume mixer

Tao Liu (1):
      net/sched: act_ct: fix skb leak and crash on ooo frags

Thinh Nguyen (2):
      Revert "usb: dwc3: Soft reset phy on probe for host"
      Revert "usb: dwc3: don't reset device side if dwc3 was configured as host-only"

Théo Lebrun (1):
      clk: fixed-rate: fix clk_hw_register_fixed_rate_with_accuracy_parent_hw

Tomi Valkeinen (12):
      arm64: dts: ti: k3-am65-main: Fix DSS irq trigger type
      Revert "drm/tidss: Annotate dma-fence critical section in commit path"
      Revert "drm/omapdrm: Annotate dma-fence critical section in commit path"
      drm/tilcdc: Fix irq free on unload
      drm/tidss: Move reset to the end of dispc_init()
      drm/tidss: Return error value from from softreset
      drm/tidss: Check for K2G in in dispc_softreset()
      drm/tidss: Fix dss reset
      drm/bridge: cdns-mhdp8546: Fix use of uninitialized variable
      drm/bridge: tc358767: Fix return value on error case
      media: imx-mipi-csis: Fix clock handling in remove()
      media: rkisp1: Fix media device memory leak

Tony Lindgren (1):
      clocksource/drivers/timer-ti-dm: Fix make W=n kerneldoc warnings

Tony Luck (1):
      ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error

Trond Myklebust (2):
      NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
      pNFS: Fix the pnfs block driver's calculation of layoutget size

Uttkarsh Aggarwal (1):
      usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart

Uwe Kleine-König (5):
      drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function
      pwm: stm32: Use regmap_clear_bits and regmap_set_bits where applicable
      pwm: jz4740: Don't use dev_err_probe() in .request()
      pwm: Fix out-of-bounds access in of_pwm_single_xlate()
      serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed

Vignesh Raghavendra (1):
      watchdog: rti_wdt: Drop runtime pm reference count when watchdog is unused

Wang Zhao (1):
      wifi: mt76: mt7921s: fix workqueue problem causes STA association fail

Wenkai Lin (1):
      crypto: hisilicon/qm - add a function to set qm algs

Wolfram Sang (1):
      spi: sh-msiof: Enforce fixed DTDL for R-Car H3

Xi Ruoyao (1):
      LoongArch: Fix and simplify fcsr initialization on execve()

Xingyuan Mo (1):
      accel/habanalabs: fix information leak in sec_attest_info()

Xu Yang (2):
      usb: phy: mxs: remove CONFIG_USB_OTG condition for mxs_phy_is_otg_host()
      usb: chipidea: wait controller resume finished for wakeup irq

Yang Yingliang (1):
      drm/radeon: check the alloc_workqueue return value in radeon_crtc_init()

Yazen Ghannam (1):
      x86/mce/inject: Clear test status value

YiFei Zhu (1):
      selftests/bpf: Relax time_tai test for equal timestamps in tai_forward

Yicong Yang (2):
      perf header: Fix one memory leakage in perf_event__fprintf_event_update()
      perf hisi-ptt: Fix one memory leakage in hisi_ptt_process_auxtrace_event()

Yihang Li (3):
      scsi: hisi_sas: Replace with standard error code return value
      scsi: hisi_sas: Rollback some operations if FLR failed
      scsi: hisi_sas: Correct the number of global debugfs registers

Yo-Jung Lin (1):
      ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on HP ZBook

Yu Kuai (1):
      md: synchronize flush io with array reconfiguration

Zack Rusin (2):
      drm/vmwgfx: Fix possible invalid drm gem put calls
      drm/vmwgfx: Keep a gem reference to user bos in surfaces

Zhao Mengmeng (1):
      selftests/sgx: Skip non X86_64 platform

ZhaoLong Wang (1):
      mtd: Fix gluebi NULL pointer dereference caused by ftl notifier

Zheng Wang (1):
      media: mtk-jpeg: Remove cancel worker in mtk_jpeg_remove to avoid the crash of multi-core JPEG devices

Zhiguo Niu (1):
      f2fs: fix to check return value of f2fs_recover_xattr_data

Zhipeng Lu (8):
      drm/radeon/dpm: fix a memleak in sumo_parse_power_table
      drm/radeon/trinity_dpm: fix a memleak in trinity_parse_power_table
      media: cx231xx: fix a memleak in cx231xx_init_isoc
      drm/amd/pm: fix a double-free in si_dpm_init
      drivers/amd/pm: fix a use-after-free in kv_parse_power_table
      gpu/drm/radeon: fix two memleaks in radeon_vm_init
      drm/amd/pm: fix a double-free in amdgpu_parse_extended_power_table
      drm/amd/pm/smu7: fix a memleak in smu7_hwmgr_backend_init

Zhiqi Song (4):
      crypto: hisilicon/qm - save capability registers in qm init process
      crypto: hisilicon/hpre - save capability registers in probe process
      crypto: hisilicon/sec2 - save capability registers in probe process
      crypto: hisilicon/zip - save capability registers in probe process

kyrie wu (1):
      media: mtk-jpegdec: export jpeg decoder functions

qizhong cheng (1):
      PCI: mediatek: Clear interrupt status before dispatching handler

wangyangxin (1):
      crypto: virtio - Wait for tasklet to complete on device remove

Çağhan Demir (1):
      ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq2xxx

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

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