linux/drivers/gpu/drm/i915
Matthew Auld b87482dfe8 Revert "i915: use io_mapping_map_user"
This reverts commit b739f125e4.

We are unfortunately seeing more issues like we did in 293837b9ac
("Revert "i915: fix remap_io_sg to verify the pgprot""), except this is
now for the vm_fault_gtt path, where we are now hitting the same
BUG_ON(!pte_none(*pte)):

[10887.466150] kernel BUG at mm/memory.c:2183!
[10887.466162] invalid opcode: 0000 [#1] PREEMPT SMP PTI
[10887.466168] CPU: 0 PID: 7775 Comm: ffmpeg Tainted: G     U            5.13.0-rc3-CI-Nightly #1
[10887.466174] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./J4205-ITX, BIOS P1.40 07/14/2017
[10887.466177] RIP: 0010:remap_pfn_range_notrack+0x30f/0x440
[10887.466188] Code: e8 96 d7 e0 ff 84 c0 0f 84 27 01 00 00 48 ba 00 f0 ff ff ff ff 0f 00 4c 89 e0 48 c1 e0 0c 4d 85 ed 75 96 48 21 d0 31 f6 eb a9 <0f> 0b 48 39 37 0f 85 0e 01 00 00 48 8b 0c 24 48 39 4f 08 0f 85 00
[10887.466193] RSP: 0018:ffffc90006e33c50 EFLAGS: 00010286
[10887.466198] RAX: 800000000000002f RBX: 00007f5e01800000 RCX: 0000000000000028
[10887.466201] RDX: 0000000000000001 RSI: ffffea0000000000 RDI: 0000000000000000
[10887.466204] RBP: ffffea000033fea8 R08: 800000000000002f R09: ffff8881072256e0
[10887.466207] R10: ffffc9000b84fff8 R11: 0000000017dab000 R12: 0000000000089f9f
[10887.466210] R13: 800000000000002f R14: 00007f5e017e4000 R15: ffff88800cffaf20
[10887.466213] FS:  00007f5e04849640(0000) GS:ffff888278000000(0000) knlGS:0000000000000000
[10887.466216] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[10887.466220] CR2: 00007fd9b191a2ac CR3: 00000001829ac000 CR4: 00000000003506f0
[10887.466223] Call Trace:
[10887.466233]  vm_fault_gtt+0x1ca/0x5d0 [i915]
[10887.466381]  ? ktime_get+0x38/0x90
[10887.466389]  __do_fault+0x37/0x90
[10887.466395]  __handle_mm_fault+0xc46/0x1200
[10887.466402]  handle_mm_fault+0xce/0x2a0
[10887.466407]  do_user_addr_fault+0x1c5/0x660

Reverting this commit is reported to fix the issue.

Reported-by: Eero Tamminen <eero.t.tamminen@intel.com>
References: https://gitlab.freedesktop.org/drm/intel/-/issues/3519
Fixes: b739f125e4 ("i915: use io_mapping_map_user")
Cc: Christoph Hellwig <hch@lst.de>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Matthew Auld <matthew.auld@intel.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20210527185145.458021-1-matthew.auld@intel.com
(cherry picked from commit 0e4fe0c9f2)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
2021-06-02 15:06:10 +03:00
..
display drm/i915: Reenable LTTPR non-transparent LT mode for DPCD_REV<1.4 2021-05-25 12:43:06 +03:00
gem Revert "i915: use io_mapping_map_user" 2021-06-02 15:06:10 +03:00
gt drm/i915/gt: Disable HiZ Raw Stall Optimization on broken gen7 2021-05-19 10:10:28 +03:00
gvt drm/i915/gvt: Move mdev attribute groups into kvmgt module 2021-05-17 16:37:09 +08:00
selftests drm/i915/selftests: Fix return value check in live_breadcrumbs_smoketest() 2021-06-02 15:06:10 +03:00
.gitignore
Kconfig Revert "i915: use io_mapping_map_user" 2021-06-02 15:06:10 +03:00
Kconfig.debug drm/i915: Restrict DRM_I915_DEBUG to developer builds 2021-02-08 16:56:36 -05:00
Kconfig.profile drm/i915: Fail too long user submissions by default 2021-03-26 01:01:27 +01:00
Kconfig.unstable
Makefile Merge tag 'drm-intel-next-2021-04-01' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 14:02:21 +10:00
TODO.txt drm/i915: add gem/gt TODO 2021-03-26 09:24:31 +01:00
dma_resv_utils.c drm/i915/gem: Optimistically prune dma-resv from the shrinker. 2020-12-23 21:58:00 +00:00
dma_resv_utils.h drm/i915/gem: Optimistically prune dma-resv from the shrinker. 2020-12-23 21:58:00 +00:00
i915_active.c drm/i915: Fix crash in auto_retire 2021-05-12 20:52:48 +03:00
i915_active.h
i915_active_types.h
i915_buddy.c drm/i915/buddy: document the unused header bits 2021-03-24 19:30:35 +01:00
i915_buddy.h drm/i915/buddy: document the unused header bits 2021-03-24 19:30:35 +01:00
i915_cmd_parser.c drm/i915: Move cmd parser pinning to execbuffer 2021-03-24 11:39:59 +01:00
i915_config.c
i915_debugfs.c Merge tag 'drm-intel-next-2021-04-01' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 14:02:21 +10:00
i915_debugfs.h
i915_debugfs_params.c
i915_debugfs_params.h
i915_drv.c Merge tag 'drm-intel-next-2021-04-01' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 14:02:21 +10:00
i915_drv.h Revert "i915: use io_mapping_map_user" 2021-06-02 15:06:10 +03:00
i915_fixed.h
i915_gem.c drm/i915/gem: Pin the L-shape quirked object as unshrinkable 2021-05-19 09:50:08 +03:00
i915_gem.h drm/i915: Use tasklet_unlock_spin_wait() in __tasklet_disable_sync_once() 2021-03-25 18:21:03 +01:00
i915_gem_evict.c drm/i915/gem: Protect used framebuffers from casual eviction 2021-01-20 21:05:12 +00:00
i915_gem_gtt.c drm/i915: Finally remove obj->mm.lock. 2021-03-24 17:47:20 +01:00
i915_gem_gtt.h
i915_getparam.c drm/i915: Remove references to struct drm_device.pdev 2021-02-02 13:58:42 +02:00
i915_globals.c
i915_globals.h
i915_gpu_error.c Merge drm/drm-next into drm-intel-next 2021-03-11 08:52:53 +02:00
i915_gpu_error.h drm/i915: Improve record of hung engines in error state 2020-11-09 11:59:43 +00:00
i915_ioc32.c
i915_ioc32.h
i915_irq.c drm/i915: Convert INTEL_GEN() to DISPLAY_VER() as appropriate in i915_irq.c 2021-03-23 16:41:19 -07:00
i915_irq.h drm/i915: Add plane vfuncs to enable/disable flip_done interrupt 2021-01-19 19:14:21 +02:00
i915_memcpy.c drm/i915: Move cmd parser pinning to execbuffer 2021-03-24 11:39:59 +01:00
i915_memcpy.h drm/i915: Move cmd parser pinning to execbuffer 2021-03-24 11:39:59 +01:00
i915_mitigations.c drm/i915: Allow the sysadmin to override security mitigations 2021-01-12 19:03:40 +02:00
i915_mitigations.h drm/i915: Allow the sysadmin to override security mitigations 2021-01-12 19:03:40 +02:00
i915_mm.c Revert "i915: use io_mapping_map_user" 2021-06-02 15:06:10 +03:00
i915_params.c drm/i915: Allow configuring default request expiry via modparam 2021-03-26 01:01:38 +01:00
i915_params.h drm/i915: Allow configuring default request expiry via modparam 2021-03-26 01:01:38 +01:00
i915_pci.c Merge tag 'drm-intel-next-2021-04-01' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 14:02:21 +10:00
i915_perf.c drm/i915: Increase ww locking for perf. 2021-03-24 17:27:21 +01:00
i915_perf.h
i915_perf_types.h i915/perf: Store a mask of valid OA formats for a platform 2021-02-09 13:26:29 +02:00
i915_pmu.c drm/i915: Remove references to struct drm_device.pdev 2021-02-02 13:58:42 +02:00
i915_pmu.h Merge tag 'drm-intel-gt-next-2021-01-14' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-01-15 15:03:36 +10:00
i915_priolist_types.h drm/i915: Remove I915_USER_PRIORITY_SHIFT 2021-03-24 19:30:34 +01:00
i915_pvinfo.h
i915_query.c
i915_query.h
i915_reg.h drm/i915: reserve stolen for LMEM region 2021-03-24 19:30:36 +01:00
i915_request.c drm/i915: Take request reference before arming the watchdog timer 2021-04-26 11:53:56 +03:00
i915_request.h Merge tag 'drm-intel-gt-next-2021-04-06' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 12:46:12 +10:00
i915_scatterlist.c
i915_scatterlist.h Merge tag 'drm-intel-gt-next-2020-11-12-1' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2020-11-13 15:01:57 +10:00
i915_scheduler.c drm/i915: Remove I915_USER_PRIORITY_SHIFT 2021-03-24 19:30:34 +01:00
i915_scheduler.h drm/i915: Strip out internal priorities 2021-03-24 19:30:34 +01:00
i915_scheduler_types.h drm/i915: Lift waiter/signaler iterators 2020-11-19 20:34:18 +00:00
i915_selftest.h drm/i915: Pin timeline map after first timeline pin, v4. 2021-03-24 11:39:46 +01:00
i915_suspend.c drm/i915: Remove references to struct drm_device.pdev 2021-02-02 13:58:42 +02:00
i915_suspend.h
i915_sw_fence.c drm/i915: Encode fence specific waitqueue behaviour into the wait.flags 2020-12-16 20:59:56 +00:00
i915_sw_fence.h
i915_sw_fence_work.c
i915_sw_fence_work.h
i915_switcheroo.c drm/i915: Remove references to struct drm_device.pdev 2021-02-02 13:58:42 +02:00
i915_switcheroo.h
i915_syncmap.c
i915_syncmap.h
i915_sysfs.c
i915_sysfs.h
i915_trace.h
i915_trace_points.c
i915_user_extensions.c
i915_user_extensions.h
i915_utils.c drm/i915: Wrap our timer_list.expires checking 2021-01-07 21:37:14 +00:00
i915_utils.h drm/i915: Wrap our timer_list.expires checking 2021-01-07 21:37:14 +00:00
i915_vgpu.c drm/i915: Remove references to struct drm_device.pdev 2021-02-02 13:58:42 +02:00
i915_vgpu.h
i915_vma.c drm/i915: Use a single page table lock for each gtt. 2021-03-24 17:30:37 +01:00
i915_vma.h drm/i915: Take reservation lock around i915_vma_pin. 2021-03-24 17:27:20 +01:00
i915_vma_types.h drm/i915: Add support for FBs requiring a POT stride alignment 2021-03-29 22:58:12 +03:00
intel_device_info.c Merge tag 'drm-intel-next-2021-04-01' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 14:02:21 +10:00
intel_device_info.h Merge tag 'drm-intel-next-2021-04-01' of git://anongit.freedesktop.org/drm/drm-intel into drm-next 2021-04-08 14:02:21 +10:00
intel_dram.c drm/i915/display: support ddr5 mem types 2021-02-05 05:23:15 -08:00
intel_dram.h
intel_gvt.c drm/i915/gvt: Save/restore HW status to support GVT suspend/resume 2020-11-10 14:37:56 +08:00
intel_gvt.h drm/i915/gvt: Save/restore HW status to support GVT suspend/resume 2020-11-10 14:37:56 +08:00
intel_memory_region.c drm/i915: give stolen system memory its own class 2021-03-24 19:31:59 +01:00
intel_memory_region.h drm/i915: give stolen system memory its own class 2021-03-24 19:31:59 +01:00
intel_pch.c drm/i915/gen9_bc: Recognize TGP PCH + CML combos 2021-02-11 18:19:29 -05:00
intel_pch.h drm/i915/adl_s: Add PCH support 2021-01-26 07:10:44 -08:00
intel_pm.c drm for 5.13-rc1 2021-04-28 10:01:40 -07:00
intel_pm.h drm/i915: Check tgl+ SAGV watermarks properly 2021-03-03 14:24:20 +02:00
intel_runtime_pm.c drm/i915: Fix docbook header for __intel_runtime_pm_get_if_active() 2021-03-31 16:57:33 +03:00
intel_runtime_pm.h drm/i915: Fix the GT fence revocation runtime PM logic 2021-03-24 09:12:07 -04:00
intel_sideband.c drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ() 2020-12-02 17:29:46 +02:00
intel_sideband.h
intel_step.c drm/i915: rename i915_rev_steppings->intel_step_info 2021-03-29 14:56:26 +03:00
intel_step.h drm/i915: rename i915_rev_steppings->intel_step_info 2021-03-29 14:56:26 +03:00
intel_uncore.c drm/i915: Try to detect sudden loss of MMIO access 2021-02-12 18:44:44 -08:00
intel_uncore.h drm/i915: remove last traces of I915_READ(), I915_WRITE() and POSTING_READ() 2020-12-02 17:29:46 +02:00
intel_wakeref.c
intel_wakeref.h
intel_wopcm.c
intel_wopcm.h
vlv_suspend.c
vlv_suspend.h