]> git.baikalelectronics.ru Git - kernel.git/commit
drm: move pci bus master enable into driver.
authorDave Airlie <airlied@redhat.com>
Mon, 19 Dec 2011 11:15:29 +0000 (11:15 +0000)
committerDave Airlie <airlied@redhat.com>
Thu, 16 Feb 2012 18:31:07 +0000 (18:31 +0000)
commit5f579f17efe83d1c7651ea407e28e4c46ad41602
tree60ac84ef32b7590618bc81b0b52a5ba14a49bf45
parent2dcbc8ef2d335a0062e9ab25061effa307f13813
drm: move pci bus master enable into driver.

The current enabling of bus mastering in the drm midlayer allows a large
race condition under kexec. When a kexec'ed kernel re-enables bus mastering
for the GPU, previously setup dma blocks may cause writes to random pieces
of memory. On radeon the writeback mechanism can cause these sorts of issues.

This patch doesn't fix the problem, but it moves the bus master enable under
the individual drivers control so they can move enabling it until later in
their load cycle and close the race.

Fix for radeon kms driver will be in a follow-up patch.

Signed-off-by: Dave Airlie <airlied@redhat.com>
12 files changed:
drivers/gpu/drm/drm_pci.c
drivers/gpu/drm/gma500/psb_drv.c
drivers/gpu/drm/i810/i810_dma.c
drivers/gpu/drm/i915/i915_dma.c
drivers/gpu/drm/mga/mga_dma.c
drivers/gpu/drm/nouveau/nouveau_state.c
drivers/gpu/drm/r128/r128_drv.c
drivers/gpu/drm/radeon/radeon_cp.c
drivers/gpu/drm/radeon/radeon_kms.c
drivers/gpu/drm/sis/sis_drv.c
drivers/gpu/drm/via/via_map.c
drivers/gpu/drm/vmwgfx/vmwgfx_drv.c