tree 662a321af24f839093e7e443bce5a26c50a3ec00
parent 3257ef774713fedf36d75edae19db903ed5ca82c
parent 024f76bca9d0e29513fa99e1cd0f86bfa841743b
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1693213687 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1693213688 -0700

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

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

Abel Wu (1):
      sock: Fix misuse of sk_under_memory_pressure()

Alexander Stein (1):
      arm64: dts: imx93: Fix anatop node size

Alexandre Ghiti (1):
      riscv: uaccess: Return the number of bytes effectively not copied

Alfred Lee (1):
      net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset

Alvin Lee (1):
      drm/amd/display: Apply 60us prefetch for DCFCLK <= 300Mhz

Andrej Picej (1):
      ARM: dts: imx6: phytec: fix RTC interrupt level

Andrew Yang (1):
      zsmalloc: fix races between modifications of fullness and isolated

Andrey Konovalov (1):
      media: camss: set VFE bpl_alignment to 16 for sdm845 and sm8250

Andrii Staikov (1):
      i40e: fix misleading debug logs

Andy Shevchenko (1):
      Bluetooth: MGMT: Use correct address for memcpy()

Armin Wolf (1):
      pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()

Arnd Bergmann (1):
      ASoC: amd: vangogh: select CONFIG_SND_AMD_ACP_CONFIG

Avichal Rakesh (1):
      usb: gadget: uvc: queue empty isoc requests if no video buffer is available

Bard Liao (2):
      ASoC: Intel: sof_sdw: add quirk for MTL RVP
      ASoC: Intel: sof_sdw_rt_sdca_jack_common: test SOF_JACK_JDSRC in _exit

Benjamin Gray (1):
      powerpc/kasan: Disable KCOV in KASAN code

Borislav Petkov (AMD) (4):
      x86/srso: Explain the untraining sequences a bit more
      x86/CPU/AMD: Fix the DIV(0) initial fix attempt
      x86/srso: Disable the mitigation on unaffected configurations
      x86/srso: Correct the mitigation status when SMT is disabled

Chen Lin (1):
      ring-buffer: Do not swap cpu_buffer during resize process

Chengfeng Ye (1):
      i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue

Christophe JAILLET (1):
      net: phy: at803x: Use devm_regulator_get_enable_optional()

Christopher Obbard (2):
      arm64: dts: rockchip: Disable HS400 for eMMC on ROCK Pi 4
      arm64: dts: rockchip: Disable HS400 for eMMC on ROCK 4C+

D. Wythe (1):
      net/smc: replace mutex rmbs_lock and sndbufs_lock with rw_semaphore

Daniel Miess (2):
      drm/amd/display: Enable dcn314 DPP RCO
      drm/amd/display: disable RCO for DCN314

Daniel Vetter (1):
      video/aperture: Only remove sysfb on the default vga pci device

David Sterba (2):
      btrfs: convert btrfs_block_group::needs_free_space to runtime flag
      btrfs: convert btrfs_block_group::seq_zone to runtime flag

Davide Caratti (1):
      selftests: forwarding: tc_actions: cleanup temporary files when test is aborted

Dmitry Baryshkov (1):
      arm64: dts: qcom: qrb5165-rb5: fix thermal zone conflict

Dragos Tatulea (2):
      vdpa/mlx5: Fix mr->initialized semantics
      vdpa: Enable strict validation for netlinks ops

Edward Cree (1):
      sfc: don't unregister flow_indr if it was never registered

Edward Lo (1):
      fs/ntfs3: Enhance sanity check while generating attr_list

Eric Dumazet (1):
      net: do not allow gso_size to be set to GSO_BY_FRAGS

Eugenio Pérez (1):
      vdpa/mlx5: Delete control vq iotlb in destroy_mr only when necessary

Even Xu (1):
      HID: intel-ish-hid: ipc: Add Arrow Lake PCI device ID

Fabio Estevam (1):
      arm64: dts: imx8mm: Drop CSI1 PHY reference clock configuration

Filipe Manana (1):
      btrfs: fix use-after-free of new block group that became unused

Florian Westphal (2):
      netfilter: nf_tables: fix false-positive lockdep splat
      netfilter: nf_tables: deactivate catchall elements in next generation

Geert Uytterhoeven (1):
      iopoll: Call cpu_relax() in busy loops

Gerd Bayer (1):
      net/smc: Fix setsockopt and sysctl to specify same buffer size again

