tree 8c5149d082a6fc10c6b254951df9da716a3e5342
parent 79943f645174a5b606b294610e63854daa74cfac
parent 09df347cfd189774130f8ae8267324b97aaf868e
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1635930251 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1635930251 -0700

merge-upstream/v5.10.77 from branch/tag: upstream/v5.10.77 into branch: cos-5.10

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

Aleksander Jan Bajkowski (1):
      net: dsa: lantiq_gswip: fix register definition

Alex Deucher (1):
      drm/amdgpu/display: fix dependencies for DRM_AMD_DC_SI

Alexandre Ghiti (1):
      riscv: Fix asan-stack clang build

Alexey Denisov (1):
      lan743x: fix endianness when accessing descriptors

Andrew Lunn (4):
      phy: phy_ethtool_ksettings_get: Lock the phy for consistency
      phy: phy_ethtool_ksettings_set: Move after phy_start_aneg
      phy: phy_start_aneg: Add an unlocked version
      phy: phy_ethtool_ksettings_set: Lock the PHY while changing settings

Antoine Tenart (1):
      netfilter: ipvs: make global sysctl readonly in non-init netns

Arnd Bergmann (4):
      ARM: 9134/1: remove duplicate memcpy() definition
      ARM: 9138/1: fix link warning with XIP + frame-pointer
      ARM: 9139/1: kprobes: fix arch_init_kprobes() prototype
      ARM: 9141/1: only warn about XIP address when not compile testing

Benjamin Coddington (1):
      NFSD: Keep existing listeners on portlist error

Björn Töpel (1):
      riscv, bpf: Fix potential NULL dereference

Brendan Grieve (1):
      ALSA: usb-audio: Provide quirk for Sennheiser GSP670 Headset

Brendan Higgins (1):
      gcc-plugins/structleak: add makefile var for disabling structleak

Chanho Park (1):
      scsi: ufs: ufs-exynos: Correct timeout value setting registers

Chen Lu (1):
      riscv: fix misalgned trap vector base address

Christian König (1):
      drm/ttm: fix memleak in ttm_transfered_destroy

Christopher M. Riedl (1):
      powerpc64/idle: Fix SP offsets when saving GPRs

Clément Bœsch (1):
      arm64: dts: allwinner: h5: NanoPI Neo 2: Fix ethernet node

DENG Qingfang (1):
      net: dsa: mt7530: correct ds->num_ports

Dan Johansen (1):
      drm/panel: ilitek-ili9881c: Fix sync for Feixin K101-IM2BYL02 panel

Daniel Borkmann (1):
      bpf, test, cgroup: Use sk_{alloc,free} for test cases

Daniel Jordan (2):
      net/tls: Fix flipped sign in tls_err_abort() calls
      net/tls: Fix flipped sign in async_wait.err assignment

Dexuan Cui (1):
      scsi: core: Fix shost->cmd_per_lun calculation in scsi_add_host_with_dma()

Eugen Hristev (1):
      ARM: dts: at91: sama5d2_som1_ek: disable ISC node by default

Fabien Dessenne (1):
      pinctrl: stm32: use valid pin identifier in stm32_pinctrl_resume()

Filipe Manana (1):
      btrfs: deal with errors when checking if a dir entry exists during log replay

Florian Westphal (1):
      selftests: netfilter: remove stray bash debug line

Gaosheng Cui (1):
      audit: fix possible null-pointer dereference in audit_filter_rules

Gautham Ananthakrishna (1):
      ocfs2: fix race between searching chunks and release journal_head from buffer_head

Gerald Schaefer (1):
      dma-debug: fix sg checks in debug_dma_map_sg()

Greg Kroah-Hartman (2):
      Linux 5.10.76
      Linux 5.10.77

Guangbin Huang (2):
      net: hns3: reset DWRR of unused tc to zero
      net: hns3: add limit ets dwrr bandwidth cannot be 0

