tree 53166a80d6521de13de84632df889a6342fa0126
parent 33062a7560d88197fba995dcec796b85b6829a73
parent fcfbdfe9626edd5bf00c732e093eed249ecdbfa1
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1626080156 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1626080156 -0700

merge-upstream/v4.19.197 from branch/tag: upstream/v4.19.197 into branch: main-R81-12871.B-cos-4.19

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

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

Alper Gun (1):
      KVM: SVM: Call SEV Guest Decommission if ASID binding fails

Anson Huang (1):
      ARM: dts: imx6qdl-sabresd: Remove incorrect power supply assignment

Christian König (1):
      drm/nouveau: fix dma_address check for CPU/GPU sync

David Rientjes (1):
      KVM: SVM: Periodically schedule when unregistering regions on destroy

Greg Kroah-Hartman (1):
      Linux 4.19.197

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

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

Juergen Gross (1):
      xen/events: reset active flag for lateeoi events later

ManYi Li (1):
      scsi: sr: Return appropriate error code when disk is ejected

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

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()

Tahsin Erdogan (1):
      ext4: eliminate bogus error in ext4_data_block_valid_rcu()

Tony Lindgren (3):
      clocksource/drivers/timer-ti-dm: Add clockevent and clocksource support
      clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue
      clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940

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

afzal mohammed (1):
      ARM: OMAP: replace setup_irq() by request_irq()

BUG=b/193383444
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Updated the Linux kernel to v4.19.197.

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