linux_dsm_epyc7002/drivers/gpu/drm/nouveau
Luca Barbieri d6126c5c8b drm/nouveau: Fix null deref in nouveau_fence_emit due to deleted fence
Currently Nouveau will unvalidate all buffers if it is forced to wait on
one, and then start revalidating from the beginning.  While doing so, it
destroys the operation fence, causing nouveau_fence_emit to crash.

This patch fixes this bug by taking the fence object out of validate_op
and creating it just before emit.  The fence pointer is initialized to 0
and unref'ed unconditionally.

In addition to fixing the bug, this prevents its reintroduction and
simplifies the code.

Signed-off-by: Luca Barbieri <luca@luca-barbieri.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2010-01-11 14:41:17 +10:00
..
Kconfig drm/i2c/ch7006: Drop build time dependency to nouveau. 2010-01-11 14:41:04 +10:00
Makefile drm/nv40: implement ctxprog/state generation 2009-12-16 17:05:39 +10:00
nouveau_acpi.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_backlight.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_bios.c drm/nouveau: Kill global state in BIOS script interpreter 2009-12-16 17:05:02 +10:00
nouveau_bios.h drm/nouveau: Kill global state in BIOS script interpreter 2009-12-16 17:05:02 +10:00
nouveau_bo.c drm/nv50: make the blocksize depend on vram size 2010-01-11 14:41:10 +10:00
nouveau_calc.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_channel.c drm/nouveau: remove unused nouveau_channel_idle() function 2010-01-11 14:41:13 +10:00
nouveau_connector.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nouveau_connector.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_crtc.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_debugfs.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_display.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_dma.c drm/nouveau: Allocate a per-channel instance of NV_SW. 2010-01-11 14:41:11 +10:00
nouveau_dma.h drm/nouveau: Allocate a per-channel instance of NV_SW. 2010-01-11 14:41:11 +10:00
nouveau_dp.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nouveau_drv.c Merge remote branch 'nouveau/for-airlied' into drm-linus 2009-12-23 10:28:24 +10:00
nouveau_drv.h drm/nouveau: remove unused nouveau_channel_idle() function 2010-01-11 14:41:13 +10:00
nouveau_encoder.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_fb.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_fbcon.c drm/nouveau: create function for "dealing" with gpu lockup 2010-01-11 14:41:14 +10:00
nouveau_fbcon.h drm/nouveau: create function for "dealing" with gpu lockup 2010-01-11 14:41:14 +10:00
nouveau_fence.c drm/nouveau: Use the software object for fencing. 2010-01-11 14:41:12 +10:00
nouveau_gem.c drm/nouveau: Fix null deref in nouveau_fence_emit due to deleted fence 2010-01-11 14:41:17 +10:00
nouveau_grctx.c drm/nv50: fix suspend/resume delays without firmware present 2009-12-16 17:06:05 +10:00
nouveau_grctx.h drm/nv40: implement ctxprog/state generation 2009-12-16 17:05:39 +10:00
nouveau_hw.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_hw.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_i2c.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_i2c.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
nouveau_irq.c drm/nv50: prevent a possible ctxprog hang 2010-01-11 14:41:16 +10:00
nouveau_mem.c drm/nouveau: Make the MM aware of pre-G80 tiling. 2010-01-11 14:41:03 +10:00
nouveau_notifier.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_object.c drm/nouveau: Allocate a per-channel instance of NV_SW. 2010-01-11 14:41:11 +10:00
nouveau_reg.h drm/nouveau: Pre-G80 tiling support. 2010-01-11 14:41:03 +10:00
nouveau_sgdma.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nouveau_state.c drm/nouveau: Don't skip card take down on nv0x. 2010-01-11 14:41:09 +10:00
nouveau_ttm.c drm/nouveau: have ttm's fault handler called directly 2010-01-11 14:41:15 +10:00
nv04_crtc.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nv04_cursor.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv04_dac.c drm/nouveau: Clean up the nv17-nv4x load detection code a bit. 2010-01-11 14:41:08 +10:00
nv04_dfp.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nv04_display.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nv04_fb.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv04_fbcon.c drm/nouveau: create function for "dealing" with gpu lockup 2010-01-11 14:41:14 +10:00
nv04_fifo.c drm/nouveau: Add cache_flush/pull fifo engine functions. 2010-01-11 14:41:02 +10:00
nv04_graph.c drm/nv04: Context switching fixes. 2010-01-11 14:41:12 +10:00
nv04_instmem.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv04_mc.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv04_timer.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv04_tv.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv10_fb.c drm/nouveau: Pre-G80 tiling support. 2010-01-11 14:41:03 +10:00
nv10_fifo.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv10_graph.c drm/nouveau: Pre-G80 tiling support. 2010-01-11 14:41:03 +10:00
nv17_gpio.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv17_tv_modes.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv17_tv.c drm/nouveau: Implement nv42-nv43 TV load detection. 2010-01-11 14:41:08 +10:00
nv17_tv.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv20_graph.c drm/nouveau: Pre-G80 tiling support. 2010-01-11 14:41:03 +10:00
nv40_fb.c drm/nouveau: Pre-G80 tiling support. 2010-01-11 14:41:03 +10:00
nv40_fifo.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv40_graph.c drm/nouveau: Pre-G80 tiling support. 2010-01-11 14:41:03 +10:00
nv40_grctx.c drm/nv40: implement ctxprog/state generation 2009-12-16 17:05:39 +10:00
nv40_mc.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv50_crtc.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nv50_cursor.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nv50_dac.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nv50_display.c drm/nv50: ignore vbios table's claim to the contrary if EDID says >8bpc 2010-01-11 14:41:07 +10:00
nv50_display.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv50_evo.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv50_fbcon.c drm/nouveau: create function for "dealing" with gpu lockup 2010-01-11 14:41:14 +10:00
nv50_fifo.c drm/nv50: restore correct cache1 get/put address on fifoctx load 2010-01-11 14:41:15 +10:00
nv50_graph.c drm/nv40: implement ctxprog/state generation 2009-12-16 17:05:39 +10:00
nv50_instmem.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv50_mc.c drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00
nv50_sor.c drm/nouveau: use drm debug levels 2009-12-16 17:04:48 +10:00
nvreg.h drm/nouveau: Add DRM driver for NVIDIA GPUs 2009-12-11 21:29:34 +10:00