tree 9aa42b9c249bf09472fa82595658c9a71bbccaf0
parent 2c6bb46029edc36ce2766ff66d4c9b487e641541
parent 69e434a1cb2146a70062d89d507b6132fa38bfe1
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1700558193 -0800
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1700558194 -0800

merge-upstream/v6.1.63 from branch/tag: upstream/v6.1.63 into branch: cos-6.1

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

Aananth V (1):
      tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed

Aaron Plattner (1):
      objtool: Propagate early errors

Abel Vesa (1):
      clk: imx: Select MXC_CLK for CLK_IMX8QXP

Adam Dunlap (1):
      x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot

Adam Ford (3):
      ARM: dts: am3517-evm: Fix LED3/4 pinmux
      arm64: dts: imx8mm: Add sound-dai-cells to micfil node
      arm64: dts: imx8mn: Add sound-dai-cells to micfil node

Aditya Kumar Singh (1):
      wifi: ath11k: fix Tx power value during active CAC

Alison Schofield (2):
      x86/numa: Introduce numa_fill_memblks()
      ACPI/NUMA: Apply SRAT proximity domain to entire CFMWS window

Amit Kumar Mahapatra (1):
      spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies

Andre Przywara (1):
      clocksource/drivers/arm_arch_timer: limit XGene-1 workaround

Andrea Righi (1):
      module/decompress: use vmalloc() for gzip decompression workspace

Andrii Staikov (1):
      i40e: fix potential memory leaks in i40e_remove()

Andy Shevchenko (2):
      ACPI: property: Allow _DSD buffer data only for byte accessors
      HID: cp2112: Make irq_chip immutable

AngeloGioacchino Del Regno (1):
      drm: mediatek: mtk_dsi: Fix NO_EOT_PACKET settings/handling

Anuj Gupta (1):
      nvme: fix error-handling for io_uring nvme-passthrough

Anup Patel (1):
      RISC-V: Don't fail in riscv_of_parent_hartid() for disabled HARTs

Armin Wolf (4):
      platform/x86: wmi: Fix probe failure when failing to register WMI devices
      platform/x86: wmi: Fix opening of char device
      hwmon: (sch5627) Use bit macros when accessing the control register
      hwmon: (sch5627) Disallow write access if virtual registers are locked

Arnd Bergmann (1):
      fbdev: fsl-diu-fb: mark wr_reg_wa() static

Arseniy Krasnov (4):
      virtio/vsock: don't use skbuff state to account credit
      virtio/vsock: remove redundant 'skb_pull()' call
      virtio/vsock: don't drop skbuff on copy failure
      virtio/vsock: fix header length on skb merging

Baochen Qiang (1):
      wifi: ath11k: fix boot failure with one MSI vector

Basavaraj Natikar (1):
      xhci: Loosen RPM as default policy to cover for AMD xHC 1.1

Bastien Nocera (2):
      Revert "HID: logitech-hidpp: add a module parameter to keep firmware gestures"
      HID: logitech-hidpp: Remove HIDPP_QUIRK_NO_HIDINPUT quirk

Ben Wolsieffer (2):
      futex: Don't include process MM in futex key on no-MMU
      regmap: prevent noinc writes from clobbering cache

Benjamin Gray (1):
      powerpc/xive: Fix endian conversion size

Biju Das (1):
      pinctrl: renesas: rzg2l: Make reverse order of enable() for disable()

Bobby Eshleman (2):
      virtio/vsock: replace virtio_vsock_pkt with sk_buff
      virtio/vsock: fix leaks due to missing skb owner

Brett Creeley (1):
      iavf: Fix promiscuous mode configuration flow messages

Cezary Rojewski (1):
      ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails

Chao Yu (4):
      f2fs: compress: fix deadloop in f2fs_write_cache_pages()
      f2fs: compress: fix to avoid use-after-free on dic
      f2fs: compress: fix to avoid redundant compress extension
      f2fs: fix to initialize map.m_pblk in f2fs_precache_extents()

Chen Ni (1):
      libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value

Chen Yu (1):
      genirq/matrix: Exclude managed interrupts in irq_matrix_allocated()

Chen-Yu Tsai (2):
      regulator: mt6358: Fail probe on unknown chip ID
      dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366 PMIC

