)]}'
{
  "commit": "06a71f02001324c668d7aac3d08c3861cc33db68",
  "tree": "a1981f65d8c467cea0994957ec279aab68be3cb7",
  "parents": [
    "434b666bcf378384a458db2789a5d7e021a4d443"
  ],
  "author": {
    "name": "Nadav Amit",
    "email": "namit@vmware.com",
    "time": "Sun Nov 21 12:40:07 2021 -0800"
  },
  "committer": {
    "name": "Anil Altinay",
    "email": "aaltinay@google.com",
    "time": "Wed Dec 01 18:01:16 2021 +0000"
  },
  "message": "hugetlbfs: flush TLBs correctly after huge_pmd_unshare\n\ncommit a4a118f2eead1d6c49e00765de89878288d4b890 upstream.\n\nWhen __unmap_hugepage_range() calls to huge_pmd_unshare() succeed, a TLB\nflush is missing.  This TLB flush must be performed before releasing the\ni_mmap_rwsem, in order to prevent an unshared PMDs page from being\nreleased and reused before the TLB flush took place.\n\nArguably, a comprehensive solution would use mmu_gather interface to\nbatch the TLB flushes and the PMDs page release, however it is not an\neasy solution: (1) try_to_unmap_one() and try_to_migrate_one() also call\nhuge_pmd_unshare() and they cannot use the mmu_gather interface; and (2)\ndeferring the release of the page reference for the PMDs page until\nafter i_mmap_rwsem is dropeed can confuse huge_pmd_unshare() into\nthinking PMDs are shared when they are not.\n\nFix __unmap_hugepage_range() by adding the missing TLB flush, and\nforcing a flush when unshare is successful.\n\nFixes: 24669e58477e (\"hugetlb: use mmu_gather instead of a temporary linked list for accumulating pages)\" # 3.6\nSigned-off-by: Nadav Amit \u003cnamit@vmware.com\u003e\nReviewed-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nBUG\u003db/208511120\nTEST\u003dpresubmit\nRELEASE_NOTE\u003dFixed CVE-2021-4002 in linux-kernel\n\nChange-Id: I8d26160569a9003a6094daf2f6e7c4eec2a4da5a\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/25707\nReviewed-by: Vaibhav Rustagi \u003cvaibhavrustagi@google.com\u003e\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "6e92ab0ae070fa2645c0208b93992b4a8e55c0fd",
      "old_mode": 33188,
      "old_path": "mm/hugetlb.c",
      "new_id": "fce705fc2848acd9b1437322ad4cda3db6806abd",
      "new_mode": 33188,
      "new_path": "mm/hugetlb.c"
    }
  ]
}