Greg Kroah-Hartman (6):
      Linux 6.1.47
      Linux 6.1.48
      Revert "f2fs: don't reset unchangable mount option in f2fs_remount()"
      Revert "f2fs: fix to set flush_merge opt and show noflush_merge"
      Revert "f2fs: fix to do sanity check on direct node in truncate_dnode()"
      Linux 6.1.49

Guchun Chen (1):
      drm/amdgpu: keep irq count in amdgpu_irq_disable_all

Hans Verkuil (1):
      media: platform: mediatek: vpu: fix NULL ptr dereference

Hawkins Jiawei (1):
      virtio-net: Zero max_tx_vq field for VIRTIO_NET_CTRL_MQ_HASH_CONFIG case

Hersen Wu (1):
      drm/amd/display: fix access hdcp_workqueue assert

Ido Schimmel (1):
      selftests: forwarding: tc_actions: Use ncat instead of nc

Jack Xiao (1):
      drm/amdgpu: fix memory leak in mes self test

Jakub Kicinski (1):
      net: openvswitch: reject negative ifindex

Jani Nikula (1):
      drm/i915/sdvo: fix panel_type initialization

Jason Wang (1):
      virtio-net: set queues after driver_ok

Jason Xing (1):
      net: fix the RTO timer retransmitting skb every 1ms if linear option is enabled

Jerome Brunet (1):
      ASoC: meson: axg-tdm-formatter: fix channel slot allocation

Jia-Ju Bai (1):
      fs: ntfs3: Fix possible null-pointer dereferences in mi_read()

Jiasheng Jiang (1):
      soc: aspeed: socinfo: Add kfree for kstrdup

Josef Bacik (1):
      btrfs: fix incorrect splitting in btrfs_drop_extent_map_range

Justin Chen (1):
      net: phy: broadcom: stub c45 read/write for 54810

Kailang Yang (1):
      ALSA: hda/realtek - Remodified 3k pull low procedure

Karol Herbst (1):
      drm/nouveau/disp: fix use-after-free in error handling of nouveau_connector_create

Konstantin Komarov (1):
      fs/ntfs3: Mark ntfs dirty when on-disk struct is corrupted

Krzysztof Kozlowski (1):
      ARM: dts: imx: align LED node names with dtschema

Kunihiko Hayashi (1):
      mmc: sdhci-f-sdh30: Replace with sdhci_pltfm

Kuniyuki Iwashima (1):
      af_unix: Fix null-ptr-deref in unix_stream_sendpage().

Lang Yu (1):
      drm/amdgpu: install stub fence into potential unused fence pointers

Laurent Vivier (1):
      virtio_net: notify MAC address change on device initialization

Li Yang (1):
      net: phy: at803x: fix the wol setting functions

Lin Ma (8):
      vdpa: Add features attr to vdpa_nl_policy for nlattr length check
      vdpa: Add queue index attr to vdpa_nl_policy for nlattr length check
      vdpa: Add max vqp attr to vdpa_nl_policy for nlattr length check
      net: xfrm: Fix xfrm_address_filter OOB read
      net: af_key: fix sadb_x_filter validation
      net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure
      xfrm: add NULL check in xfrm_update_ae_params
      xfrm: add forgotten nla_policy for XFRMA_MTIMER_THRESH

Longlong Yao (1):
      drm/amdgpu: fix calltrace warning in amddrm_buddy_fini

Lu Hongfei (1):
      led: qcom-lpg: Fix resource leaks in for_each_available_child_of_node() loops

Luca Ceresoli (1):
      drm/panel: simple: Fix AUO G121EAN01 panel timings according to the docs

Luke D. Jones (3):
      ALSA: hda/realtek: Add quirk for ASUS ROG GX650P
      ALSA: hda/realtek: Add quirk for ASUS ROG GA402X
      ALSA: hda/realtek: Add quirk for ASUS ROG GZ301V

Manish Chopra (1):
      qede: fix firmware halt over suspend and resume

Marc Zyngier (1):
      KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption

Marcin Szycik (1):
      ice: Block switchdev mode when ADQ is active and vice versa

Mario Limonciello (1):
      drm/amd: flush any delayed gfxoff on suspend entry

Mark Brown (1):
      arm64/ptrace: Ensure that SME is set up for target when writing SSVE state

Matthew Anderson (2):
      ALSA: hda/realtek: Add quirks for ROG ALLY CS35l41 audio
      Bluetooth: btusb: Add MT7922 bluetooth ID for the Asus Ally

Maulik Shah (1):
      cpuidle: psci: Move enabling OSI mode after power domains creation

Maxime Coquelin (1):
      vduse: Use proper spinlock for IRQ injection

