)]}'
{
  "commit": "34d8bd4d165d6d9289315df460368e68ac15a6cd",
  "tree": "163f2bdc4fe3d757fbcfa7121d30675de40e7170",
  "parents": [
    "cb4505b1551bbe5553b118524f9ec846bb78a5d4"
  ],
  "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": "Mon Dec 06 18:25:55 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/208511138\nTEST\u003dpresubmit\nRELEASE_NOTE\u003dFixed CVE-2021-4002 in linux-kernel\n\nChange-Id: Ib544906434b7e3f58d6871cafb8b821fa8b7dd6c\nReviewed-on: https://cos-review.googlesource.com/c/third_party/kernel/+/25829\nTested-by: Cusky Presubmit Bot \u003cpresubmit@cos-infra-prod.iam.gserviceaccount.com\u003e\nReviewed-by: Vaibhav Rustagi \u003cvaibhavrustagi@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "95a32749af4daab8e9ecea3cf334c75eee5a3c80",
      "old_mode": 33188,
      "old_path": "mm/hugetlb.c",
      "new_id": "20da6ede7704145a73fe681aaae0ade4ce213d06",
      "new_mode": 33188,
      "new_path": "mm/hugetlb.c"
    }
  ]
}