Chengchang Tang (3):
      RDMA/hns: Fix printing level of asynchronous events
      RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common()
      RDMA/hns: Fix signed-unsigned mixed comparisons

Chengming Zhou (1):
      sched/fair: Fix cfs_rq_is_decayed() on !SMP

Chris Packham (1):
      ARM64: dts: marvell: cn9310: Use appropriate label for spi1 pins

Christophe JAILLET (8):
      wifi: ath: dfs_pattern_detector: Fix a memory initialization issue
      ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias()
      regmap: debugfs: Fix a erroneous check after snprintf()
      drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe()
      crypto: hisilicon/hpre - Fix a erroneous check after snprintf()
      leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu'
      dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc()
      media: i2c: max9286: Fix some redundant of_node_put() calls

Christophe Leroy (2):
      powerpc: Only define __parse_fpscr() when required
      powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro

Claudiu Beznea (5):
      clk: renesas: rzg2l: Wait for status bit of SD mux before continuing
      clk: renesas: rzg2l: Lock around writes to mux register
      clk: renesas: rzg2l: Trust value returned by hardware
      clk: renesas: rzg2l: Use FIELD_GET() for PLL register fields
      clk: renesas: rzg2l: Fix computation formula

Cristian Ciocaltea (4):
      ASoC: cs35l41: Verify PM runtime resume errors in IRQ handler
      ASoC: cs35l41: Undo runtime PM changes at driver exit time
      ALSA: hda: cs35l41: Fix unbalanced pm_runtime_get()
      ALSA: hda: cs35l41: Undo runtime PM changes at driver exit time

D. Wythe (3):
      net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT
      net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc
      net/smc: put sk reference if close work was canceled

Dan Carpenter (8):
      thermal: core: prevent potential string overflow
      clk: keystone: pll: fix a couple NULL vs IS_ERR() checks
      clk: ti: fix double free in of_ti_divider_clk_setup()
      drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map()
      dmaengine: ti: edma: handle irq_of_parse_and_map() errors
      Input: synaptics-rmi4 - fix use after free in rmi_unregister_function()
      hsr: Prevent use after free in prp_create_tagged_frame()
      fbdev: imsttfb: fix a resource leak in probe

Dan Williams (2):
      cxl/mem: Fix shutdown order
      virt: sevguest: Fix passing a stack buffer as a scatterlist target

Daniel Mentz (1):
      scsi: ufs: core: Leave space for '\0' in utf8 desc string

Danila Tikhonov (1):
      clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src

Danny Kaehn (2):
      hid: cp2112: Fix duplicate workqueue initialization
      hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip

Dario Binacchi (1):
      clk: ti: change ti_clk_register[_omap_hw]() API

David Heidelberg (1):
      arm64: dts: qcom: sdm845: cheza doesn't support LMh node

David Howells (1):
      iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()

Devi Priya (1):
      clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies

Dhruva Gole (1):
      firmware: ti_sci: Mark driver as non removable

Dinghao Liu (2):
      mfd: dln2: Fix double put in dln2_probe
      i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs

Dionna Glaze (1):
      x86/sev: Change snp_guest_issue_request()'s fw_err argument

Dirk Behme (1):
      clk: renesas: rcar-gen3: Extend SDnH divider table

Dmitry Antipov (1):
      wifi: rtlwifi: fix EDCA limit set by BT coexistence

Dmitry Baryshkov (9):
      drm/bridge: lt9611uxc: fix the race in the error path
      drm/msm/dsi: use msm_gem_kernel_put to free TX buffer
      drm/msm/dsi: free TX buffer in unbind
      arm64: dts: qcom: sc7280: link usb3_phy_wrapper_gcc_usb30_pipe_clk
      arm64: dts: qcom: sm8150: add ref clock to PCIe PHYs
      arm64: dts: qcom: sm8350: fix pinctrl for UART18
      arm64: dts: qcom: sdm845-mtp: fix WiFi configuration
      interconnect: move ignore_list out of of_count_icc_providers()
      interconnect: qcom: sm8150: Drop IP0 interconnects

Dominique Martinet (1):
      Revert "mmc: core: Capture correct oemid-bits for eMMC cards"

Dragos Bogdan (1):
      hwmon: (axi-fan-control) Fix possible NULL pointer dereference

