1. Mar 07, 2020
  2. Mar 06, 2020
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · aeb542a1
      Linus Torvalds authored
      Merge misc fixes from Andrew Morton:
       "7 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        arch/Kconfig: update HAVE_RELIABLE_STACKTRACE description
        mm, hotplug: fix page online with DEBUG_PAGEALLOC compiled but not enabled
        mm/z3fold.c: do not include rwlock.h directly
        fat: fix uninit-memory access for partial initialized inode
        mm: avoid data corruption on CoW fault into PFN-mapped VMA
        mm: fix possible PMD dirty bit lost in set_pmd_migration_entry()
        mm, numa: fix bad pmd by atomically check for pmd_trans_huge when marking page tables prot_numa
      aeb542a1
    • Miroslav Benes's avatar
      arch/Kconfig: update HAVE_RELIABLE_STACKTRACE description · 140d7e88
      Miroslav Benes authored
      
      
      save_stack_trace_tsk_reliable() is not the only function providing the
      reliable stack traces anymore.  Architecture might define ARCH_STACKWALK
      which provides a newer stack walking interface and has
      arch_stack_walk_reliable() function.  Update the description accordingly.
      
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarMiroslav Benes <mbenes@suse.cz>
      Acked-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
      Link: http://lkml.kernel.org/r/20200120154042.9934-1-mbenes@suse.cz
      
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      140d7e88
    • Vlastimil Babka's avatar
      mm, hotplug: fix page online with DEBUG_PAGEALLOC compiled but not enabled · c87cbc1f
      Vlastimil Babka authored
      Commit cd02cf1a ("mm/hotplug: fix an imbalance with DEBUG_PAGEALLOC")
      fixed memory hotplug with debug_pagealloc enabled, where onlining a page
      goes through page freeing, which removes the direct mapping.  Some arches
      don't like when the page is not mapped in the first place, so
      generic_online_page() maps it first.  This is somewhat wasteful, but
      better than special casing page freeing fast paths.
      
      The commit however missed that DEBUG_PAGEALLOC configured doesn't mean
      it's actually enabled.  One has to test debug_pagealloc_enabled() since
      031bc574 ("mm/debug-pagealloc: make debug-pagealloc boottime
      configurable"), or alternatively debug_pagealloc_enabled_static() since
      8e57f8ac ("mm, debug_pagealloc: don't rely on static keys too early"),
      but this is not done.
      
      As a result, a s390 kernel with DEBUG_PAGEALLOC configured but not enabled
      will crash:
      
      Unable to handle kernel pointer dereference in virtual kernel address spac...
      c87cbc1f
    • Sebastian Andrzej Siewior's avatar
      mm/z3fold.c: do not include rwlock.h directly · a8198fed
      Sebastian Andrzej Siewior authored
      
      
      rwlock.h should not be included directly. Instead linux/splinlock.h
      should be included. One thing it does is to break the RT build.
      
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Vitaly Wool <vitaly.wool@konsulko.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Link: http://lkml.kernel.org/r/20200224133631.1510569-1-bigeasy@linutronix.de
      
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a8198fed
    • OGAWA Hirofumi's avatar
      fat: fix uninit-memory access for partial initialized inode · bc87302a
      OGAWA Hirofumi authored
      
      
      When get an error in the middle of reading an inode, some fields in the
      inode might be still not initialized.  And then the evict_inode path may
      access those fields via iput().
      
      To fix, this makes sure that inode fields are initialized.
      
      Reported-by: default avatar <syzbot+9d82b8de2992579da5d0@syzkaller.appspotmail.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarOGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
      Cc: <stable@vger.kernel.org>
      Link: http://lkml.kernel.org/r/871rqnreqx.fsf@mail.parknet.co.jp
      
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      bc87302a
    • Kirill A. Shutemov's avatar
      mm: avoid data corruption on CoW fault into PFN-mapped VMA · c3e5ea6e
      Kirill A. Shutemov authored
      
      
      Jeff Moyer has reported that one of xfstests triggers a warning when run
      on DAX-enabled filesystem:
      
      	WARNING: CPU: 76 PID: 51024 at mm/memory.c:2317 wp_page_copy+0xc40/0xd50
      	...
      	wp_page_copy+0x98c/0xd50 (unreliable)
      	do_wp_page+0xd8/0xad0
      	__handle_mm_fault+0x748/0x1b90
      	handle_mm_fault+0x120/0x1f0
      	__do_page_fault+0x240/0xd70
      	do_page_fault+0x38/0xd0
      	handle_page_fault+0x10/0x30
      
      The warning happens on failed __copy_from_user_inatomic() which tries to
      copy data into a CoW page.
      
      This happens because of race between MADV_DONTNEED and CoW page fault:
      
      	CPU0					CPU1
       handle_mm_fault()
         do_wp_page()
           wp_page_copy()
             do_wp_page()
      					madvise(MADV_DONTNEED)
      					  zap_page_range()
      					    zap_pte_range()
      					      ptep_get_and_clear_full()
      					      <TLB flush>
      	 __copy_from_user_inatomic()
      	 sees empty PTE and fails
      	 WARN_ON_ONCE(1)
      	 clear_page()
      
      The solution is to re-try __copy_from_user_inatomic() under PTL after
      checking that PTE is matches the orig_pte.
      
      The second copy attempt can still fail, like due to non-readable PTE, but
      there's nothing reasonable we can do about, except clearing the CoW page.
      
      Reported-by: default avatarJeff Moyer <jmoyer@redhat.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Tested-by: default avatarJeff Moyer <jmoyer@redhat.com>
      Cc: <stable@vger.kernel.org>
      Cc: Justin He <Justin.He@arm.com>
      Cc: Dan Williams <dan.j.williams@intel.com>
      Link: http://lkml.kernel.org/r/20200218154151.13349-1-kirill.shutemov@linux.intel.com
      
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c3e5ea6e
    • Huang Ying's avatar
      mm: fix possible PMD dirty bit lost in set_pmd_migration_entry() · 8a8683ad
      Huang Ying authored
      In set_pmd_migration_entry(), pmdp_invalidate() is used to change PMD
      atomically.  But the PMD is read before that with an ordinary memory
      reading.  If the THP (transparent huge page) is written between the PMD
      reading and pmdp_invalidate(), the PMD dirty bit may be lost, and cause
      data corruption.  The race window is quite small, but still possible in
      theory, so need to be fixed.
      
      The race is fixed via using the return value of pmdp_invalidate() to get
      the original content of PMD, which is a read/modify/write atomic
      operation.  So no THP writing can occur in between.
      
      The race has been introduced when the THP migration support is added in
      the commit 616b8371 ("mm: thp: enable thp migration in generic path").
      But this fix depends on the commit d52605d7
      
       ("mm: do not lose dirty
      and accessed bits in pmdp_invalidate()").  So it's easy to be backported
      after v4.16.  But the race window is really small, so it may be fine not
      to backport the fix at all.
      
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatar"Huang, Ying" <ying.huang@intel.com>
      Reviewed-by: default avatarZi Yan <ziy@nvidia.com>
      Reviewed-by: default avatarWilliam Kucharski <william.kucharski@oracle.com>
      Acked-by: default avatarKirill A. Shutemov <kirill.shutemov@linux.intel.com>
      Cc: <stable@vger.kernel.org>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Cc: Michal Hocko <mhocko@kernel.org>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Link: http://lkml.kernel.org/r/20200220075220.2327056-1-ying.huang@intel.com
      
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8a8683ad
    • Mel Gorman's avatar
      mm, numa: fix bad pmd by atomically check for pmd_trans_huge when marking page tables prot_numa · 8b272b3c
      Mel Gorman authored
      : A user reported a bug against a distribution kernel while running a
      : proprietary workload described as "memory intensive that is not swapping"
      : that is expected to apply to mainline kernels.  The workload is
      : read/write/modifying ranges of memory and checking the contents.  They
      : reported that within a few hours that a bad PMD would be reported followed
      : by a memory corruption where expected data was all zeros.  A partial
      : report of the bad PMD looked like
      :
      :   [ 5195.338482] ../mm/pgtable-generic.c:33: bad pmd ffff8888157ba008(000002e0396009e2)
      :   [ 5195.341184] ------------[ cut here ]------------
      :   [ 5195.356880] kernel BUG at ../mm/pgtable-generic.c:35!
      :   ....
      :   [ 5195.410033] Call Trace:
      :   [ 5195.410471]  [<ffffffff811bc75d>] change_protection_range+0x7dd/0x930
      :   [ 5195.410716]  [<ffffffff811d4be8>] change_prot_numa+0x18/0x30
      :   [ 5195.410918]  [<ffffffff810adefe>] task_numa_work+0x1fe/0x310
      :   [ 5195.411200]  [<ffffffff81098322>] task_work_run+0x72/0x90
      :   [ 5195.411246]  [<ffffffff81077139>] exit_to_usermode_loop+0x91/0xc2
      :   [ 5195.411494]  [<ffffffff81003a51>] prepare_exit_to_usermode+0x31/0x40
      :   [ 5195.411739]  [<ffffffff815e56af>] retint_user+0x8/0x10
      :
      : Decoding revealed that the PMD was a valid prot_numa PMD and the bad PMD
      : was a false detection.  The bug does not trigger if automatic NUMA
      : balancing or transparent huge pages is disabled.
      :
      : The bug is due a race in change_pmd_range between a pmd_trans_huge and
      : pmd_nond_or_clear_bad check without any locks held.  During the
      : pmd_trans_huge check, a parallel protection update under lock can have
      : cleared the PMD and filled it with a prot_numa entry between the transhuge
      : check and the pmd_none_or_clear_bad check.
      :
      : While this could be fixed with heavy locking, it's only necessary to make
      : a copy of the PMD on the stack during change_pmd_range and avoid races.  A
      : new helper is created for this as the check if quite subtle and the
      : existing similar helpful is not suitable.  This passed 154 hours of
      : testing (usually triggers between 20 minutes and 24 hours) without
      : detecting bad PMDs or corruption.  A basic test of an autonuma-intensive
      : workload showed no significant change in behaviour.
      
      Although Mel withdrew the patch on the face of LKML comment
      https://lkml.org/lkml/2017/4/10/922
      
       the race window aforementioned is
      still open, and we have reports of Linpack test reporting bad residuals
      after the bad PMD warning is observed.  In addition to that, bad
      rss-counter and non-zero pgtables assertions are triggered on mm teardown
      for the task hitting the bad PMD.
      
       host kernel: mm/pgtable-generic.c:40: bad pmd 00000000b3152f68(8000000d2d2008e7)
       ....
       host kernel: BUG: Bad rss-counter state mm:00000000b583043d idx:1 val:512
       host kernel: BUG: non-zero pgtables_bytes on freeing mm: 4096
      
      The issue is observed on a v4.18-based distribution kernel, but the race
      window is expected to be applicable to mainline kernels, as well.
      
      [akpm@linux-foundation.org: fix comment typo, per Rafael]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarRafael Aquini <aquini@redhat.com>
      Signed-off-by: default avatarMel Gorman <mgorman@techsingularity.net>
      Cc: <stable@vger.kernel.org>
      Cc: Zi Yan <zi.yan@cs.rutgers.edu>
      Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Cc: Michal Hocko <mhocko@suse.com>
      Link: http://lkml.kernel.org/r/20200216191800.22423-1-aquini@redhat.com
      
      
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      8b272b3c
    • Linus Torvalds's avatar
      Merge tag 'devprop-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · b0b8a945
      Linus Torvalds authored
      Pull device properties framework fix from Rafael Wysocki:
       "Revert a problematic commit from the 5.3 development cycle (Brendan
        Higgins)"
      
      * tag 'devprop-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Revert "software node: Simplify software_node_release() function"
      b0b8a945
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · fe67d182
      Linus Torvalds authored
      Pull ACPI documentation fix from Rafael Wysocki:
       "Fix Sphinx format warinings in an ACPI fan document added recently
        (Randy Dunlap)"
      
      * tag 'acpi-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        Documentation/admin-guide/acpi: fix fan_performance_states.rst warnings
      fe67d182
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-03-06' of git://anongit.freedesktop.org/drm/drm · ba0ae9ac
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly fixes round, looks like a few people woke up, got a bunch of
        fixes across the drivers. Bit bigger than I'd like but they all seem
        fine and hopefully it quiets down now.
      
        sun4i, kirin, mediatek and exynos on the ARM side. virtio-gpu and core
        have some mmap fixes, and there is a dma-buf leak. one ttm fence leak
        is also fixed.
      
        Otherwise it's mostly amdgpu and i915.
      
        One of the i915 fixes is for a very long latency I was seeing (using
        latencytop) running gnome-shell locally when using firefox and eating
        nearly all my RAM, it really helps with desktop responsiveness esp
        when firefox is chewing a lot.
      
        dma-buf:
         - fix memory leak
      
        core:
         - shmem object mmap fix.
      
        ttm:
         - Fix fence leak in ttm_buffer_object_transfer().
      
        amdgpu:
         - Gfx reset fix for gfx9, 10
         - Fix for gfx10
         - DP MST fix
         - DCC fix
         - Renoir power fixes
         - Navi power fix
      
        i915:
         - Break up long lists of object reclaim with cond_resched()
         - PSR probe fix
         - TGL workarounds
         - Selftest return value fix
         - Drop timeline mutex while waiting for retirement
         - Wait for OA configuration completion before writes to OA buffer
      
        virtio:
         - Fix resource id creation race in virtio.
         - mmap fixes
      
        sun4i:
         - Fixes for sun4i VI layer format support.
      
        kirin:
         - kirin: Revert "Fix for hikey620 display offset problem"
      
        exynos:
         - fix a kernel oops problem in case that driver is loaded as module.
         - fix a regulator warning issue when I2C DDC adapter cannot be gathered.
         - print out an error message only in error case excepting -EPROBE_DEFER.
      
        mediatek:
         - overlay, cursor and gce fixes"
      `
      
      * tag 'drm-fixes-2020-03-06' of git://anongit.freedesktop.org/drm/drm: (38 commits)
        drm/amdgpu/display: navi1x copy dcn watermark clock settings to smu resume from s3 (v2)
        drm/amd/powerplay: map mclk to fclk for COMBINATIONAL_BYPASS case
        drm/amd/powerplay: fix pre-check condition for setting clock range
        drm/amd/display: fix dcc swath size calculations on dcn1
        drm/amd/display: Clear link settings on MST disable connector
        drm/amdgpu: disable 3D pipe 1 on Navi1x
        drm/amdgpu: clean wptr on wb when gpu recovery
        drm: kirin: Revert "Fix for hikey620 display offset problem"
        drm/i915/gt: Drop the timeline->mutex as we wait for retirement
        drm/i915/perf: Reintroduce wait on OA configuration completion
        drm/sun4i: Fix DE2 VI layer format support
        drm/sun4i: Add separate DE3 VI layer formats
        drm/sun4i: de2/de3: Remove unsupported VI layer formats
        drm/i915/selftests: Fix return in assert_mmap_offset()
        drm/i915: Protect i915_request_await_start from early waits
        drm/i915/tgl: Add Wa_1608008084
        drm/i915/tgl: Add Wa_22010178259:tgl
        drm/i915: Program MBUS with rmw during initialization
        drm/i915/psr: Force PSR probe only after full initialization
        drm/i915/gem: Break up long lists of object reclaim
        ...
      ba0ae9ac
    • Rafael J. Wysocki's avatar
      Merge branch 'acpi-doc' · 86dfa5be
      Rafael J. Wysocki authored
      * acpi-doc:
        Documentation/admin-guide/acpi: fix fan_performance_states.rst warnings
      86dfa5be
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.6-2020-03-05' of... · 2ac4853e
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.6-2020-03-05' of git://people.freedesktop.org/~agd5f/linux
      
       into drm-fixes
      
      amd-drm-fixes-5.6-2020-03-05:
      
      amdgpu:
      - Gfx reset fix for gfx9, 10
      - Fix for gfx10
      - DP MST fix
      - DCC fix
      - Renoir power fixes
      - Navi power fix
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexdeucher@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200305185957.4268-1-alexander.deucher@amd.com
      2ac4853e
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2020-03-05' of... · 64c3fd53
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2020-03-05' of git://anongit.freedesktop.org/drm/drm-intel
      
       into drm-fixes
      
      drm/i915 fixes for v5.6-rc5:
      - Break up long lists of object reclaim with cond_resched()
      - PSR probe fix
      - TGL workarounds
      - Selftest return value fix
      - Drop timeline mutex while waiting for retirement
      - Wait for OA configuration completion before writes to OA buffer
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/87eeu7nl6z.fsf@intel.com
      64c3fd53
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2020-03-05' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · 26398db1
      Dave Airlie authored
      
      
      Fixes for v5.6.rc5:
      - dma-buf fix memory leak
      - Fix resource id creation race in virtio.
      - Various mmap fixes.
      - Fix fence leak in ttm_buffer_object_transfer().
      - Fixes for sun4i VI layer format support.
      - kirin: Revert "Fix for hikey620 display offset problem"
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/56de63c7-0cdf-5805-e268-44944af7fef2@linux.intel.com
      26398db1
    • Linus Torvalds's avatar
      Merge tag 'hyperv-fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux · 9f65ed5f
      Linus Torvalds authored
      Pull Hyper-V update from Wei Liu:
      
       - Update MAINTAINERS file for Hyper-V
      
       - One cleanup patch for Hyper-V HID driver
      
      * tag 'hyperv-fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux:
        HID: hyperv: NULL check before some freeing functions is not needed.
        Hyper-V: add myself as a maintainer
        Hyper-V: Drop Sasha Levin from the Hyper-V maintainers
      9f65ed5f
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-5.6-rc5' of git://git.infradead.org/users/vkoul/slave-dma · 6fd145da
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
       "A bunch of driver fixes:
      
         - Doc updates to clean warnings for dmaengine
      
         - Fixes for newly added Intel idxd driver
      
         - More fixes for newly added TI k3-udma driver
      
         - Fixes for IMX and Tegra drivers"
      
      * tag 'dmaengine-fix-5.6-rc5' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: imx-sdma: Fix the event id check to include RX event for UART6
        dmaengine: tegra-apb: Prevent race conditions of tasklet vs free list
        dmaengine: tegra-apb: Fix use-after-free
        dmaengine: imx-sdma: fix context cache
        dmaengine: idxd: wq size configuration needs to check global max size
        dmaengine: idxd: sysfs input of wq incorrect wq type should return error
        dmaengine: coh901318: Fix a double lock bug in dma_tc_handle()
        dmaengine: idxd: correct reserved token calculation
        dmaengine: ti: k3-udma: Fix terminated transfer handling
        dmaengine: ti: k3-udma: Use the channel direction in pause/resume functions
        dmaengine: ti: k3-udma: Use the TR counter helper for slave_sg and cyclic
        dmaengine: ti: k3-udma: Move the TR counter calculation to helper function
        dmaengine: ti: k3-udma: Workaround for RX teardown with stale data in peer
        dmaengine: ti: k3-udma: Use ktime/usleep_range based TX completion check
        dmaengine: idxd: Fix error handling in idxd_wq_cdev_dev_setup()
        dmaengine: doc: fix warnings/issues of client.rst
        dmaengine: idxd: fix runaway module ref count on device driver bind
      6fd145da
  3. Mar 05, 2020
    • Hersen Wu's avatar
      drm/amdgpu/display: navi1x copy dcn watermark clock settings to smu resume from s3 (v2) · 09ed6ba4
      Hersen Wu authored
      
      
       This interface is for dGPU Navi1x. Linux dc-pplib interface depends
       on window driver dc implementation.
      
       For Navi1x, clock settings of dcn watermarks are fixed. the settings
       should be passed to smu during boot up and resume from s3.
       boot up: dc calculate dcn watermark clock settings within dc_create,
       dcn20_resource_construct, then call pplib functions below to pass
       the settings to smu:
       smu_set_watermarks_for_clock_ranges
       smu_set_watermarks_table
       navi10_set_watermarks_table
       smu_write_watermarks_table
      
       For Renoir, clock settings of dcn watermark are also fixed values.
       dc has implemented different flow for window driver:
       dc_hardware_init / dc_set_power_state
       dcn10_init_hw
       notify_wm_ranges
       set_wm_ranges
      
       For Linux
       smu_set_watermarks_for_clock_ranges
       renoir_set_watermarks_table
       smu_write_watermarks_table
      
       dc_hardware_init -> amdgpu_dm_init
       dc_set_power_state --> dm_resume
      
       therefore, linux dc-pplib interface of navi10/12/14 is different
       from that of Renoir.
      
      v2: add missing unlock in error case
      
      Signed-off-by: default avatarHersen Wu <hersenxs.wu@amd.com>
      Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      09ed6ba4
    • Prike Liang's avatar
      drm/amd/powerplay: map mclk to fclk for COMBINATIONAL_BYPASS case · ab65a371
      Prike Liang authored
      
      
      When hit COMBINATIONAL_BYPASS the mclk will be bypass and can export
      fclk frequency to user usage.
      
      Signed-off-by: default avatarPrike Liang <Prike.Liang@amd.com>
      Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      ab65a371
    • Prike Liang's avatar
      drm/amd/powerplay: fix pre-check condition for setting clock range · 80381d40
      Prike Liang authored
      
      
      This fix will handle some MP1 FW issue like as mclk dpm table in renoir has a reverse
      dpm clock layout and a zero frequency dpm level as following case.
      
      cat pp_dpm_mclk
      0: 1200Mhz
      1: 1200Mhz
      2: 800Mhz
      3: 0Mhz
      
      Signed-off-by: default avatarPrike Liang <Prike.Liang@amd.com>
      Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      80381d40
    • Josip Pavic's avatar
      drm/amd/display: fix dcc swath size calculations on dcn1 · a0275dfc
      Josip Pavic authored
      
      
      [Why]
      Swath sizes are being calculated incorrectly. The horizontal swath size
      should be the product of block height, viewport width, and bytes per
      element, but the calculation uses viewport height instead of width. The
      vertical swath size is similarly incorrectly calculated. The effect of
      this is that we report the wrong DCC caps.
      
      [How]
      Use viewport width in the horizontal swath size calculation and viewport
      height in the vertical swath size calculation.
      
      Signed-off-by: default avatarJosip Pavic <Josip.Pavic@amd.com>
      Reviewed-by: default avatarAric Cyr <Aric.Cyr@amd.com>
      Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      a0275dfc
    • Bhawanpreet Lakha's avatar
      drm/amd/display: Clear link settings on MST disable connector · 5ac7fd2f
      Bhawanpreet Lakha authored
      
      
      [Why]
      If we have a single MST display and we disconnect it, we dont disable that
      link. This causes the old link settings to still exist
      
      Now on a replug for MST we think its a link loss and will try to reallocate
      mst payload which will fail, throwing warning below.
      
      [  129.374192] [drm] Failed to updateMST allocation table forpipe idx:0
      [  129.374206] ------------[ cut here ]------------
      [  129.374284] WARNING: CPU: 14 PID: 1710 at
      drivers/gpu/drm/amd/amdgpu/../dal-dev/dc/core/dc_link.c:3153
      dc_link_allocate_mst_payload+0x1f7/0x220 [amdgpu]
      
      [  129.374285] Modules linked in: amdgpu(OE) amd_iommu_v2 gpu_sched ttm
      drm_kms_helper drm fb_sys_fops syscopyarea sysfillrect sysimgblt
      binfmt_misc nls_iso8859_1 edac_mce_amd snd_hda_codec_realtek
      snd_hda_codec_generic ledtrig_audio kvm snd_hda_codec_hdmi snd_hda_intel
      snd_intel_nhlt snd_hda_codec irqbypass snd_hda_core snd_hwdep snd_pcm
      snd_seq_midi snd_seq_midi_event snd_rawmidi crct10dif_pclmul snd_seq
      crc32_pclmul ghash_clmulni_intel snd_seq_device snd_timer snd aesni_intel
      eeepc_wmi crypto_simd asus_wmi joydev cryptd sparse_keymap input_leds
      soundcore video glue_helper wmi_bmof mxm_wmi k10temp ccp mac_hid
      sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4
      hid_generic usbhid hid igb i2c_algo_bit ahci dca i2c_piix4 libahci
      gpio_amdpt wmi gpio_generic
      
      [  129.374318] CPU: 14 PID: 1710 Comm: kworker/14:2 Tainted: G        W  OE     5.4.0-rc7bhawan+ #480
      [  129.374318] Hardware name: System manufacturer System Product Name/PRIME X370-PRO, BIOS 0515 03/30/2017
      [  129.374397] Workqueue: events dm_irq_work_func [amdgpu]
      [  129.374468] RIP: 0010:dc_link_allocate_mst_payload+0x1f7/0x220 [amdgpu]
      [  129.374470] Code: 52 20 e8 1c 63 ad f4 48 8b 5d d0 65 48 33 1c 25 28 00
      00 00 b8 01 00 00 00 75 16 48 8d 65 d8 5b 41 5c 41 5d 41 5e 41 5f 5d c3
      <0f> 0b e9 fa fe ff ff e8 ed 5b d6 f3 41 0f b6 b6 c4 02 00 00 48 c7
      [  129.374471] RSP: 0018:ffff9f9141e7fcc0 EFLAGS: 00010246
      [  129.374472] RAX: 0000000000000000 RBX: ffff91ef0762f800 RCX: 0000000000000000
      [  129.374473] RDX: 0000000000000005 RSI: ffffffffc0c4a988 RDI: 0000000000000004
      [  129.374474] RBP: ffff9f9141e7fd10 R08: 0000000000000005 R09: 0000000000000000
      [  129.374475] R10: 0000000000000002 R11: 0000000000000001 R12: ffff91eebd510c00
      [  129.374475] R13: ffff91eebd510e58 R14: ffff91ef052c01b8 R15: 0000000000000006
      [  129.374476] FS:  0000000000000000(0000) GS:ffff91ef0ef80000(0000) knlGS:0000000000000000
      [  129.374477] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  129.374478] CR2: 000055623ea01d50 CR3: 0000000408a8c000 CR4: 00000000003406e0
      [  129.374479] Call Trace:
      [  129.374550]  dc_link_reallocate_mst_payload+0x12e/0x150 [amdgpu]
      [  129.374617]  dc_link_handle_hpd_rx_irq+0x6d4/0x6e0 [amdgpu]
      [  129.374693]  handle_hpd_rx_irq+0x77/0x310 [amdgpu]
      [  129.374768]  dm_irq_work_func+0x53/0x70 [amdgpu]
      [  129.374774]  process_one_work+0x1fd/0x3f0
      [  129.374776]  worker_thread+0x255/0x410
      [  129.374778]  kthread+0x121/0x140
      [  129.374780]  ? process_one_work+0x3f0/0x3f0
      [  129.374781]  ? kthread_park+0x90/0x90
      [  129.374785]  ret_from_fork+0x22/0x40
      
      [How]
      when we disable MST we should clear the cur link settings (lane_count=0 is
      good enough). This will cause us to not reallocate payloads earlier than
      expected and not throw the warning
      
      Signed-off-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
      Reviewed-by: default avatarHersen Wu <hersenxs.wu@amd.com>
      Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      5ac7fd2f
    • Tianci.Yin's avatar
      drm/amdgpu: disable 3D pipe 1 on Navi1x · 194bcf35
      Tianci.Yin authored
      
      
      [why]
      CP firmware decide to skip setting the state for 3D pipe 1 for Navi1x as there
      is no use case.
      
      [how]
      Disable 3D pipe 1 on Navi1x.
      
      Reviewed-by: default avatarFeifei Xu <Feifei.Xu@amd.com>
      Reviewed-by: default avatarMonk Liu <monk.liu@amd.com>
      Signed-off-by: default avatarTianci.Yin <tianci.yin@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      194bcf35
    • Lucas Tanure's avatar
      HID: hyperv: NULL check before some freeing functions is not needed. · 5313b2a5
      Lucas Tanure authored
      
      
      Fix below warnings reported by coccicheck:
      drivers/hid/hid-hyperv.c:197:2-7: WARNING: NULL check before some freeing functions is not needed.
      drivers/hid/hid-hyperv.c:211:2-7: WARNING: NULL check before some freeing functions is not needed.
      
      Signed-off-by: default avatarLucas Tanure <tanure@linux.com>
      Reviewed-by: default avatarMichael Kelley <mikelley@microsoft.com>
      Reviewed-by: default avatarWei Liu <wei.liu@kernel.org>
      Acked-by: default avatarBenjamin Tissoires <benjamin.tissoires@redhat.com>
      Signed-off-by: default avatarWei Liu <wei.liu@kernel.org>
      5313b2a5
    • Wei Liu's avatar
      Hyper-V: add myself as a maintainer · 8c1b0767
      Wei Liu authored
      
      
      Signed-off-by: default avatarWei Liu <wei.liu@kernel.org>
      Acked-by: default avatarK. Y. Srinivasan <kys@microsoft.com>
      8c1b0767
    • Sasha Levin's avatar
      acb4d372
    • Yintian Tao's avatar
      drm/amdgpu: clean wptr on wb when gpu recovery · 2ab7e274
      Yintian Tao authored
      
      
      The TDR will be randomly failed due to compute ring
      test failure. If the compute ring wptr & 0x7ff(ring_buf_mask)
      is 0x100 then after map mqd the compute ring rptr will be
      synced with 0x100. And the ring test packet size is also 0x100.
      Then after invocation of amdgpu_ring_commit, the cp will not
      really handle the packet on the ring buffer because rptr is equal to wptr.
      
      Signed-off-by: default avatarYintian Tao <yttao@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Reviewed-by: default avatarMonk Liu <Monk.Liu@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      2ab7e274
    • Dave Airlie's avatar
      Merge tag 'mediatek-drm-fixes-5.6' of... · 70b8ea1a
      Dave Airlie authored
      Merge tag 'mediatek-drm-fixes-5.6' of https://github.com/ckhu-mediatek/linux.git-tags
      
       into drm-fixes
      
      Mediatek DRM Fixes for Linux 5.6
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: CK Hu <ck.hu@mediatek.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1583373069.364.4.camel@mtksdaap41
      70b8ea1a
    • Dave Airlie's avatar
      Merge tag 'exynos-drm-fixes-for-v5.6-rc5' of... · 755d7a92
      Dave Airlie authored
      Merge tag 'exynos-drm-fixes-for-v5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos
      
       into drm-fixes
      
      Three fixups
      - fix a kernel oops problem in case that driver is loaded as module.
      - fix a regulator warning issue when I2C DDC adapter cannot be gathered.
      - print out an error message only in error case excepting -EPROBE_DEFER.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Inki Dae <inki.dae@samsung.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/1583126752-30477-1-git-send-email-inki.dae@samsung.com
      755d7a92
    • Brendan Higgins's avatar
      Revert "software node: Simplify software_node_release() function" · 7589238a
      Brendan Higgins authored
      This reverts commit 3df85a1a
      
      .
      
      The reverted commit says "It's possible to release the node ID
      immediately when fwnode_remove_software_node() is called, no need to
      wait for software_node_release() with that." However, releasing the node
      ID before waiting for software_node_release() to be called causes the
      node ID to be released before the kobject and the underlying sysfs
      entry; this means there is a period of time where a sysfs entry exists
      that is associated with an unallocated node ID.
      
      Once consequence of this is that there is a race condition where it is
      possible to call fwnode_create_software_node() with no parent node
      specified (NULL) and have it fail with -EEXIST because the node ID that
      was assigned is still associated with a stale sysfs entry that hasn't
      been cleaned up yet.
      
      Although it is difficult to reproduce this race condition under normal
      conditions, it can be deterministically reproduced with the following
      minconfig on UML:
      
      CONFIG_KUNIT_DRIVER_PE_TEST=y
      CONFIG_DEBUG_KERNEL=y
      CONFIG_DEBUG_OBJECTS=y
      CONFIG_DEBUG_OBJECTS_TIMERS=y
      CONFIG_DEBUG_KOBJECT_RELEASE=y
      CONFIG_KUNIT=y
      
      Running the tests with this configuration causes the following failure:
      
      <snip>
      kobject: 'node0' ((____ptrval____)): kobject_release, parent (____ptrval____) (delayed 400)
      	ok 1 - pe_test_uints
      sysfs: cannot create duplicate filename '/kernel/software_nodes/node0'
      CPU: 0 PID: 28 Comm: kunit_try_catch Not tainted 5.6.0-rc3-next-20200227 #14
      <snip>
      kobject_add_internal failed for node0 with -EEXIST, don't try to register things with the same name in the same directory.
      kobject: 'node0' ((____ptrval____)): kobject_release, parent (____ptrval____) (delayed 100)
      	# pe_test_uint_arrays: ASSERTION FAILED at drivers/base/test/property-entry-test.c:123
      	Expected node is not error, but is: -17
      	not ok 2 - pe_test_uint_arrays
      <snip>
      
      Reported-by: default avatarHeidi Fahim <heidifahim@google.com>
      Signed-off-by: default avatarBrendan Higgins <brendanhiggins@google.com>
      Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
      Cc: 5.3+ <stable@vger.kernel.org> # 5.3+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      7589238a
    • Linus Torvalds's avatar
      Merge tag 'for-5.6/dm-fixes' of... · 776e49e8
      Linus Torvalds authored
      Merge tag 'for-5.6/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper fixes from Mike Snitzer:
      
       - Fix request-based DM's congestion_fn and actually wire it up to the
         bdi.
      
       - Extend dm-bio-record to track additional struct bio members needed by
         DM integrity target.
      
       - Fix DM core to properly advertise that a device is suspended during
         unload (between the presuspend and postsuspend hooks). This change is
         a prereq for related DM integrity and DM writecache fixes. It
         elevates DM integrity's 'suspending' state tracking to DM core.
      
       - Four stable fixes for DM integrity target.
      
       - Fix crash in DM cache target due to incorrect work item cancelling.
      
       - Fix DM thin metadata lockdep warning that was introduced during 5.6
         merge window.
      
       - Fix DM zoned target's chunk work refcounting that regressed during
         recent conversion to refcount_t.
      
       - Bump the minor version for DM core and all target versions that have
         seen interface changes or important fixes during the 5.6 cycle.
      
      * tag 'for-5.6/dm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
        dm: bump version of core and various targets
        dm: fix congested_fn for request-based device
        dm integrity: use dm_bio_record and dm_bio_restore
        dm bio record: save/restore bi_end_io and bi_integrity
        dm zoned: Fix reference counter initial value of chunk works
        dm writecache: verify watermark during resume
        dm: report suspended device during destroy
        dm thin metadata: fix lockdep complaint
        dm cache: fix a crash due to incorrect work item cancelling
        dm integrity: fix invalid table returned due to argument count mismatch
        dm integrity: fix a deadlock due to offloading to an incorrect workqueue
        dm integrity: fix recalculation when moving from journal mode to bitmap mode
      776e49e8
  4. Mar 04, 2020