Merge branch 'akpm' (patches from Andrew)
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 27 Oct 2018 02:33:41 +0000 (19:33 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 27 Oct 2018 02:33:41 +0000 (19:33 -0700)
Merge updates from Andrew Morton:

 - a few misc things

 - ocfs2 updates

 - most of MM

* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (132 commits)
  hugetlbfs: dirty pages as they are added to pagecache
  mm: export add_swap_extent()
  mm: split SWP_FILE into SWP_ACTIVATED and SWP_FS
  tools/testing/selftests/vm/map_fixed_noreplace.c: add test for MAP_FIXED_NOREPLACE
  mm: thp: relocate flush_cache_range() in migrate_misplaced_transhuge_page()
  mm: thp: fix mmu_notifier in migrate_misplaced_transhuge_page()
  mm: thp: fix MADV_DONTNEED vs migrate_misplaced_transhuge_page race condition
  mm/kasan/quarantine.c: make quarantine_lock a raw_spinlock_t
  mm/gup: cache dev_pagemap while pinning pages
  Revert "x86/e820: put !E820_TYPE_RAM regions into memblock.reserved"
  mm: return zero_resv_unavail optimization
  mm: zero remaining unavailable struct pages
  tools/testing/selftests/vm/gup_benchmark.c: add MAP_HUGETLB option
  tools/testing/selftests/vm/gup_benchmark.c: add MAP_SHARED option
  tools/testing/selftests/vm/gup_benchmark.c: allow user specified file
  tools/testing/selftests/vm/gup_benchmark.c: fix 'write' flag usage
  mm/gup_benchmark.c: add additional pinning methods
  mm/gup_benchmark.c: time put_page()
  mm: don't raise MEMCG_OOM event due to failed high-order allocation
  mm/page-writeback.c: fix range_cyclic writeback vs writepages deadlock
  ...

1  2 
Documentation/admin-guide/kernel-parameters.txt
arch/powerpc/include/asm/book3s/32/pgtable.h
arch/powerpc/include/asm/book3s/64/pgtable.h
arch/powerpc/include/asm/nohash/32/pgtable.h
arch/powerpc/include/asm/nohash/64/pgtable.h

index e61dd3ae5bc0408140d1fcac987e6fbca6505e6c,796d026da37eea0001457444aea8bcdaead562db..c21d3370463366c812167b29a8b9e2a6c5d62ddd
@@@ -309,14 -219,8 +309,8 @@@ static inline pte_t ptep_get_and_clear(
  static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr,
                                      pte_t *ptep)
  {
 -      pte_update(ptep, (_PAGE_RW | _PAGE_HWWRITE), _PAGE_RO);
 +      pte_update(ptep, _PAGE_RW, 0);
  }
- static inline void huge_ptep_set_wrprotect(struct mm_struct *mm,
-                                          unsigned long addr, pte_t *ptep)
- {
-       ptep_set_wrprotect(mm, addr, ptep);
- }
  
  static inline void __ptep_set_access_flags(struct vm_area_struct *vma,
                                           pte_t *ptep, pte_t entry,
index f7b129a8305469a96080f2b77f533deede912f27,6c82b9660c552218f5504bfe81a493b3dba74cc0..3ffb0ff5a03833207d186aa5ee49dcf577ad9a72
@@@ -295,17 -244,8 +295,11 @@@ static inline pte_t ptep_get_and_clear(
  static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr,
                                      pte_t *ptep)
  {
 -      pte_update(ptep, (_PAGE_RW | _PAGE_HWWRITE), _PAGE_RO);
 +      unsigned long clr = ~pte_val(pte_wrprotect(__pte(~0)));
 +      unsigned long set = pte_val(pte_wrprotect(__pte(0)));
 +
 +      pte_update(ptep, clr, set);
  }
- static inline void huge_ptep_set_wrprotect(struct mm_struct *mm,
-                                          unsigned long addr, pte_t *ptep)
- {
-       ptep_set_wrprotect(mm, addr, ptep);
- }
  
  static inline void __ptep_set_access_flags(struct vm_area_struct *vma,
                                           pte_t *ptep, pte_t entry,