Emmanuel Grumbach (1):
      wifi: iwlwifi: honor the enable_ini value

Eric Dumazet (9):
      udp: add missing WRITE_ONCE() around up->encap_rcv
      tcp_metrics: add missing barriers on delete
      tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics()
      tcp_metrics: do not create an entry from tcp_init_metrics()
      chtls: fix tp->rcv_tstamp initialization
      tcp: fix cookie_init_timestamp() overflows
      net: add DEV_STATS_READ() helper
      ipvlan: properly track tx_errors
      inet: shrink struct flowi_common

Erik Kurzinger (1):
      drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE

Eugen Hristev (1):
      ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: trivial: fix error messages

Fabien Parent (1):
      dt-bindings: mfd: mt6397: Add binding for MT6357

Fabio Estevam (1):
      arm64: dts: imx8qm-ss-img: Fix jpegenc compatible entry

Fei Shao (1):
      media: mtk-jpegenc: Fix bug in JPEG encode quality selection

Felipe Negrelli Wolter (1):
      wifi: wfx: fix case where rates are out of order

Felix Fietkau (3):
      wifi: mt76: mt7603: rework/fix rx pse hang check
      wifi: mt76: mt7603: improve watchdog reset reliablity
      wifi: mt76: mt7603: improve stuck beacon handling

Fenghua Yu (1):
      dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers

Filipe Manana (1):
      btrfs: use u64 for buffer sizes in the tree search ioctls

Filippo Storniolo (1):
      vsock/virtio: remove socket from connected/bound list on shutdown

Florian Fainelli (1):
      pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume

Florian Westphal (1):
      netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses

Francesco Dolcini (1):
      drm/bridge: tc358768: remove unused variable

Furong Xu (1):
      net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs

Gabriel Krisman Bertazi (2):
      io_uring/kbuf: Fix check of BID wrapping in provided buffers
      io_uring/kbuf: Allow the full buffer id space for provided buffers

Gaurav Jain (2):
      crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure
      crypto: caam/jr - fix Chacha20 + Poly1305 self test failure

Gaurav Kohli (1):
      arm64: dts: qcom: msm8916: Fix iommu local address range

Geert Uytterhoeven (2):
      ARM: dts: renesas: blanche: Fix typo in GP_11_2 pin name
      sh: bios: Revive earlyprintk support

Geetha sowjanya (1):
      octeontx2-pf: Free pending and dropped SQEs

George Kennedy (1):
      IB/mlx5: Fix init stage error handling to avoid double free of same QP and UAF

George Shuklin (1):
      tg3: power down device only on SYSTEM_POWER_OFF

Georgia Garcia (1):
      apparmor: fix invalid reference on profile->disconnected

Giovanni Cabiddu (9):
      crypto: qat - ignore subsequent state up commands
      crypto: qat - relocate bufferlist logic
      crypto: qat - rename bufferlist functions
      crypto: qat - change bufferlist logic interface
      crypto: qat - generalize crypto request buffers
      crypto: qat - extend buffer list interface
      crypto: qat - fix unregistration of crypto algorithms
      crypto: qat - increase size of buffers
      crypto: qat - fix deadlock in backlog processing

Gou Hao (1):
      ext4: move 'ix' sanity check to corrent position

Greg Kroah-Hartman (1):
      Linux 6.1.63

Gregory Greenman (1):
      wifi: iwlwifi: call napi_synchronize() before freeing rx/tx queues

Guenter Roeck (2):
      Revert "hwmon: (sch56xx-common) Add DMI override table"
      Revert "hwmon: (sch56xx-common) Add automatic module loading on supported devices"

Guoniu.zhou (1):
      media: ov5640: fix vblank unchange issue when work at dvp mode

Gustavo A. R. Silva (6):
      gve: Use size_add() in call to struct_size()
      mlxsw: Use size_mul() in call to struct_size()
      tls: Use size_add() in call to struct_size()
      tipc: Use size_add() in calls to struct_size()
      net: spider_net: Use size_add() in call to struct_size()
      RDMA/core: Use size_{add,sub,mul}() in calls to struct_size()

Han Xu (1):
      spi: nxp-fspi: use the correct ioremap function

Hangbin Liu (1):
      selftests: pmtu.sh: fix result checking

