OpenCloudOS-Kernel/drivers/gpu/drm
Rob Clark 0036bc73cc drm/msm: stop abusing dma_map/unmap for cache
Recently splats like this started showing up:

   WARNING: CPU: 4 PID: 251 at drivers/iommu/dma-iommu.c:451 __iommu_dma_unmap+0xb8/0xc0
   Modules linked in: ath10k_snoc ath10k_core fuse msm ath mac80211 uvcvideo cfg80211 videobuf2_vmalloc videobuf2_memops vide
   CPU: 4 PID: 251 Comm: kworker/u16:4 Tainted: G        W         5.2.0-rc5-next-20190619+ #2317
   Hardware name: LENOVO 81JL/LNVNB161216, BIOS 9UCN23WW(V1.06) 10/25/2018
   Workqueue: msm msm_gem_free_work [msm]
   pstate: 80c00005 (Nzcv daif +PAN +UAO)
   pc : __iommu_dma_unmap+0xb8/0xc0
   lr : __iommu_dma_unmap+0x54/0xc0
   sp : ffff0000119abce0
   x29: ffff0000119abce0 x28: 0000000000000000
   x27: ffff8001f9946648 x26: ffff8001ec271068
   x25: 0000000000000000 x24: ffff8001ea3580a8
   x23: ffff8001f95ba010 x22: ffff80018e83ba88
   x21: ffff8001e548f000 x20: fffffffffffff000
   x19: 0000000000001000 x18: 00000000c00001fe
   x17: 0000000000000000 x16: 0000000000000000
   x15: ffff000015b70068 x14: 0000000000000005
   x13: 0003142cc1be1768 x12: 0000000000000001
   x11: ffff8001f6de9100 x10: 0000000000000009
   x9 : ffff000015b78000 x8 : 0000000000000000
   x7 : 0000000000000001 x6 : fffffffffffff000
   x5 : 0000000000000fff x4 : ffff00001065dbc8
   x3 : 000000000000000d x2 : 0000000000001000
   x1 : fffffffffffff000 x0 : 0000000000000000
   Call trace:
    __iommu_dma_unmap+0xb8/0xc0
    iommu_dma_unmap_sg+0x98/0xb8
    put_pages+0x5c/0xf0 [msm]
    msm_gem_free_work+0x10c/0x150 [msm]
    process_one_work+0x1e0/0x330
    worker_thread+0x40/0x438
    kthread+0x12c/0x130
    ret_from_fork+0x10/0x18
   ---[ end trace afc0dc5ab81a06bf ]---

Not quite sure what triggered that, but we really shouldn't be abusing
dma_{map,unmap}_sg() for cache maint.