Michal Schmidt (1):
      octeon_ep: cancel tx_timeout_task later in remove sequence

Mika Westerberg (3):
      thunderbolt: Read retimer NVM authentication status prior tb_retimer_set_inbound_sbtx()
      thunderbolt: Add Intel Barlow Ridge PCI ID
      thunderbolt: Limit Intel Barlow Ridge USB3 bandwidth

Mike Kravetz (1):
      hugetlb: do not clear hugetlb dtor until allocating vmemmap

Naohiro Aota (1):
      btrfs: move out now unused BG from the reclaim list

Nathan Lynch (1):
      powerpc/rtas_flash: allow user copy to flash block cache objects

Nhat Pham (1):
      zsmalloc: consolidate zs_pool's migrate_lock and size_class's locks

Nicholas Kazlauskas (1):
      drm/amd/display: Skip DPP DTO update if root clock is gated

Ofir Bitton (1):
      accel/habanalabs: add pci health check during heartbeat

Oleksij Rempel (1):
      ARM: dts: imx6dl: prtrvt, prtvt7, prti6q, prtwd2: fix USB related warnings

Pablo Neira Ayuso (1):
      netfilter: nft_dynset: disallow object maps

Parker Newman (1):
      i2c: tegra: Fix i2c-tegra DMA config option processing

Patrisious Haddad (1):
      RDMA/mlx5: Return the firmware result upon destroying QP/RQ

Paulo Alcantara (1):
      smb: client: fix warning in cifs_smb3_do_mount()

Peter Ujfalusi (2):
      ASoC: Intel: sof_sdw: add quirk for LNL RVP
      ASoC: SOF: core: Free the firmware trace before calling snd_sof_shutdown()

Peter Zijlstra (10):
      x86/cpu: Fix __x86_return_thunk symbol type
      x86/cpu: Fix up srso_safe_ret() and __x86_return_thunk()
      x86/alternative: Make custom return thunk unconditional
      x86/cpu: Clean up SRSO return thunk mess
      x86/cpu: Rename original retbleed methods
      x86/cpu: Rename srso_(.*)_alias to srso_alias_\1
      x86/cpu: Cleanup the untrain mess
      x86/static_call: Fix __static_call_fixup()
      objtool/x86: Fixup frame-pointer vs rethunk
      objtool/x86: Fix SRSO mess

Petr Machata (1):
      selftests: mirror_gre_changes: Tighten up the TTL test match

Petr Pavlu (1):
      x86/retpoline,kprobes: Fix position of thunk sections with CONFIG_LTO_CLANG

Pierre-Louis Bossart (1):
      ASoC: SOF: Intel: fix SoundWire/HDaudio mutual exclusion

Piotr Gardocki (1):
      iavf: fix FDIR rule fields masks validation

Prashanth K (1):
      usb: gadget: u_serial: Avoid spinlock recursion in __gs_console_push

Quan Nguyen (1):
      i2c: designware: Correct length byte validation logic

Radhey Shyam Pandey (1):
      net: macb: In ZynqMP resume always configure PS GTR for non-wakeup source

Raphael Gallais-Pou (1):
      drm/stm: ltdc: fix late dereference check

Russell Harmon via samba-technical (1):
      cifs: Release folio lock on fscache read hit.

Russell King (Oracle) (1):
      net: phy: fix IRQ-based wake-on-lan over hibernate / power off

Saaem Rizvi (1):
      drm/amd/display: Implement workaround for writing to OTG_PIXEL_RATE_DIV register

Sean Christopherson (1):
      x86/retpoline: Don't clobber RFLAGS during srso_safe_ret()

Sergey Senozhatsky (1):
      zsmalloc: allow only one active pool compaction context

Sherry Sun (1):
      tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32 platforms

Sishuai Gong (1):
      ipvs: fix racy memcpy in proc_do_sync_threshold

Song Yoong Siang (1):
      igc: read before write to SRRCTL register

Stefan Binding (1):
      ALSA: hda/realtek: Add quirks for HP G11 Laptops

Steve French (1):
      cifs: fix potential oops in cifs_oplock_break

Sumit Gupta (1):
      PCI: tegra194: Fix possible array out of bounds access

Suravee Suthikulpanit (1):
      iommu/amd: Introduce Disable IRTE Caching Support

Sweet Tea Dorminy (1):
      blk-crypto: dynamically allocate fallback profile

Tam Nguyen (1):
      i2c: designware: Handle invalid SMBus block data response length value

Thomas Zimmermann (1):
      fbdev/hyperv-fb: Do not set struct fb_info.apertures