Guenter Roeck (2):
      xtensa: xtfpga: Try software restart before simulating CPU reset
      nios2: Make NIOS2_DTB_SOURCE_BOOL depend on !COMPILE_TEST

Haibo Chen (1):
      mmc: sdhci-esdhc-imx: clear the buffer_read_ready to reset standard tuning circuit

Halil Pasic (2):
      KVM: s390: clear kicked_mask before sleeping again
      KVM: s390: preserve deliverable_mask in __airqs_kick_single_vcpu

Helge Deller (1):
      parisc: math-emu: Fix fall-through warnings

Herve Codina (2):
      net: stmmac: add support for dwmac 3.40a
      ARM: dts: spear3xx: Fix gmac node

Ido Schimmel (1):
      mlxsw: pci: Recycle received packet upon allocation failure

Jaehoon Chung (1):
      mmc: dw_mmc: exynos: fix the finding clock sample value

Jan Beulich (1):
      xen/x86: prevent PVH type from getting clobbered

Jan Kara (1):
      ocfs2: fix data corruption after conversion from inline format

Janusz Dziedzic (1):
      cfg80211: correct bridge/4addr mode check

Jeff Layton (2):
      ceph: skip existing superblocks that are blocklisted or shut down when mounting
      ceph: fix handling of "meta" errors

Jim Quinlan (1):
      reset: brcmstb-rescal: fix incorrect polarity of status bit

Johan Hovold (2):
      mmc: vub300: fix control-message timeouts
      net: lan78xx: fix division by zero in send path

Johannes Berg (2):
      cfg80211: scan: fix RCU in cfg80211_add_nontrans_list()
      cfg80211: fix management registrations locking

Johannes Thumshirn (1):
      block: decode QUEUE_FLAG_HCTX_ACTIVE in debugfs output

Jonas Gorski (1):
      gpio: xgs-iproc: fix parsing of ngpios property

Jonathan Bell (1):
      xhci: add quirk for host controllers that don't update endpoint DCS

Joy Gu (1):
      scsi: qla2xxx: Fix a memory leak in an error path of qla2x00_process_els()

Juhee Kang (1):
      netfilter: xt_IDLETIMER: fix panic that occurs when timer_type has garbage value

Kai Vehmanen (1):
      ALSA: hda: avoid write to STATESTS if controller is in reset

Kamal Mostafa (1):
      io_uring: fix splice_fd_in checks backport typo

Kan Liang (1):
      perf/x86/msr: Add Sapphire Rapids CPU support

Krzysztof Kozlowski (1):
      nfc: port100: fix using -ERRNO as command type mask

Kurt Kanzenbach (1):
      net: stmmac: Fix E2E delay mechanism

Leonard Crestez (1):
      tcp: md5: Fix overlap between vrf and non-vrf keys

Lexi Shao (1):
      ARM: 9132/1: Fix __get_user_check failure with ARM KASAN images

Lin Ma (1):
      nfc: nci: fix the UAF of rf_conn_info object

Liu Jian (1):
      tcp_bpf: Fix one concurrency problem in the tcp_bpf_send_verdict function

Lorenz Bauer (1):
      selftests: bpf: fix backported ASSERT_FALSE

Lukas Bulwahn (1):
      elfcore: correct reference to CONFIG_UML

Marc Kleine-Budde (1):
      can: isotp: isotp_sendmsg(): fix return error on FC timeout on TX path

Marek Vasut (1):
      drm: mxsfb: Fix NULL pointer dereference crash on unload

Mark Zhang (1):
      RDMA/sa_query: Use strscpy_pad instead of memcpy to copy a string

Matthew Wilcox (Oracle) (1):
      vfs: check fd has read access in kernel_read_file_from_fd()

Max Filippov (1):
      xtensa: xtfpga: use CONFIG_USE_OF instead of CONFIG_OF

Max VA (1):
      tipc: fix size validations for the MSG_CRYPTO type

Miaohe Lin (3):
      mm, slub: fix mismatch between reconstructed freelist depth and cnt
      mm, slub: fix potential memoryleak in kmem_cache_open()
      mm, slub: fix incorrect memcg slab count for bulk free

