1. Sep 26, 2020
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-09-25' of git://anongit.freedesktop.org/drm/drm · 574ec42e
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Fairly quiet, a couple of i915 fixes, one dma-buf fix, one vc4 and two
        sun4i changes
      
        dma-buf:
         - Single null pointer deref fix
      
        i915:
         - Fix selftest reference to stack data out of scope
         - Fix GVT null pointer dereference
      
        vc4:
         - fill asoc card owner
      
        sun4i:
         - program secondary CSC correctly"
      
      * tag 'drm-fixes-2020-09-25' of git://anongit.freedesktop.org/drm/drm:
        drm/i915/selftests: Push the fake iommu device from the stack to data
        dmabuf: fix NULL pointer dereference in dma_buf_release()
        drm/i915/gvt: Fix port number for BDW on EDID region setup
        drm/sun4i: mixer: Extend regmap max_register
        drm/sun4i: sun8i-csc: Secondary CSC register correction
        drm/vc4/vc4_hdmi: fill ASoC card owner
      574ec42e
  2. Sep 25, 2020
  3. Sep 24, 2020
    • Linus Torvalds's avatar
      mm: fix misplaced unlock_page in do_wp_page() · be068f29
      Linus Torvalds authored
      Commit 09854ba9 ("mm: do_wp_page() simplification") reorganized all
      the code around the page re-use vs copy, but in the process also moved
      the final unlock_page() around to after the wp_page_reuse() call.
      
      That normally doesn't matter - but it means that the unlock_page() is
      now done after releasing the page table lock.  Again, not a big deal,
      you'd think.
      
      But it turns out that it's very wrong indeed, because once we've
      released the page table lock, we've basically lost our only reference to
      the page - the page tables - and it could now be free'd at any time.  We
      do hold the mmap_sem, so no actual unmap() can happen, but madvise can
      come in and a MADV_DONTNEED will zap the page range - and free the page.
      
      So now the page may be free'd just as we're unlocking it, which in turn
      will usually trigger a "Bad page state" error in the freeing path.  To
      make matters more confusing, by the time the debug code prints out the
      page state, the unlock has typically completed and everything looks fine
      again.
      
      This all doesn't happen in any normal situations, but it does trigger
      with the dirtyc0w_child LTP test.  And it seems to trigger much more
      easily (but not expclusively) on s390 than elsewhere, probably because
      s390 doesn't do the "batch pages up for freeing after the TLB flush"
      that gives the unlock_page() more time to complete and makes the race
      harder to hit.
      
      Fixes: 09854ba9 ("mm: do_wp_page() simplification")
      Link: https://lore.kernel.org/lkml/a46e9bbef2ed4e17778f5615e818526ef848d791.camel@redhat.com/
      Link: https://lore.kernel.org/linux-mm/c41149a8-211e-390b-af1d-d5eee690fecb@linux.alibaba.com/
      
      
      Reported-by: default avatarQian Cai <cai@redhat.com>
      Reported-by: default avatarAlex Shi <alex.shi@linux.alibaba.com>
      Bisected-and-analyzed-by: default avatarGerald Schaefer <gerald.schaefer@linux.ibm.com>
      Tested-by: default avatarGerald Schaefer <gerald.schaefer@linux.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      be068f29
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.9-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · c9c9e6a4
      Linus Torvalds authored
      Pull bootconfig fixes from Steven Rostedt:
       "A couple of fixes for bootconfig.
      
        Masami discovered two bugs which this fixes and he added tests to
        cover these issues.
      
         - Fix a bug that breaks bootconfig tree nodes
      
         - Fix a bug that does not truncate whitespace properly
      
         - Add tests to cover the above two cases"
      
      * tag 'trace-v5.9-rc5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        tools/bootconfig: Add testcase for tailing space
        tools/bootconfig: Add testcases for repeated key with brace
        lib/bootconfig: Fix to remove tailing spaces after value
        lib/bootconfig: Fix a bug of breaking existing tree nodes
      c9c9e6a4
    • Linus Torvalds's avatar
      Merge tag 'for-5.9/dm-fixes-2' of... · a969324f
      Linus Torvalds authored
      Merge tag 'for-5.9/dm-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - DM core fix for incorrect double bio splitting. Keep "fixing" this
         because past attempts didn't fully appreciate the liability relative
         to recursive bio splitting. This fix limits DM's bio splitting to a
         single method and does _not_ use blk_queue_split() for normal IO.
      
       - DM crypt Documentation updates for features added during 5.9 merge.
      
      * tag 'for-5.9/dm-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm crypt: document encrypted keyring key option
        dm crypt: document new no_workqueue flags
        dm: fix comment in dm_process_bio()
        dm: fix bio splitting and its bio completion order for regular IO
      a969324f
    • Linus Torvalds's avatar
      Merge tag 'for-5.9-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · bffac4b5
      Linus Torvalds authored
      Pull btrfs fixes from David Sterba:
       "syzkaller started to hit us with reports, here's a fix for one type
        (stack overflow when printing checksums on read error).
      
        The other patch is a fix for sysfs object, we have a test for that and
        it leads to a crash."
      
      * tag 'for-5.9-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: fix put of uninitialized kobject after seed device delete
        btrfs: fix overflow when copying corrupt csums for a message
      bffac4b5
    • Linus Torvalds's avatar
      mm: move the copy_one_pte() pte_present check into the caller · 79a1971c
      Linus Torvalds authored
      
      
      This completes the split of the non-present and present pte cases by
      moving the check for the source pte being present into the single
      caller, which also means that we clearly separate out the very different
      return value case for a non-present pte.
      
      The present pte case currently always succeeds.
      
      This is a pure code re-organization with no semantic change: the intent
      is to make it much easier to add a new return case to the present pte
      case for when we do early COW at page table copy time.
      
      This was split out from the previous commit simply to make it easy to
      visually see that there were no semantic changes from this code
      re-organization.
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      79a1971c
    • Linus Torvalds's avatar
      mm: split out the non-present case from copy_one_pte() · df3a57d1
      Linus Torvalds authored
      
      
      This is a purely mechanical split of the copy_one_pte() function.  It's
      not immediately obvious when looking at the diff because of the
      indentation change, but the way to see what is going on in this commit
      is to use the "-w" flag to not show pure whitespace changes, and you see
      how the first part of copy_one_pte() is simply lifted out into a
      separate function.
      
      And since the non-present case is marked unlikely, don't make the new
      function be inlined.  Not that gcc really seems to care, since it looks
      like it will inline it anyway due to the whole "single callsite for
      static function" logic.  In fact, code generation with the function
      split is almost identical to before.  But not marking it inline is the
      right thing to do.
      
      This is pure prep-work and cleanup for subsequent changes.
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      df3a57d1
  4. Sep 23, 2020
  5. Sep 22, 2020