1. 17 Jul, 2020 5 commits
    • Linus Torvalds's avatar
      Merge tag 'regmap-fix-v5.8-rc5' of... · ee436955
      Linus Torvalds authored
      Merge tag 'regmap-fix-v5.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into master
      
      Pull regmap fixes from Mark Brown:
       "A couple of substantial fixes here, one from Doug which fixes the
        debugfs code for MMIO regmaps (fortunately not the common case) and
        one from Marc fixing lookups of multiple regmaps for the same device
        (a very unusual case).
      
        There's also a fix for Kconfig to ensure we enable SoundWire properly"
      
      * tag 'regmap-fix-v5.8-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: debugfs: Don't sleep while atomic for fast_io regmaps
        regmap: add missing dependency on SoundWire
        regmap: dev_get_regmap_match(): fix string comparison
      ee436955
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid into master · 60541fb6
      Linus Torvalds authored
      Pull HID fixes from Jiri Kosina:
      
       - linked list race condition fix in hid-steam driver from Rodrigo Rivas
         Costa
      
       - assorted deviceID-specific quirks and other small cosmetic cleanups
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: logitech-hidpp: avoid repeated "multiplier = " log messages
        HID: logitech: Use HIDPP_RECEIVER_INDEX instead of 0xff
        HID: quirks: Ignore Simply Automated UPB PIM
        HID: apple: Disable Fn-key key-re-mapping on clone keyboards
        MAINTAINERS: update uhid and hid-wiimote entry
        HID: steam: fixes race in handling device list.
        HID: magicmouse: do not set up autorepeat
        HID: alps: support devices with report id 2
        HID: quirks: Always poll Obins Anne Pro 2 keyboard
        HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
      60541fb6
    • Linus Torvalds's avatar
      Merge tag 'sound-5.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound into master · a238ac2d
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "No surprise here, just a few device-specific small fixes: two fixes
        for USB LINE6 and one for USB-audio drivers wrt syzkaller fuzzer
        issues, while the rest are all HD-audio Realtek quirks"
      
      * tag 'sound-5.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: hda/realtek - fixup for yet another Intel reference board
        ALSA: hda/realtek - Enable Speaker for ASUS UX563
        ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534
        ALSA: hda/realtek: Enable headset mic of Acer TravelMate B311R-31 with ALC256
        ALSA: hda/realtek: enable headset mic of ASUS ROG Zephyrus G14(G401) series with ALC289
        ALSA: hda/realtek - change to suitable link model for ASUS platform
        ALSA: usb-audio: Fix race against the error recovery URB submission
        ALSA: line6: Sync the pending work cancel at disconnection
        ALSA: line6: Perform sanity check for each URB creation
      a238ac2d
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-07-17-1' of git://anongit.freedesktop.org/drm/drm into master · 88825726
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly fixes pull, big bigger than I'd normally like, but they are
        fairly scattered and small individually.
      
        The vmwgfx one is a black screen regression, otherwise the largest is
        an MST encoder fix for amdgpu which results in a WARN in some cases,
        and a scattering of i915 fixes.
      
        I'm tracking two regressions at the moment that hopefully we get
        nailed down this week for rc7.
      
        dma-buf:
         - sleeping atomic fix
      
        amdgpu:
         - Fix a race condition with KIQ
         - Preemption fix
         - Fix handling of fake MST encoders
         - OLED panel fix
         - Handle allocation failure in stream construction
         - Renoir SMC fix
         - SDMA 5.x fix
      
        i915:
         - FBC w/a stride fix
         - Fix use-after-free fix on module reload
         - Ignore irq enabling on the virtual engines to fix device sleep
         - Use GTT when saving/restoring engine GPR
         - Fix selftest sort function
      
        vmwgfx:
         - black screen fix
      
        aspeed:
         - fbcon init warn fix"
      
      * tag 'drm-fixes-2020-07-17-1' of git://anongit.freedesktop.org/drm/drm:
        drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr()
        drm/amdgpu/powerplay: Modify SMC message name for setting power profile mode
        drm/amd/display: handle failed allocation during stream construction
        drm/amd/display: OLED panel backlight adjust not work with external display connected
        drm/amdgpu/display: create fake mst encoders ahead of time (v4)
        drm/amdgpu: fix preemption unit test
        drm/amdgpu/gfx10: fix race condition for kiq
        drm/i915: Recalculate FBC w/a stride when needed
        drm/i915: Move cec_notifier to intel_hdmi_connector_unregister, v2.
        drm/i915/gt: Only swap to a random sibling once upon creation
        drm/i915/gt: Ignore irq enabling on the virtual engines
        drm/i915/perf: Use GTT when saving/restoring engine GPR
        drm/i915/selftests: Fix compare functions provided for sorting
        drm/vmwgfx: fix update of display surface when resolution changes
        dmabuf: use spinlock to access dmabuf->name
        drm/aspeed: Call drm_fbdev_generic_setup after drm_dev_register
      88825726
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.8-2020-07-15' of... · adbe8a3c
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.8-2020-07-15' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.8-2020-07-15:
      
      amdgpu:
      - Fix a race condition with KIQ
      - Preemption fix
      - Fix handling of fake MST encoders
      - OLED panel fix
      - Handle allocation failure in stream construction
      - Renoir SMC fix
      - SDMA 5.x fix
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexdeucher@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200715213914.3994-1-alexander.deucher@amd.com
      adbe8a3c
  2. 16 Jul, 2020 17 commits
  3. 15 Jul, 2020 9 commits
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v5.8-2' of... · 994e99a9
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v5.8-2' of git://git.infradead.org/linux-platform-drivers-x86 into master
      
      Pull x86 platform driver fixes from Andriy Shevchenko:
       "Small fixes for this cycle:
      
         - Fix procfs handling in Thinkpad ACPI driver
      
         - Fix battery management on new ASUS laptops
      
         - New IDs (Sapphire Rapids) in ISST tool"
      
      * tag 'platform-drivers-x86-v5.8-2' of git://git.infradead.org/linux-platform-drivers-x86:
        platform/x86: asus-wmi: allow BAT1 battery name
        platform/x86: ISST: Add new PCI device ids
        platform/x86: thinkpad_acpi: Revert "Use strndup_user() in dispatch_proc_write()"
      994e99a9
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-5.8-rc6' of... · 0665a4e9
      Linus Torvalds authored
      Merge tag 'dmaengine-fix-5.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine into master
      
      Pull dmaengine fixes from Vinod Koul:
      
       - update dmaengine tree location to kernel.org
      
       - dmatest fix for completing threads
      
       - driver fixes for k3dma, fsl-dma, idxd, ,tegra, and few other drivers
      
      * tag 'dmaengine-fix-5.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: (21 commits)
        dmaengine: ioat setting ioat timeout as module parameter
        dmaengine: fsl-edma: fix wrong tcd endianness for big-endian cpu
        dmaengine: dmatest: stop completed threads when running without set channel
        dmaengine: fsl-edma-common: correct DSIZE_32BYTE
        dmaengine: dw: Initialize channel before each transfer
        dmaengine: idxd: fix misc interrupt handler thread unmasking
        dmaengine: idxd: cleanup workqueue config after disabling
        dmaengine: tegra210-adma: Fix runtime PM imbalance on error
        dmaengine: mcf-edma: Fix NULL pointer exception in mcf_edma_tx_handler
        dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler
        dmaengine: fsl-edma: Add lockdep assert for exported function
        dmaengine: idxd: fix hw descriptor fields for delta record
        dmaengine: ti: k3-udma: add missing put_device() call in of_xudma_dev_get()
        dmaengine: sh: usb-dmac: set tx_result parameters
        dmaengine: ti: k3-udma: Fix delayed_work usage for tx drain workaround
        dmaengine: idxd: fix cdev locking for open and release
        dmaengine: imx-sdma: Fix: Remove 'always true' comparison
        MAINTAINERS: switch dmaengine tree to kernel.org
        dmaengine: ti: k3-udma: Fix the running channel handling in alloc_chan_resources
        dmaengine: ti: k3-udma: Fix cleanup code for alloc_chan_resources
        ...
      0665a4e9
    • Wei Yongjun's avatar
      keys: asymmetric: fix error return code in software_key_query() · 6cbba1f9
      Wei Yongjun authored
      Fix to return negative error code -ENOMEM from kmalloc() error handling
      case instead of 0, as done elsewhere in this function.
      
      Fixes: f1774cb8 ("X.509: parse public key parameters from x509 for akcipher")
      Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6cbba1f9
    • David Howells's avatar
      afs: Fix interruption of operations · 811f04ba
      David Howells authored
      The afs filesystem driver allows unstarted operations to be cancelled by
      signal, but most of these can easily be restarted (mkdir for example).  The
      primary culprits for reproducing this are those applications that use
      SIGALRM to display a progress counter.
      
      File lock-extension operation is marked uninterruptible as we have a
      limited time in which to do it, and the release op is marked
      uninterruptible also as if we fail to unlock a file, we'll have to wait 20
      mins before anyone can lock it again.
      
      The store operation logs a warning if it gets interruption, e.g.:
      
      	kAFS: Unexpected error from FS.StoreData -4
      
      because it's run from the background - but it can also be run from
      fdatasync()-type things.  However, store options aren't marked
      interruptible at the moment.
      
      Fix this in the following ways:
      
       (1) Mark store operations as uninterruptible.  It might make sense to
           relax this for certain situations, but I'm not sure how to make sure
           that background store ops aren't affected by signals to foreground
           processes that happen to trigger them.
      
       (2) In afs_get_io_locks(), where we're getting the serialisation lock for
           talking to the fileserver, return ERESTARTSYS rather than EINTR
           because a lot of the operations (e.g. mkdir) are restartable if we
           haven't yet started sending the op to the server.
      
      Fixes: e49c7b2f ("afs: Build an abstraction around an "operation" concept")
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      811f04ba
    • Vasiliy Kupriakov's avatar
      platform/x86: asus-wmi: allow BAT1 battery name · 9a33e375
      Vasiliy Kupriakov authored
      The battery on my laptop ASUS TUF Gaming FX706II is named BAT1.
      This patch allows battery extension to load.
      Signed-off-by: default avatarVasiliy Kupriakov <rublag-ns@yandex.ru>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      9a33e375
    • Srinivas Pandruvada's avatar
      platform/x86: ISST: Add new PCI device ids · e1eea3f8
      Srinivas Pandruvada authored
      Added new PCI device ids for supporting mailbox and MMIO interface for
      Sapphire Rapids.
      Signed-off-by: default avatarSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      e1eea3f8
    • Andy Shevchenko's avatar
      platform/x86: thinkpad_acpi: Revert "Use strndup_user() in dispatch_proc_write()" · e2e90804
      Andy Shevchenko authored
      This reverts commit 35d13c7a.
      
      This broke procfs interface due to neglecting the fact that
      the strings are not coming NULL terminated.
      
      Revert the change till we will have a better clean up.
      
      Fixes: 35d13c7a ("platform/x86: thinkpad_acpi: Use strndup_user() in dispatch_proc_write()")
      Reported-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
      e2e90804
    • Enric Balletbo i Serra's avatar
      Revert "thermal: mediatek: fix register index error" · a8f62f18
      Enric Balletbo i Serra authored
      This reverts commit eb9aecd9
      
      The above patch is supposed to fix a register index error on mt2701. It
      is not clear if the problem solved is a hang or just an invalid value
      returned, my guess is the second. The patch introduces, though, a new
      hang on MT8173 device making them unusable. So, seems reasonable, revert
      the patch because introduces a worst issue.
      
      The reason I send a revert instead of trying to fix the issue for MT8173
      is because the information needed to fix the issue is in the datasheet
      and is not public. So I am not really able to fix it.
      
      Fixes the following bug when CONFIG_MTK_THERMAL is set on MT8173
      devices.
      
      [    2.222488] Unable to handle kernel paging request at virtual address ffff8000125f5001
      [    2.230421] Mem abort info:
      [    2.233207]   ESR = 0x96000021
      [    2.236261]   EC = 0x25: DABT (current EL), IL = 32 bits
      [    2.241571]   SET = 0, FnV = 0
      [    2.244623]   EA = 0, S1PTW = 0
      [    2.247762] Data abort info:
      [    2.250640]   ISV = 0, ISS = 0x00000021
      [    2.254473]   CM = 0, WnR = 0
      [    2.257544] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041850000
      [    2.264251] [ffff8000125f5001] pgd=000000013ffff003, pud=000000013fffe003, pmd=000000013fff9003, pte=006800001100b707
      [    2.274867] Internal error: Oops: 96000021 [#1] PREEMPT SMP
      [    2.280432] Modules linked in:
      [    2.283483] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.7.0-rc6+ #162
      [    2.289914] Hardware name: Google Elm (DT)
      [    2.294003] pstate: 20000005 (nzCv daif -PAN -UAO)
      [    2.298792] pc : mtk_read_temp+0xb8/0x1c8
      [    2.302793] lr : mtk_read_temp+0x7c/0x1c8
      [    2.306794] sp : ffff80001003b930
      [    2.310100] x29: ffff80001003b930 x28: 0000000000000000
      [    2.315404] x27: 0000000000000002 x26: ffff0000f9550b10
      [    2.320709] x25: ffff0000f9550a80 x24: 0000000000000090
      [    2.326014] x23: ffff80001003ba24 x22: 00000000610344c0
      [    2.331318] x21: 0000000000002710 x20: 00000000000001f4
      [    2.336622] x19: 0000000000030d40 x18: ffff800011742ec0
      [    2.341926] x17: 0000000000000001 x16: 0000000000000001
      [    2.347230] x15: ffffffffffffffff x14: ffffff0000000000
      [    2.352535] x13: ffffffffffffffff x12: 0000000000000028
      [    2.357839] x11: 0000000000000003 x10: ffff800011295ec8
      [    2.363143] x9 : 000000000000291b x8 : 0000000000000002
      [    2.368447] x7 : 00000000000000a8 x6 : 0000000000000004
      [    2.373751] x5 : 0000000000000000 x4 : ffff800011295cb0
      [    2.379055] x3 : 0000000000000002 x2 : ffff8000125f5001
      [    2.384359] x1 : 0000000000000001 x0 : ffff0000f9550a80
      [    2.389665] Call trace:
      [    2.392105]  mtk_read_temp+0xb8/0x1c8
      [    2.395760]  of_thermal_get_temp+0x2c/0x40
      [    2.399849]  thermal_zone_get_temp+0x78/0x160
      [    2.404198]  thermal_zone_device_update.part.0+0x3c/0x1f8
      [    2.409589]  thermal_zone_device_update+0x34/0x48
      [    2.414286]  of_thermal_set_mode+0x58/0x88
      [    2.418375]  thermal_zone_of_sensor_register+0x1a8/0x1d8
      [    2.423679]  devm_thermal_zone_of_sensor_register+0x64/0xb0
      [    2.429242]  mtk_thermal_probe+0x690/0x7d0
      [    2.433333]  platform_drv_probe+0x5c/0xb0
      [    2.437335]  really_probe+0xe4/0x448
      [    2.440901]  driver_probe_device+0xe8/0x140
      [    2.445077]  device_driver_attach+0x7c/0x88
      [    2.449252]  __driver_attach+0xac/0x178
      [    2.453082]  bus_for_each_dev+0x78/0xc8
      [    2.456909]  driver_attach+0x2c/0x38
      [    2.460476]  bus_add_driver+0x14c/0x230
      [    2.464304]  driver_register+0x6c/0x128
      [    2.468131]  __platform_driver_register+0x50/0x60
      [    2.472831]  mtk_thermal_driver_init+0x24/0x30
      [    2.477268]  do_one_initcall+0x50/0x298
      [    2.481098]  kernel_init_freeable+0x1ec/0x264
      [    2.485450]  kernel_init+0x1c/0x110
      [    2.488931]  ret_from_fork+0x10/0x1c
      [    2.492502] Code: f9401081 f9400402 b8a67821 8b010042 (b9400042)
      [    2.498599] ---[ end trace e43e3105ed27dc99 ]---
      [    2.503367] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
      [    2.511020] SMP: stopping secondary CPUs
      [    2.514941] Kernel Offset: disabled
      [    2.518421] CPU features: 0x090002,25006005
      [    2.522595] Memory Limit: none
      [    2.525644] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b ]--
      
      Cc: Michael Kao <michael.kao@mediatek.com>
      Fixes: eb9aecd9 ("thermal: mediatek: fix register index error")
      Signed-off-by: default avatarEnric Balletbo i Serra <enric.balletbo@collabora.com>
      Reviewed-by: default avatarMatthias Brugger <matthias.bgg@gmail.com>
      Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
      Link: https://lore.kernel.org/r/20200707103412.1010823-1-enric.balletbo@collabora.com
      a8f62f18
    • Alex Hung's avatar
      thermal: int3403_thermal: Downgrade error message · f3d7fb38
      Alex Hung authored
      Downgrade "Unsupported event" message from dev_err to dev_dbg to avoid
      flooding with this message on some platforms.
      
      Cc: stable@vger.kernel.org # v5.4+
      Suggested-by: default avatarZhang Rui <rui.zhang@intel.com>
      Signed-off-by: default avatarAlex Hung <alex.hung@canonical.com>
      [ rzhang: fix typo in changelog ]
      Signed-off-by: default avatarZhang Rui <rui.zhang@intel.com>
      Link: https://lore.kernel.org/r/20200615223957.183153-1-alex.hung@canonical.com
      f3d7fb38
  4. 14 Jul, 2020 9 commits
    • Xiaojie Yuan's avatar
      drm/amdgpu/sdma5: fix wptr overwritten in ->get_wptr() · 05051496
      Xiaojie Yuan authored
      "u64 *wptr" points to the the wptr value in write back buffer and
      "*wptr = (*wptr) >> 2;" results in the value being overwritten each time
      when ->get_wptr() is called.
      
      umr uses /sys/kernel/debug/dri/0/amdgpu_ring_sdma0 to get rptr/wptr and
      decode ring content and it is affected by this issue.
      
      fix and simplify the logic similar as sdma_v4_0_ring_get_wptr().
      
      v2: fix for sdma5.2 as well
      v3: drop sdma 5.2 changes for 5.8 and stable
      Suggested-by: default avatarLe Ma <le.ma@amd.com>
      Signed-off-by: default avatarXiaojie Yuan <xiaojie.yuan@amd.com>
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      05051496
    • chen gong's avatar
      drm/amdgpu/powerplay: Modify SMC message name for setting power profile mode · 98a34cf9
      chen gong authored
      I consulted Cai Land(Chuntian.Cai@amd.com), he told me corresponding smc
      message name to fSMC_MSG_SetWorkloadMask() is
      "PPSMC_MSG_ActiveProcessNotify" in firmware code of Renoir.
      
      Strange though it may seem, but it's a fact.
      Signed-off-by: default avatarchen gong <curry.gong@amd.com>
      Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      98a34cf9
    • Josip Pavic's avatar
      drm/amd/display: handle failed allocation during stream construction · be73e608
      Josip Pavic authored
      [Why]
      Failing to allocate a transfer function during stream construction leads
      to a null pointer dereference
      
      [How]
      Handle the failed allocation by failing the stream construction
      
      Cc: stable@vger.kernel.org
      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>
      be73e608
    • hersen wu's avatar
      drm/amd/display: OLED panel backlight adjust not work with external display connected · b448d30b
      hersen wu authored
      [Why]
      amdgpu_dm->backlight_caps is for single eDP only. the caps are upddated
      for very connector. Real eDP caps will be overwritten by other external
      display. For OLED panel, caps->aux_support is set to 1 for OLED pnael.
      after external connected, caps+.aux_support is set to 0. This causes
      OLED backlight adjustment not work.
      
      [How]
      within update_conector_ext_caps, backlight caps will be updated only for
      eDP connector.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarhersen wu <hersenxs.wu@amd.com>
      Reviewed-by: default avatarNicholas Kazlauskas <Nicholas.Kazlauskas@amd.com>
      Acked-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      b448d30b
    • Alex Deucher's avatar
      drm/amdgpu/display: create fake mst encoders ahead of time (v4) · 31684701
      Alex Deucher authored
      Prevents a warning in the MST create connector case.
      
      v2: create global fake encoders rather per connector fake encoders
      to avoid running out of encoder indices.
      
      v3: use the actual number of crtcs on the asic rather than the max
      to conserve encoders.
      
      v4: v3 plus missing hunk I forgot to git add.
      
      Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1108
      Fixes: c6385e50 ("drm/amdgpu: drop legacy drm load and unload callbacks")
      Reviewed-by: default avatarNicholas Kazlauskas <nicholas.kazlauskas@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org # 5.7.x
      31684701
    • Jack Xiao's avatar
      drm/amdgpu: fix preemption unit test · d845a205
      Jack Xiao authored
      Remove signaled jobs from job list and ensure the
      job was indeed preempted.
      Signed-off-by: default avatarJack Xiao <Jack.Xiao@amd.com>
      Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      d845a205
    • Jack Xiao's avatar
      drm/amdgpu/gfx10: fix race condition for kiq · 7d65a577
      Jack Xiao authored
      During preemption test for gfx10, it uses kiq to trigger
      gfx preemption, which would result in race condition
      with flushing TLB for kiq.
      Signed-off-by: default avatarJack Xiao <Jack.Xiao@amd.com>
      Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      7d65a577
    • Ville Syrjälä's avatar
      drm/i915: Recalculate FBC w/a stride when needed · 92e0575b
      Ville Syrjälä authored
      Currently we're failing to recalculate the gen9 FBC w/a stride
      unless something more drastic than just the modifier itself has
      changed. This often leaves us with FBC enabled with the linear
      fbdev framebuffer without the w/a stride enabled. That will cause
      an immediate underrun and FBC will get promptly disabled.
      
      Fix the problem by checking if the w/a stride is about to change,
      and go through the full dance if so. This part of the FBC code
      is still pretty much a disaster and will need lots more work.
      But this should at least fix the immediate issue.
      
      v2: Deactivate FBC when the modifier changes since that will
          likely require resetting the w/a CFB stride
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200711080336.13423-1-ville.syrjala@linux.intel.comReviewed-by: default avatarJosé Roberto de Souza <jose.souza@intel.com>
      (cherry picked from commit 0428ab01)
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      92e0575b
    • Maarten Lankhorst's avatar
      drm/i915: Move cec_notifier to intel_hdmi_connector_unregister, v2. · 6647e6cd
      Maarten Lankhorst authored
      This fixes the following KASAN splash on module reload:
      [  145.136327] ==================================================================
      [  145.136502] BUG: KASAN: use-after-free in intel_hdmi_destroy+0x74/0x80 [i915]
      [  145.136514] Read of size 8 at addr ffff888216641830 by task kworker/1:1/134
      
      [  145.136535] CPU: 1 PID: 134 Comm: kworker/1:1 Tainted: G     U          T 5.5.0-rc7-valkyria+ #5783
      [  145.136539] Hardware name: GIGABYTE GB-BKi3A-7100/MFLP3AP-00, BIOS F1 07/27/2016
      [  145.136546] Workqueue: events drm_connector_free_work_fn
      [  145.136551] Call Trace:
      [  145.136560]  dump_stack+0xa1/0xe0
      [  145.136571]  print_address_description.constprop.0+0x1e/0x210
      [  145.136639]  ? intel_hdmi_destroy+0x74/0x80 [i915]
      [  145.136703]  ? intel_hdmi_destroy+0x74/0x80 [i915]
      [  145.136710]  __kasan_report.cold+0x1b/0x37
      [  145.136790]  ? intel_hdmi_destroy+0x74/0x80 [i915]
      [  145.136863]  ? intel_hdmi_destroy+0x74/0x80 [i915]
      [  145.136870]  kasan_report+0x27/0x30
      [  145.136881]  __asan_report_load8_noabort+0x1c/0x20
      [  145.136946]  intel_hdmi_destroy+0x74/0x80 [i915]
      [  145.136954]  drm_connector_free_work_fn+0xd1/0x100
      [  145.136967]  process_one_work+0x86e/0x1610
      [  145.136987]  ? pwq_dec_nr_in_flight+0x2f0/0x2f0
      [  145.137004]  ? move_linked_works+0x128/0x2c0
      [  145.137021]  worker_thread+0x63e/0xc90
      [  145.137048]  kthread+0x2f6/0x3f0
      [  145.137054]  ? calculate_sigpending+0x81/0xa0
      [  145.137059]  ? process_one_work+0x1610/0x1610
      [  145.137064]  ? kthread_bind+0x40/0x40
      [  145.137075]  ret_from_fork+0x24/0x30
      
      [  145.137111] Allocated by task 0:
      [  145.137119] (stack is not available)
      
      [  145.137137] Freed by task 5053:
      [  145.137147]  save_stack+0x28/0x90
      [  145.137152]  __kasan_slab_free+0x136/0x180
      [  145.137157]  kasan_slab_free+0x26/0x30
      [  145.137161]  kfree+0xe6/0x350
      [  145.137242]  intel_ddi_encoder_destroy+0x60/0x80 [i915]
      [  145.137252]  drm_mode_config_cleanup+0x11d/0x8f0
      [  145.137329]  intel_modeset_driver_remove+0x1f5/0x350 [i915]
      [  145.137403]  i915_driver_remove+0xc4/0x130 [i915]
      [  145.137482]  i915_pci_remove+0x3e/0x90 [i915]
      [  145.137489]  pci_device_remove+0x108/0x2d0
      [  145.137494]  device_release_driver_internal+0x1e6/0x4a0
      [  145.137499]  driver_detach+0xcb/0x198
      [  145.137503]  bus_remove_driver+0xde/0x204
      [  145.137508]  driver_unregister+0x6d/0xa0
      [  145.137513]  pci_unregister_driver+0x2e/0x230
      [  145.137576]  i915_exit+0x1f/0x26 [i915]
      [  145.137157]  kasan_slab_free+0x26/0x30
      [  145.137161]  kfree+0xe6/0x350
      [  145.137242]  intel_ddi_encoder_destroy+0x60/0x80 [i915]
      [  145.137252]  drm_mode_config_cleanup+0x11d/0x8f0
      [  145.137329]  intel_modeset_driver_remove+0x1f5/0x350 [i915]
      [  145.137403]  i915_driver_remove+0xc4/0x130 [i915]
      [  145.137482]  i915_pci_remove+0x3e/0x90 [i915]
      [  145.137489]  pci_device_remove+0x108/0x2d0
      [  145.137494]  device_release_driver_internal+0x1e6/0x4a0
      [  145.137499]  driver_detach+0xcb/0x198
      [  145.137503]  bus_remove_driver+0xde/0x204
      [  145.137508]  driver_unregister+0x6d/0xa0
      [  145.137513]  pci_unregister_driver+0x2e/0x230
      [  145.137576]  i915_exit+0x1f/0x26 [i915]
      [  145.137581]  __x64_sys_delete_module+0x35b/0x470
      [  145.137586]  do_syscall_64+0x99/0x4e0
      [  145.137591]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
      
      [  145.137606] The buggy address belongs to the object at ffff888216640000
                      which belongs to the cache kmalloc-8k of size 8192
      [  145.137618] The buggy address is located 6192 bytes inside of
                      8192-byte region [ffff888216640000, ffff888216642000)
      [  145.137630] The buggy address belongs to the page:
      [  145.137640] page:ffffea0008599000 refcount:1 mapcount:0 mapping:ffff888107c02a80 index:0xffff888216644000 compound_mapcount: 0
      [  145.137647] raw: 0200000000010200 0000000000000000 0000000100000001 ffff888107c02a80
      [  145.137652] raw: ffff888216644000 0000000080020001 00000001ffffffff 0000000000000000
      [  145.137656] page dumped because: kasan: bad access detected
      
      [  145.137668] Memory state around the buggy address:
      [  145.137678]  ffff888216641700: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [  145.137687]  ffff888216641780: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [  145.137697] >ffff888216641800: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [  145.137706]                                      ^
      [  145.137715]  ffff888216641880: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [  145.137724]  ffff888216641900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
      [  145.137733] ==================================================================
      [  145.137742] Disabling lock debugging due to kernel taint
      
      Changes since v1:
      - Add fixes tags.
      - Use early unregister.
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Fixes: 9c229127 ("drm/i915: hdmi: add CEC notifier to intel_hdmi")
      Cc: <stable@vger.kernel.org> # v4.19+
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200212135445.1469133-1-maarten.lankhorst@linux.intel.com
      (cherry picked from commit a581483b)
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      6647e6cd