Michael Chan (1):
      net: Prevent infinite while loop in skb_tx_hash()

Michael Ellerman (3):
      KVM: PPC: Book3S HV: Fix stack handling in idle_kvm_start_guest()
      KVM: PPC: Book3S HV: Make idle_kvm_start_guest() return 0 if it went to guest
      powerpc/idle: Don't corrupt back chain when going idle

Michal Swiatkowski (1):
      ice: fix getting UDP tunnel entry

Mike Christie (1):
      scsi: iscsi: Fix set_param() handling

Mike Marciniszyn (2):
      IB/qib: Protect from buffer overflow in struct qib_user_sdma_pkt fields
      IB/hfi1: Fix abba locking issue with sc_disable()

Nadav Amit (1):
      userfaultfd: fix a race between writeprotect and exit_mmap()

Nathan Lynch (1):
      powerpc/smp: do not decrement idle task preempt count in CPU offline

Naveen N. Rao (1):
      powerpc/bpf: Fix BPF_MOD when imm == 1

Nick Desaulniers (2):
      ARM: 9122/1: select HAVE_FUTEX_CMPXCHG
      ARM: 9133/1: mm: proc-macros: ensure *_tlb_fns are 4B aligned

Niklas Schnelle (1):
      s390/pci: fix zpci_zdev_put() on reserve

Nikolay Aleksandrov (1):
      net: bridge: mcast: use multicast_membership_interval for IGMPv3

Oliver Neukum (1):
      usbnet: sanity check for maxpacket

Paolo Bonzini (1):
      KVM: nVMX: promptly process interrupts delivered while in guest mode

Patrisious Haddad (1):
      RDMA/mlx5: Set user priority for DCT

Pavel Begunkov (1):
      io_uring: don't take uring_lock during iowq cancel

Pavel Skripkin (2):
      Revert "net: mdiobus: Fix memory leak in __mdiobus_register"
      net: batman-adv: fix error handling

Peng Li (1):
      net: hns3: disable sriov before unload hclge layer

Prashant Malani (1):
      platform/x86: intel_scu_ipc: Update timeout value in comment

Quanyang Wang (1):
      cgroup: Fix memory leak caused by missing cgroup_bpf_offline

Rafał Miłecki (1):
      Revert "pinctrl: bcm: ns: support updated DT binding as syscon subnode"

Rakesh Babu (1):
      octeontx2-af: Display all enabled PF VF rsrc_alloc entries.

Randy Dunlap (1):
      NIOS2: irqflags: rename a redefined register name

Rob Herring (1):
      arm: dts: vexpress-v2p-ca9: Fix the SMB unit-address

Robin Murphy (1):
      arm64: Avoid premature usercopy failure

Rongwei Wang (1):
      mm, thp: bail out early in collapse_file for writeback page

Sachi King (1):
      pinctrl: amd: disable and mask interrupts on probe

Sagi Grimberg (1):
      nvme-tcp: fix H2CData PDU send accounting (again)

Sasha Neftin (2):
      e1000e: Fix packet loss on Tiger Lake and later
      e1000e: Separate TGP board type from SPT

Shawn Guo (1):
      mmc: sdhci: Map more voltage level to SDHCI_POWER_330

Shengjiu Wang (1):
      ASoC: wm8960: Fix clock configuration on slave mode

Shunsuke Nakamura (1):
      libperf tests: Fix test_stat_cpu

Song Liu (1):
      perf script: Check session->header.env.arch before using it

Stephane Grosjean (1):
      can: peak_usb: pcan_usb_fd_decode_status(): fix back to ERROR_ACTIVE state notification

Stephen Suryaputra (1):
      ipv6: When forwarding count rx stats on the orig netdev

Steven Clarkson (1):
      ALSA: hda/realtek: Add quirk for Clevo PC50HS

Steven Rostedt (VMware) (1):
      tracing: Have all levels of checks prevent recursion