Hangyu Hua (1):
      9p/net: fix possible memory leak in p9_check_errors()

Hans Verkuil (1):
      media: dvb-usb-v2: af9035: fix missing unlock

Hans de Goede (4):
      HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only
      HID: logitech-hidpp: Revert "Don't restart communication if not necessary"
      HID: logitech-hidpp: Move get_wireless_feature_index() check to hidpp_connect_event()
      mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs

Hao Chen (1):
      drivers/perf: hisi: use cpuhp_state_remove_instance_nocalls() for hisi_hns3_pmu uninit process

Haren Myneni (1):
      powerpc/vas: Limit open window failure messages in log bufffer

Hariprasad Kelam (1):
      octeontx2-pf: Rename tot_tx_queues to non_qos_queues

Harshit Mogalapalli (1):
      hte: tegra: Fix missing error code in tegra_hte_test_probe()

Heiner Kallweit (2):
      r8169: fix rare issue with broken rx after link-down on RTL8125
      r8169: respect userspace disabling IFF_MULTICAST

Helge Deller (1):
      fbdev: imsttfb: Fix error path of imsttfb_probe()

Herbert Xu (2):
      tls: Only use data field in crypto completion function
      KEYS: Include linux/errno.h in linux/verification.h

Herve Codina (1):
      mfd: core: Ensure disabled devices are skipped without aborting

Hou Tao (1):
      bpf: Check map->usercnt after timer->timer is assigned

Ian Rogers (3):
      perf stat: Fix aggr mode initialization
      perf machine: Avoid out of bounds LBR memory read
      perf hist: Add missing puts to hist__account_cycles

Ilpo Järvinen (2):
      selftests/resctrl: Ensure the benchmark commands fits to its array
      PCI: vmd: Correct PCI Header Type Register's multi-function check

Ivaylo Dimitrov (1):
      drivers/clocksource/timer-ti-dm: Don't call clk_get_rate() in stop function

Jacopo Mondi (1):
      media: ov5640: Drop dead code using frame_interval

Jai Luthra (2):
      drm: bridge: it66121: Fix invalid connector dereference
      arm64: dts: ti: k3-am62a7-sk: Drop i2c-1 to 100Khz

Jason-JH.Lin (2):
      drm/mediatek: Fix iommu fault by swapping FBs after updating plane state
      drm/mediatek: Fix iommu fault during crtc enabling

Javier Carrasco (1):
      rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call

Jens Axboe (1):
      io_uring/net: ensure socket is marked connected on connect retry

Jeremy Sowden (1):
      netfilter: nft_redir: use `struct nf_nat_range2` throughout and deduplicate eval call-backs

Jernej Skrabec (1):
      media: cedrus: Fix clock/reset sequence

Jerome Brunet (2):
      ASoC: hdmi-codec: register hpd callback on component probe
      ASoC: dapm: fix clock get name

Jia-Ju Bai (1):
      usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency

Jian Shen (1):
      net: page_pool: add missing free_percpu when page_pool_init fail

Jiasheng Jiang (9):
      pstore/platform: Add check for kstrdup
      clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data
      clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data
      clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data
      clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data
      clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data
      clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data
      media: vidtv: psi: Add check for kstrdup
      media: vidtv: mux: Add check and kfree for kstrdup

Jingbo Xu (1):
      writeback, cgroup: switch inodes with dirty timestamps to release dying cgwbs

Jinjie Ruan (4):
      wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file()
      kunit: Fix missed memory release in kunit_free_suite_set()
      iio: frequency: adf4350: Use device managed functions and fix power down issue.
      misc: st_core: Do not call kfree_skb() under spin_lock_irqsave()

Johannes Berg (8):
      wifi: cfg80211: add flush functions for wiphy work
      wifi: mac80211: move radar detect work to wiphy work
      wifi: mac80211: move scan work to wiphy work
      wifi: mac80211: move offchannel works to wiphy work
      wifi: mac80211: move sched-scan stop work to wiphy work
      wifi: mac80211: fix # of MSDU in A-MSDU calculation
      wifi: iwlwifi: pcie: synchronize IRQs before NAPI
      wifi: cfg80211: fix kernel-doc for wiphy_delayed_work_flush()

Johnny Liu (1):
      gpu: host1x: Correct allocated size for contexts