Cc: Stephen Boyd <sboyd@kernel.org>
Tested-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org>
Signed-off-by: Rob Clark <robdclark@chromium.org>
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20190630124735.27786-1-robdclark@gmail.com
2019-07-22 14:39:26 -04:00
..
amd drm fixes for -rc1: 2019-07-19 12:29:43 -07:00
arc treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
arm drm/komeda: Computing image enhancer internally 2019-07-08 15:05:34 +01:00
armada drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
aspeed treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
ast drm/ast: Pin framebuffer BO during dirty update 2019-06-13 13:37:19 +02:00
atmel-hlcdc drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
bochs drm/bochs: fix framebuffer setup. 2019-06-28 14:30:40 +02:00
bridge drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
cirrus Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
etnaviv drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
exynos drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
fsl-dcu treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
gma500 Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
hisilicon drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
i2c drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
i810 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
i915 proc/sysctl: add shared variables for range check 2019-07-18 17:08:07 -07:00
imx drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
ingenic DRM: Add KMS driver for the Ingenic JZ47xx SoCs 2019-06-19 13:24:14 +02:00
lib
lima drm/lima: add timeout to drm scheduler init 2019-05-21 20:47:36 +08:00
mcde drm/mcde: Fix an uninitialized variable 2019-06-13 11:55:23 +02:00
mediatek Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
meson Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
mga treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
mgag200 Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
msm drm/msm: stop abusing dma_map/unmap for cache 2019-07-22 14:39:26 -04:00
mxsfb treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
nouveau drm fixes for -rc1: 2019-07-19 12:29:43 -07:00
omapdrm drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
panel drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
panfrost drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
pl111 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
qxl Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
r128 drm/r128: drop use of drmP.h 2019-06-05 20:31:19 +02:00
radeon Merge branch 'drm-next' into drm-next-5.3 2019-06-25 08:42:25 -05:00
rcar-du drm/rcar-du: Fix error check when retrieving crtc state 2019-06-18 11:44:00 -04:00
rockchip drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
savage drm/savage: drop use of drmP.h 2019-06-05 20:31:04 +02:00
scheduler drm/sched: Fix make htmldocs warnings. 2019-05-29 11:49:51 -05:00
selftests drm/selftests: reduce stack usage 2019-07-01 09:50:58 +02:00
shmobile video: backlight: Remove useless BACKLIGHT_LCD_SUPPORT kernel symbol 2019-04-03 11:15:57 +01:00
sis drm/sis: drop drmP.h use 2019-06-05 20:29:57 +02:00
sti sti: no need to check return value of debugfs_create functions 2019-06-13 17:35:49 +02:00
stm drm/stm: drv: fix suspend/resume 2019-06-20 17:03:24 +02:00
sun4i Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
tdfx treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
tegra drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
tilcdc treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
tinydrm treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 2019-05-30 11:26:32 -07:00
ttm Revert "Merge branch 'vmwgfx-next' of git://people.freedesktop.org/~thomash/linux into drm-next" 2019-07-16 04:07:13 +10:00
tve200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 443 2019-06-05 17:37:17 +02:00
udl treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 262 2019-06-05 17:30:28 +02:00
v3d drm-misc-next for v5.3, try #2: 2019-05-28 08:59:11 +10:00
vboxvideo Merge drm/drm-next into drm-misc-next 2019-05-22 16:08:21 -04:00
vc4 drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
vgem treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
via treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
virtio drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
vkms drm/vkms: add crc sources list 2019-06-18 22:56:31 -03:00
vmwgfx drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
xen treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
zte drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
Kconfig docs conversion for v5.3-rc1 2019-07-16 12:21:41 -07:00
Makefile DRM: Add KMS driver for the Ingenic JZ47xx SoCs 2019-06-19 13:24:14 +02:00
ati_pcigart.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_agpsupport.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_atomic.c drm: Add helpers to kick off self refresh mode in drivers 2019-06-13 14:31:10 -04:00
drm_atomic_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_atomic_state_helper.c drm/atomic: Add a function to reset connector TV properties 2019-06-19 12:17:52 +02:00
drm_atomic_uapi.c drm: Add helpers to kick off self refresh mode in drivers 2019-06-13 14:31:10 -04:00
drm_auth.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_blend.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_bridge.c drm: Add atomic variants for bridge enable/disable 2019-06-13 13:00:29 -04:00
drm_bufs.c drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
drm_cache.c
drm_client.c drm/fb-helper: Remove drm_fb_helper_crtc 2019-06-04 12:13:47 +02:00
drm_client_modeset.c drm/modes: Don't apply cmdline's rotation if it wasn't specified 2019-07-16 10:34:38 +02:00
drm_color_mgmt.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_connector.c drm: connector: remove bogus NULL check 2019-07-02 15:39:32 +02:00
drm_context.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_crtc.c drm: no need to check return value of debugfs_create functions 2019-06-13 16:39:16 +02:00
drm_crtc_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_crtc_helper_internal.h
drm_crtc_internal.h drm/atomic: Move __drm_atomic_helper_disable_plane/set_config() 2019-06-08 16:46:37 +02:00
drm_damage_helper.c drm/damage-helper: Use NULL instead of 0 2019-05-28 09:03:06 +02:00
drm_debugfs.c drm: debugfs: make drm_debugfs_create_files() never fail 2019-06-14 16:59:51 +02:00
drm_debugfs_crc.c drm: no need to check return value of debugfs_create functions 2019-06-13 16:39:16 +02:00
drm_dma.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_dp_aux_dev.c drm/dp: drmP.h include removal 2019-05-06 16:00:48 +03:00
drm_dp_cec.c
drm_dp_dual_mode_helper.c drm/dp: drmP.h include removal 2019-05-06 16:00:48 +03:00
drm_dp_helper.c drm/dp: Add DP_DPCD_QUIRK_NO_SINK_COUNT 2019-06-14 19:11:10 +03:00
drm_dp_mst_topology.c drm/mst: Fix MST sideband up-reply failure handling 2019-05-29 20:12:34 +03:00
drm_drv.c Merge branch 'work.mount0' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-07-19 10:42:02 -07:00
drm_dsc.c drm/dsc: Split DSC PPS and SDP header initialisations 2019-03-05 13:24:34 -05:00
drm_dumb_buffers.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_edid.c drm/edid: use for_each_displayid_db where applicable 2019-06-25 14:44:03 +10:00
drm_edid_load.c Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
drm_encoder.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_encoder_slave.c
drm_fb_cma_helper.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 2019-05-30 11:26:37 -07:00
drm_fb_helper.c drm/client: Change drm_client_panel_rotation name 2019-06-19 12:17:49 +02:00
drm_file.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_flip_work.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_format_helper.c drm: Remove users of drm_format_info_plane_cpp 2019-05-20 13:35:56 +02:00
drm_fourcc.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_framebuffer.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_gem.c drm/gem: Unexport drm_gem_(un)pin/v(un)map 2019-06-17 17:37:01 +02:00
drm_gem_cma_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_gem_framebuffer_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_gem_shmem_helper.c drm/gem_shmem: Use a writecombine mapping for ->vaddr 2019-06-10 09:14:01 -06:00
drm_gem_vram_helper.c drm: Remove functions with kmap-object argument from GEM VRAM helpers 2019-06-13 13:37:36 +02:00
drm_hashtab.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_hdcp.c drm/hdcp: drm_hdcp_request_srm() as static 2019-05-13 22:05:54 +02:00
drm_internal.h drm/gem: Unexport drm_gem_(un)pin/v(un)map 2019-06-17 17:37:01 +02:00
drm_ioc32.c drm main pull request for v5.3-rc1 (sans mm changes) 2019-07-15 19:04:27 -07:00
drm_ioctl.c docs conversion for v5.3-rc1 2019-07-16 12:21:41 -07:00
drm_irq.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_kms_helper_common.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_lease.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_legacy.h drm: make drm_legacy.h self-contained 2019-05-27 18:06:47 +02:00
drm_legacy_misc.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_lock.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_memory.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_mipi_dsi.c bus_find_device: Unify the match callback with class_find_device 2019-06-24 05:22:31 +02:00
drm_mm.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_mode_config.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_mode_object.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_modes.c drm/modes: Skip invalid cmdline mode 2019-07-10 12:11:18 +02:00
drm_modeset_helper.c drm: prepare for drmP.h removal from drm_modeset_helper.h 2019-02-07 21:48:28 +01:00
drm_modeset_lock.c docs conversion for v5.3-rc1 2019-07-16 12:21:41 -07:00
drm_of.c Merge remote-tracking branch 'drm/drm-next' into drm-misc-next 2019-05-28 09:39:08 +02:00
drm_panel.c drm/panel: Small documentation polish 2019-01-12 13:08:12 +01:00
drm_panel_orientation_quirks.c drm: panel-orientation-quirks: Add extra quirk table entry for GPD MicroPC 2019-07-01 16:58:09 +02:00
drm_pci.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_plane.c drm/lease: Make sure implicit planes are leased 2019-04-24 11:30:32 +02:00
drm_plane_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_prime.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_print.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_probe_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_property.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_rect.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_scatter.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_scdc_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_self_refresh_helper.c drm/self_refresh: Fix possible NULL deref in failure path 2019-06-20 10:03:21 -04:00
drm_simple_kms_helper.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_syncobj.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_sysfs.c Linux 5.2-rc5 2019-06-19 12:07:29 +02:00
drm_trace.h drm: make drm_trace.h self-contained 2019-05-27 18:06:54 +02:00
drm_trace_points.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_vblank.c drm: add debug print to update_vblank_count 2019-06-14 19:10:04 +03:00
drm_vm.c drm: Permit video-buffers writecombine mapping for MIPS 2019-06-18 15:41:33 -04:00
drm_vma_manager.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_vram_helper_common.c drm: Replace drm_gem_vram_push_to_system() with kunmap + unpin 2019-05-22 12:43:29 +02:00
drm_vram_mm_helper.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00
drm_writeback.c drm: drop use of drmP.h in drm/* 2019-05-27 18:07:03 +02:00