Takashi Iwai (2):
      ASoC: DAPM: Fix missing kctl change notifications
      ALSA: hda: intel: Allow repeatedly probing on codec configuration errors

Thelford Williams (1):
      drm/amdgpu: fix out of bounds write

Theodore Ts'o (1):
      ext4: fix possible UAF when remounting r/o a mmp-protected file system

Toke Høiland-Jørgensen (1):
      bpf: Fix potential race in tail call compatibility check

Tony Nguyen (1):
      ice: Add missing E810 device ids

Trevor Woerner (1):
      net: nxp: lpc_eth.c: avoid hang when bringing interface down

Uwe Kleine-König (1):
      Input: snvs_pwrkey - add clk handling

Valentin Vidic (1):
      ocfs2: mount fails with buffer overflow in strlen

Varun Prakash (3):
      nvmet-tcp: fix data digest pointer calculation
      nvme-tcp: fix data digest pointer calculation
      nvme-tcp: fix possible req->offset corruption

Vegard Nossum (2):
      lan78xx: select CRC32
      netfilter: Kconfig: use 'default y' instead of 'm' for bool config option

Vladimir Oltean (1):
      net: enetc: fix ethtool counter name for PM0_TERR

Wang Hai (1):
      usbnet: fix error return code in usbnet_probe()

Wenbin Mei (2):
      mmc: cqhci: clear HALT state after CQE enable
      mmc: mediatek: Move cqhci init behind ungate clock

Woody Lin (1):
      sched/scs: Reset the shadow stack when idle_task_exit

Xiaolong Huang (1):
      isdn: cpai: check ctr->cnr to avoid array index out of bound

Xin Long (8):
      netfilter: ip6t_rt: fix rt0_hdr parsing in rt_mt6
      net-sysfs: initialize uid and gid before calling net_ns_get_ownership
      sctp: use init_tag from inithdr for ABORT chunk
      sctp: fix the processing for INIT_ACK chunk
      sctp: fix the processing for COOKIE_ECHO chunk
      sctp: add vtag check in sctp_sf_violation
      sctp: add vtag check in sctp_sf_do_8_5_1_E_sa
      sctp: add vtag check in sctp_sf_ootb

Xu Kuohai (1):
      bpf: Fix error usage of map_fd and fdget() in generic_map_update_batch()

Yanfei Xu (1):
      net: mdiobus: Fix memory leak in __mdiobus_register

Yang Yingliang (1):
      regmap: Fix possible double-free in regcache_rbtree_exit()

Yoshihiro Shimoda (1):
      can: rcar_can: fix suspend/resume

Yufeng Mo (1):
      net: hns3: fix vf reset workqueue cannot exit

Yuiko Oshino (2):
      net: ethernet: microchip: lan743x: Fix driver crash when lan743x_pm_resume fails
      net: ethernet: microchip: lan743x: Fix dma allocation failure by using dma_set_mask_and_coherent

Yunsheng Lin (3):
      net: hns3: schedule the polling again when allocation fails
      net: hns3: fix the max tx size according to user manual
      net: hns3: fix for miscalculation of rx unused desc

Zhang Changzhong (2):
      can: j1939: j1939_xtp_rx_dat_one(): cancel session if receive TP.DT with error length
      can: j1939: j1939_xtp_rx_rts_session_new(): abort TP less than 9 bytes

Zheyu Ma (3):
      can: peak_pci: peak_pci_remove(): fix UAF
      isdn: mISDN: Fix sleeping function called from invalid context
      ata: sata_mv: Fix the error handling of mv_chip_id()

Ziyang Xuan (4):
      can: isotp: isotp_sendmsg(): add result check for wait_event_interruptible()
      can: j1939: j1939_tp_rxtimer(): fix errant alert in j1939_tp_rxtimer
      can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
      can: isotp: isotp_sendmsg(): fix TX buffer concurrent access in isotp_sendmsg()

BUG=b/204964453
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Updated the Linux kernel to v5.10.77.

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