Merge tag 'mm-hotfixes-stable-2022-12-02' of git://git.kernel.org/pub/scm/linux/kerne...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 2 Dec 2022 21:39:38 +0000 (13:39 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 2 Dec 2022 21:39:38 +0000 (13:39 -0800)
Pull misc hotfixes from Andrew Morton:
 "15 hotfixes,  11 marked cc:stable.

  Only three or four of the latter address post-6.0 issues, which is
  hopefully a sign that things are converging"

* tag 'mm-hotfixes-stable-2022-12-02' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
  revert "kbuild: fix -Wimplicit-function-declaration in license_is_gpl_compatible"
  Kconfig.debug: provide a little extra FRAME_WARN leeway when KASAN is enabled
  drm/amdgpu: temporarily disable broken Clang builds due to blown stack-frame
  mm/khugepaged: invoke MMU notifiers in shmem/file collapse paths
  mm/khugepaged: fix GUP-fast interaction by sending IPI
  mm/khugepaged: take the right locks for page table retraction
  mm: migrate: fix THP's mapcount on isolation
  mm: introduce arch_has_hw_nonleaf_pmd_young()
  mm: add dummy pmd_young() for architectures not having it
  mm/damon/sysfs: fix wrong empty schemes assumption under online tuning in damon_sysfs_set_schemes()
  tools/vm/slabinfo-gnuplot: use "grep -E" instead of "egrep"
  nilfs2: fix NULL pointer dereference in nilfs_palloc_commit_free_entry()
  hugetlb: don't delete vma_lock in hugetlb MADV_DONTNEED processing
  madvise: use zap_page_range_single for madvise dontneed
  mm: replace VM_WARN_ON to pr_warn if the node is offline with __GFP_THISNODE

1  2 
arch/loongarch/include/asm/pgtable.h
lib/Kconfig.debug

@@@ -349,17 -349,13 +349,17 @@@ static inline pte_t pte_mkclean(pte_t p
  
  static inline pte_t pte_mkdirty(pte_t pte)
  {
 -      pte_val(pte) |= (_PAGE_DIRTY | _PAGE_MODIFIED);
 +      pte_val(pte) |= _PAGE_MODIFIED;
 +      if (pte_val(pte) & _PAGE_WRITE)
 +              pte_val(pte) |= _PAGE_DIRTY;
        return pte;
  }
  
  static inline pte_t pte_mkwrite(pte_t pte)
  {
 -      pte_val(pte) |= (_PAGE_WRITE | _PAGE_DIRTY);
 +      pte_val(pte) |= _PAGE_WRITE;
 +      if (pte_val(pte) & _PAGE_MODIFIED)
 +              pte_val(pte) |= _PAGE_DIRTY;
        return pte;
  }
  
@@@ -459,9 -455,7 +459,9 @@@ static inline int pmd_write(pmd_t pmd
  
  static inline pmd_t pmd_mkwrite(pmd_t pmd)
  {
 -      pmd_val(pmd) |= (_PAGE_WRITE | _PAGE_DIRTY);
 +      pmd_val(pmd) |= _PAGE_WRITE;
 +      if (pmd_val(pmd) & _PAGE_MODIFIED)
 +              pmd_val(pmd) |= _PAGE_DIRTY;
        return pmd;
  }
  
@@@ -484,12 -478,11 +484,13 @@@ static inline pmd_t pmd_mkclean(pmd_t p
  
  static inline pmd_t pmd_mkdirty(pmd_t pmd)
  {
 -      pmd_val(pmd) |= (_PAGE_DIRTY | _PAGE_MODIFIED);
 +      pmd_val(pmd) |= _PAGE_MODIFIED;
 +      if (pmd_val(pmd) & _PAGE_WRITE)
 +              pmd_val(pmd) |= _PAGE_DIRTY;
        return pmd;
  }
  
+ #define pmd_young pmd_young
  static inline int pmd_young(pmd_t pmd)
  {
        return !!(pmd_val(pmd) & _PAGE_ACCESSED);
diff --combined lib/Kconfig.debug
@@@ -399,6 -399,7 +399,7 @@@ config FRAME_WAR
        default 2048 if GCC_PLUGIN_LATENT_ENTROPY
        default 2048 if PARISC
        default 1536 if (!64BIT && XTENSA)
+       default 1280 if KASAN && !64BIT
        default 1024 if !64BIT
        default 2048 if 64BIT
        help
@@@ -1874,14 -1875,8 +1875,14 @@@ config NETDEV_NOTIFIER_ERROR_INJEC
          If unsure, say N.
  
  config FUNCTION_ERROR_INJECTION
 -      def_bool y
 +      bool "Fault-injections of functions"
        depends on HAVE_FUNCTION_ERROR_INJECTION && KPROBES
 +      help
 +        Add fault injections into various functions that are annotated with
 +        ALLOW_ERROR_INJECTION() in the kernel. BPF may also modify the return
 +        value of theses functions. This is useful to test error paths of code.
 +
 +        If unsure, say N
  
  config FAULT_INJECTION
        bool "Fault-injection framework"