tree cede94351180f3df3c2a0461a4fdf1b82e7a09ce
parent 80e9fca11bc240d38237dca0c7bd8850be6d91a4
parent 82ffbc138a1fc9076f55e626bd8352fc9a2ca9e9
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1625130686 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1625130687 -0700

merge-upstream/v5.4.129 from branch/tag: upstream/v5.4.129 into branch: main-R85-13310.B-cos-5.4

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

Alex Shi (1):
      mm: add VM_WARN_ON_ONCE_PAGE() macro

Arnd Bergmann (1):
      ARM: 9081/1: fix gcc-10 thumb2-kernel regression

Austin Kim (1):
      net: ethtool: clear heap allocations for ethtool function

Christian König (2):
      drm/nouveau: wait for moving fence after pinning v2
      drm/radeon: wait for moving fence after pinning

Du Cheng (1):
      cfg80211: call cfg80211_leave_ocb when switching away from OCB

Eric Dumazet (3):
      inet: annotate date races around sk->sk_txhash
      net/packet: annotate accesses to po->bind
      net/packet: annotate accesses to po->ifindex

Eric Snowberg (2):
      certs: Add EFI_CERT_X509_GUID support for dbx entries
      certs: Move load_system_certificate_list to a common function

Esben Haabendal (2):
      net: ll_temac: Add memory-barriers for TX BD access
      net: ll_temac: Avoid ndo_start_xmit returning NETDEV_TX_BUSY

Fabien Dessenne (1):
      pinctrl: stm32: fix the reported number of GPIO lines per bank

Fuad Tabba (1):
      KVM: selftests: Fix kvm_check_cap() assertion

Guillaume Ranquet (3):
      dmaengine: mediatek: free the proper desc in desc_free handler
      dmaengine: mediatek: do not issue a new desc if one is still current
      dmaengine: mediatek: use GFP_NOWAIT instead of GFP_ATOMIC in prep_dma

Haibo Chen (1):
      spi: spi-nxp-fspi: move the register operation after the clock enable

Hugh Dickins (16):
      mm/thp: fix __split_huge_pmd_locked() on shmem migration entry
      mm/thp: make is_huge_zero_pmd() safe and quicker
      mm/thp: try_to_unmap() use TTU_SYNC for safe splitting
      mm/thp: fix vma_address() if virtual address below file offset
      mm/thp: unmap_mapping_page() to fix THP truncate_cleanup_page()
      mm: page_vma_mapped_walk(): use page for pvmw->page
      mm: page_vma_mapped_walk(): settle PageHuge on entry
      mm: page_vma_mapped_walk(): use pmde for *pvmw->pmd
      mm: page_vma_mapped_walk(): prettify PVMW_MIGRATION block
      mm: page_vma_mapped_walk(): crossing page table boundary
      mm: page_vma_mapped_walk(): add a level of indentation
      mm: page_vma_mapped_walk(): use goto instead of while (1)
      mm: page_vma_mapped_walk(): get vma_address_end() earlier
      mm/thp: fix page_vma_mapped_walk() if THP mapped by ptes
      mm/thp: another PVMW_SYNC fix in page_vma_mapped_walk()
      mm, futex: fix shared futex pgoff on shmem huge page

Johan Hovold (1):
      i2c: robotfuzz-osif: fix control-request directions

Johannes Berg (3):
      mac80211: remove warning in ieee80211_get_sband()
      mac80211_hwsim: drop pending frames on stop
      mac80211: drop multicast fragments

Jue Wang (1):
      mm/thp: fix page_address_in_vma() on file THP tails

Kees Cook (4):
      r8152: Avoid memcpy() over-reading of ETH_SS_STATS
      sh_eth: Avoid memcpy() over-reading of ETH_SS_STATS
      r8169: Avoid memcpy() over-reading of ETH_SS_STATS
      net: qed: Fix memcpy() overflow of qed_dcbx_params()

Miaohe Lin (2):
      mm/rmap: remove unneeded semicolon in page_not_mapped()
      mm/rmap: use page_not_mapped in try_to_unmap()

Mikel Rychliski (1):
      PCI: Add AMD RS690 quirk to enable 64-bit DMA

Mimi Zohar (1):
      module: limit enabling module.sig_enforce

Nathan Chancellor (1):
      MIPS: generic: Update node names to avoid unit addresses

Nayna Jain (2):
      certs: Add wrapper function to check blacklisted binary hash
      x86/efi: move common keyring handler functions to new file

Neil Armstrong (1):
      mmc: meson-gx: use memcpy_to/fromio for dram-access-quirk

Nicholas Piggin (1):
      KVM: do not allow mapping valid but non-reference-counted pages

Nick Desaulniers (1):
      arm64: link with -z norelro for LLD or aarch64-elf

Pavel Skripkin (2):
      net: caif: fix memory leak in ldisc_open
      nilfs2: fix memory leak in nilfs_sysfs_delete_device_group

Peter Zijlstra (1):
      recordmcount: Correct st_shndx handling

Petr Mladek (2):
      kthread_worker: split code for canceling the delayed work timer
      kthread: prevent deadlock when kthread_mod_delayed_work() races with kthread_cancel_delayed_work_sync()

Praneeth Bajjuri (1):
      net: phy: dp83867: perform soft reset and retain established link

Rafael J. Wysocki (1):
      Revert "PCI: PM: Do not read power state in pci_enable_device_flags()"

Sami Tolvanen (1):
      kbuild: add CONFIG_LD_IS_LLD

Sasha Levin (1):
      Linux 5.4.129

Xu Yu (1):
      mm, thp: use head page in __migration_entry_wait()

Yang Shi (1):
      mm: thp: replace DEBUG_VM BUG with VM_WARN when unmap fails for split

Yifan Zhang (2):
      Revert "drm/amdgpu/gfx9: fix the doorbell missing when in CGPG issue."
      Revert "drm/amdgpu/gfx10: enlarge CP_MEC_DOORBELL_RANGE_UPPER to cover full doorbell."

Yu Kuai (1):
      dmaengine: zynqmp_dma: Fix PM reference leak in zynqmp_dma_alloc_chan_resourc()

Zheng Yongjun (2):
      net: ipv4: Remove unneed BUG() function
      ping: Check return value of function 'ping_queue_rcv_skb'

Zou Wei (1):
      dmaengine: rcar-dmac: Fix PM reference leak in rcar_dmac_probe()

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

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