Jonas Blixt (1):
      USB: usbip: fix stub_dev hub disconnect

Jonas Gorski (1):
      hwrng: geode - fix accessing registers

Jonas Karlman (4):
      drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs
      drm/rockchip: vop: Fix call to crtc reset helper
      drm/rockchip: vop2: Don't crash for invalid duplicate_state
      drm/rockchip: vop2: Add missing call to crtc reset helper

Jonathan Neuschäfer (1):
      clk: npcm7xx: Fix incorrect kfree

Josh Poimboeuf (1):
      x86/srso: Fix SBPB enablement for (possible) future fixed HW

Juergen Gross (1):
      xenbus: fix error exit in xenbus_init()

Juhee Kang (1):
      r8169: use tp_to_dev instead of open code

Junhao He (1):
      perf: hisi: Fix use-after-free when register pmu fails

Kai Ye (3):
      crypto: hisilicon/qm - delete redundant null assignment operations
      crypto: hisilicon/qm - modify the process of regs dfx
      crypto: hisilicon/qm - split a debugfs.c from qm

Katya Orlova (1):
      media: s3c-camif: Avoid inappropriate kfree()

Kees Cook (1):
      string: Adjust strtomem() logic to allow for smaller sources

Konrad Dybcio (17):
      clk: qcom: gcc-msm8996: Remove RPM bus clocks
      clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks
      clk: qcom: mmcc-msm8998: Fix the SMMU GDSC
      arm64: dts: qcom: sc7280: Add missing LMH interrupts
      interconnect: qcom: sc7180: Retire DEFINE_QBCM
      interconnect: qcom: sc7180: Set ACV enable_mask
      interconnect: qcom: sc7280: Set ACV enable_mask
      interconnect: qcom: sc8180x: Set ACV enable_mask
      interconnect: qcom: sc8280xp: Set ACV enable_mask
      interconnect: qcom: sdm845: Retire DEFINE_QBCM
      interconnect: qcom: sdm845: Set ACV enable_mask
      interconnect: qcom: sm6350: Retire DEFINE_QBCM
      interconnect: qcom: sm6350: Set ACV enable_mask
      interconnect: qcom: sm8150: Retire DEFINE_QBCM
      interconnect: qcom: sm8150: Set ACV enable_mask
      interconnect: qcom: sm8350: Retire DEFINE_QBCM
      interconnect: qcom: sm8350: Set ACV enable_mask

Konstantin Meskhidze (1):
      drm/radeon: possible buffer overflow

Krzysztof Kozlowski (2):
      arm64: dts: qcom: msm8992-libra: drop duplicated reserved memory
      ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator

Kuninori Morimoto (2):
      ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not described
      ASoC: ams-delta.c: use component after check

Kuniyuki Iwashima (2):
      dccp: Call security_inet_conn_request() after setting IPv4 addresses.
      dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses.

Kursad Oney (1):
      ARM: 9321/1: memset: cast the constant byte to unsigned char

Leon Hwang (1):
      selftests/bpf: Correct map_fd to data_fd in tailcalls

Leon Romanovsky (1):
      RDMA/hfi1: Workaround truncation compilation error

Li Lingfeng (1):
      nbd: fix uaf in nbd_open

Linus Walleij (1):
      watchdog: ixp4xx: Make sure restart always works

Longfang Liu (1):
      crypto: hisilicon/qm - fix PF queue parameter issue

Lorenzo Bianconi (1):
      net: ethernet: mtk_wed: fix EXT_INT_STATUS_RX_FBUF definitions for MT7986 SoC

Luoyouming (2):
      RDMA/hns: Add check for SL
      RDMA/hns: The UD mode can only be configured with DCQCN

Maarten Lankhorst (1):
      ASoC: SOF: core: Ensure sof_ops_free() is still called when probe never ran.

Maciej Wieczor-Retman (1):
      selftests/pidfd: Fix ksft print formats

Maciej Żenczykowski (1):
      netfilter: xt_recent: fix (increase) ipv6 literal buffer length

Marc Kleine-Budde (3):
      can: dev: can_restart(): don't crash kernel if carrier is OK
      can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on()
      can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is accessed out of bounds

Marcel Ziswiler (1):
      Bluetooth: hci_sync: Fix Opcode prints in bt_dev_dbg/err