Tim Huang (2):
      drm/amdgpu: skip fence GFX interrupts disable/enable for S0ix
      drm/amd/pm: skip the RLC stop when S0i3 suspend for SMU v13.0.4/11

Tony Lindgren (2):
      bus: ti-sysc: Flush posted write on enable before reset
      serial: 8250: Fix oops for port->pm on uart_change_pm()

Tuo Li (2):
      gfs2: Fix possible data races in gfs2_show_options()
      ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync()

Uday M Bhat (1):
      ASoC: Intel: sof_sdw: Add support for Rex soundwire

Ulf Hansson (1):
      cpuidle: psci: Extend information in log about OSI/PC mode

Umio Yasuno (1):
      drm/amdgpu/pm: fix throttle_status for other than MP1 11.0.7

Uwe Kleine-König (1):
      serial: stm32: Ignore return value of uart_remove_one_port() in .remove()

Venkata Prasad Potturu (2):
      ASoC: SOF: amd: Add pci revision id check
      ASoC: amd: vangogh: Add check for acp config flags in vangogh platform

Vincent Guittot (2):
      sched/fair: unlink misfit task from cpu overutilized
      sched/fair: Remove capacity inversion detection

Wander Lairson Costa (1):
      drm/qxl: fix UAF on handle creation

Winston Wen (1):
      cifs: fix session state check in reconnect to avoid use-after-free issue

Wolfram Sang (2):
      drm: rcar-du: remove R-Car H3 ES1.* workarounds
      virtio-mmio: don't break lifecycle of vm_dev

Xiang Yang (1):
      net: pcs: Add missing put_device call in miic_create

Xiaolei Wang (1):
      ARM: dts: imx: Set default tuning step for imx6sx usdhc

Xin Long (1):
      netfilter: set default timeout to 3 secs for sctp shutdown send and recv state

Xiubo Li (1):
      ceph: try to dump the msgs when decoding fails

Xu Yang (3):
      usb: chipidea: imx: don't request QoS for imx8ulp
      usb: chipidea: imx: add missing USB PHY DPDM wakeup setting
      ARM: dts: nxp/imx6sll: fix wrong property name in usbphy node

Yang Yingliang (1):
      mmc: wbsd: fix double mmc_free_host() in wbsd_init()

Yangtao Li (1):
      mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove

Yi Yang (1):
      tty: n_gsm: fix the UAF caused by race condition in gsm_cleanup_mux

Yibin Ding (1):
      mmc: block: Fix in_flight[issue_type] value error

Yicong Yang (1):
      i2c: hisi: Only handle the interrupt of the driver's transfer

Yogesh Hegde (1):
      arm64: dts: rockchip: Fix Wifi/Bluetooth on ROCK Pi 4 boards

Yuanjun Gong (1):
      fbdev: mmp: fix value check in mmphw_probe()

Yuechao Zhao (1):
      watchdog: sp5100_tco: support Hygon FCH/SCH (Server Controller Hub)

Yunfei Dong (1):
      media: v4l2-mem2mem: add lock to protect parameter num_rdy

Zev Weiss (1):
      soc: aspeed: uart-routing: Use __sysfs_match_string

Zhang Shurong (2):
      firewire: net: fix use after free in fwnet_finish_incoming_packet()
      ASoC: rt5665: add missed regulator_bulk_disable

Zhengchao Shao (3):
      xfrm: fix slab-use-after-free in decode_session6
      ip6_vti: fix slab-use-after-free in decode_session6
      ip_vti: fix potential slab-use-after-free in decode_session6

Zhengping Jiang (1):
      Bluetooth: L2CAP: Fix use-after-free

Ziyang Xuan (1):
      team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves

dengxiang (2):
      ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760
      ALSA: usb-audio: Add support for Mythware XA001AU capture and playback interfaces.

gaoxu (1):
      dma-remap: use kvmalloc_array/kvfree for larger dma memory remap

hackyzh002 (1):
      drm/amdgpu: Fix integer overflow in amdgpu_cs_pass1

hersen wu (2):
      drm/amd/display: save restore hdcp state when display is unplugged from mst hub
      drm/amd/display: phase3 mst hdcp for multiple displays

shanzhulig (1):
      drm/amdgpu: Fix potential fence use-after-free v2

stuarthayhurst (1):
      HID: logitech-hidpp: Add USB and Bluetooth IDs for the Logitech G915 TKL Keyboard

xiaoshoukui (1):
      btrfs: fix BUG_ON condition in btrfs_cancel_balance

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

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