Marek Behún (2):
      leds: turris-omnia: Drop unnecessary mutex locking
      leds: turris-omnia: Do not use SMBUS calls

Marek Marczykowski-Górecki (1):
      xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled

Marek Szyprowski (1):
      media: cec: meson: always include meson sub-directory in Makefile

Marek Vasut (2):
      media: hantro: Check whether reset op is defined before use
      media: verisilicon: Do not enable G2 postproc downscale if source is narrower than destination

Mark Rutland (1):
      arm64/arm: xen: enlighten: Fix KPTI checks

Masahiro Yamada (2):
      modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host
      modpost: fix ishtp MODULE_DEVICE_TABLE built on big-endian host

Matti Vaittinen (1):
      tools: iio: iio_generic_buffer ensure alignment

MeiChia Chiu (1):
      wifi: mt76: mt7915: fix beamforming availability check

Michał Mirosław (3):
      mfd: core: Un-constify mfd_cell.of_reg
      usb: chipidea: Fix DMA overwrite for Tegra
      usb: chipidea: Simplify Tegra DMA alignment code

Michel Dänzer (3):
      drm/amd/display: Check all enabled planes in dm_check_crtc_cursor
      drm/amd/display: Refactor dm_get_plane_scale helper
      drm/amd/display: Bail from dm_check_crtc_cursor if no relevant change

Ming Qian (1):
      media: amphion: handle firmware debug message

Miri Korenblit (1):
      wifi: iwlwifi: empty overflow queue during flush

Namhyung Kim (1):
      perf record: Fix BTF type checks in the off-cpu profiling

NeilBrown (1):
      Fix termination state for idr_for_each_entry_ul()

Ondrej Zary (1):
      ACPI: video: Add acpi_backlight=vendor quirk for Toshiba Portégé R100

Patrick Thompson (1):
      net: r8169: Disable multicast filter for RTL8168H and RTL8107E

Patrisious Haddad (1):
      IB/mlx5: Fix rdma counter binding for RAW QP

Peng Fan (1):
      clk: imx: imx8mq: correct error handling path

Peter Gonda (1):
      crypto: ccp - Name -1 return value as SEV_RET_NO_FW_CALL

Peter Zijlstra (1):
      sched: Fix stop_one_cpu_nowait() vs hotplug

Phil Sutter (2):
      netfilter: nf_tables: Drop pointless memset when dumping rules
      net: skb_find_text: Ignore patterns extending past 'to'

Pratyush Yadav (1):
      media: cadence: csi2rx: Unregister v4l2 async notifier

Qais Yousef (2):
      sched/uclamp: Set max_spare_cap_cpu even if max_spare_cap is 0
      sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0

Rae Moar (2):
      kunit: add macro to allow conditionally exposing static symbols to tests
      apparmor: test: make static symbols visible during kunit testing

Randy Dunlap (1):
      clk: linux/clk-provider.h: fix kernel-doc warnings and typos

Ratheesh Kannoth (2):
      octeontx2-pf: Fix error codes
      octeontx2-pf: Fix holes in error code

Reuben Hawkins (1):
      vfs: fix readahead(2) on block devices

Robert Chiras (1):
      clk: imx: imx8qxp: Fix elcdif_pll clock

Robin Murphy (2):
      perf/arm-cmn: Revamp model detection
      perf/arm-cmn: Fix DTC domain detection

Roman Bacik (1):
      i2c: iproc: handle invalid slave state

Sascha Hauer (1):
      PM / devfreq: rockchip-dfi: Make pmu regmap mandatory

Sebastian Andrzej Siewior (1):
      powerpc/imc-pmu: Use the correct spinlock initializer.

Sergey Shtylyov (1):
      usb: host: xhci-plat: fix possible kernel oops while resuming

Shigeru Yoshida (2):
      tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING
      virtio/vsock: Fix uninit-value in virtio_transport_recv_pkt()

Song Liu (1):
      bpf: Fix unnecessary -EBUSY from htab_lock_bucket

Stefan Eichenberger (1):
      drm/bridge: lt8912b: Add hot plug detection

Stefan Wahren (1):
      hwrng: bcm2835 - Fix hwrng throughput regression

Stefano Garzarella (1):
      vsock/loopback: use only sk_buff_head.lock to protect the packet queue

Stephan Gerhold (1):
      arm64: dts: qcom: apq8016-sbc: Add missing ADV7533 regulators

Subbaraya Sundeep (1):
      octeontx2-pf: qos send queues management

Sudeep Holla (3):
      firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device
      firmware: arm_ffa: Allow the FF-A drivers to use 32bit mode of messaging
      clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped

Thierry Reding (1):
      arm64: tegra: Use correct interrupts for Tegra234 TKE

Tomas Glozar (1):
      nd_btt: Make BTT lanes preemptible

Tomi Valkeinen (12):
      drm/bridge: lt8912b: Fix bridge_detach
      drm/bridge: lt8912b: Fix crash on bridge detach
      drm/bridge: lt8912b: Manually disable HPD only if it was enabled
      drm/bridge: lt8912b: Add missing drm_bridge_attach call
      drm/bridge: tc358768: Fix use of uninitialized variable
      drm/bridge: tc358768: Fix bit updates
      drm/bridge: tc358768: Use struct videomode
      drm/bridge: tc358768: Print logical values, not raw register values
      drm/bridge: tc358768: Use dev for dbg prints, not priv->dev
      drm/bridge: tc358768: Rename dsibclk to hsbyteclk
      drm/bridge: tc358768: Clean up clock period code
      drm/bridge: tc358768: Fix tc358768_ns_to_cnt()

Tyrel Datwyler (1):
      scsi: ibmvfc: Fix erroneous use of rtas_busy_delay with hcall return code

Uwe Kleine-König (3):
      soc: qcom: llcc: Handle a second device without data corruption
      leds: pwm: Don't disable the PWM when the LED should be off
      pwm: sti: Reduce number of allocations and drop usage of chip_data

Varadarajan Narayanan (1):
      clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM

Vishal Moola (Oracle) (2):
      filemap: add filemap_get_folios_tag()
      f2fs: convert f2fs_write_cache_pages() to use filemap_get_folios_tag()

Wang Yufen (1):
      powerpc/pseries: fix potential memory leak in init_cpu_associativity()

WangJinchao (1):
      padata: Fix refcnt handling in padata_free_shell()

Willem de Bruijn (1):
      llc: verify mac len before reading mac header

Xiaogang Chen (1):
      drm/amdkfd: fix some race conditions in vram buffer alloc/free of svm code

Xiaolei Wang (1):
      media: ov5640: Fix a memory leak when ov5640_probe fails

Xin Long (1):
      selftests: netfilter: test for sctp collision processing in nf_conntrack

Yan Zhai (1):
      ipv6: avoid atomic fragment on GSO packets

Yang Jihong (3):
      perf kwork: Fix incorrect and missing free atom in work_push_atom()
      perf kwork: Add the supported subcommands to the document
      perf kwork: Set ordered_events to true in 'struct perf_tool'

Yang Yingliang (3):
      pcmcia: cs: fix possible hung task and memory leak pccardd()
      pcmcia: ds: fix refcount leak in pcmcia_device_add()
      pcmcia: ds: fix possible name leak in error path in pcmcia_device_add()

Yazen Ghannam (1):
      x86/amd_nb: Use Family 19h Models 60h-7Fh Function 4 IDs

Yi Yang (1):
      tty: tty_jobctrl: fix pid memleak in disassociate_ctty()

Yicong Yang (1):
      drivers/perf: hisi_pcie: Check the type first in pmu::event_init()

Yu Kuai (1):
      blk-core: use pr_warn_ratelimited() in bio_check_ro()

Yujie Liu (1):
      tracing/kprobes: Fix the order of argument descriptions

Yuntao Wang (1):
      x86/boot: Fix incorrect startup_gdt_descr.size

Zev Weiss (1):
      hwmon: (nct6775) Fix incorrect variable reuse in fan_div calculation

Zhang Rui (1):
      hwmon: (coretemp) Fix potentially truncated sysfs attribute name

Zhang Shurong (2):
      spi: tegra: Fix missing IRQ check in tegra_slink_probe()
      ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe

Zheng Wang (1):
      media: bttv: fix use after free error due to btv->timeout timer

Zheng Yejian (1):
      livepatch: Fix missing newline character in klp_resolve_symbols()

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

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