linux-kernel-test/drivers/gpu/drm
Jan Niehusmann 6927faf309 drm/i915: fix memory corruption with GM965 and >4GB RAM
On a Thinkpad x61s, I noticed some memory corruption when
plugging/unplugging the external VGA connection. The symptoms are that
4 bytes at the beginning of a page get overwritten by zeroes.
The address of the corruption varies when rebooting the machine, but
stays constant while it's running (so it's possible to repeatedly write
some data and then corrupt it again by plugging the cable).

Further investigation revealed that the corrupted address is
(dev_priv->status_page_dmah->busaddr & 0xffffffff), ie. the beginning of
the hardware status page of the i965 graphics card, cut to 32 bits.

So it seems that for some memory access, the hardware uses only 32 bit
addressing. If the hardware status page is located >4GB, this
corrupts unrelated memory.

Signed-off-by: Jan Niehusmann <jan@gondor.com>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@kernel.org
2011-03-01 23:18:44 +00:00
..
i2c
i810 Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
i830 Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
i915 drm/i915: fix memory corruption with GM965 and >4GB RAM 2011-03-01 23:18:44 +00:00
mga Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
nouveau drm/nv50-nvc0: make sure vma is definitely unmapped when destroying bo 2011-02-28 15:00:16 +10:00
r128 Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
radeon drm/radeon: fix regression with AA resolve checking 2011-02-23 10:14:00 +10:00
savage Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
sis Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
tdfx Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
ttm Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2011-01-10 17:11:39 -08:00
via drivers/gpu: Use vzalloc 2010-11-09 13:41:35 +10:00
vmwgfx Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2011-01-10 17:11:39 -08:00
ati_pcigart.c
drm_agpsupport.c drm: kill drm_agp_chipset_flush 2010-11-23 20:14:44 +00:00
drm_auth.c
drm_buffer.c drm: fix trivial coding errors 2010-09-24 10:10:23 +10:00
drm_bufs.c
drm_cache.c
drm_context.c
drm_crtc_helper.c Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2011-02-04 10:02:22 -08:00
drm_crtc.c drm: Add an interface to reset the device 2011-01-25 19:23:28 +00:00
drm_debugfs.c drm: Move the GTT accounting to i915 2010-10-01 14:45:20 +01:00
drm_dma.c
drm_dp_i2c_helper.c
drm_drv.c Merge branch 'drm-core-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2010-10-26 18:57:59 -07:00
drm_edid_modes.h
drm_edid.c DRM: ignore invalid EDID extensions 2010-11-09 13:34:14 +10:00
drm_encoder_slave.c
drm_fb_helper.c kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
drm_fops.c drm/switcheroo: track state of switch in drivers. 2011-01-05 13:45:30 +10:00
drm_gem.c Merge remote branch 'korg/drm-fixes' into drm-vmware-next 2010-10-06 11:10:48 +10:00
drm_global.c
drm_hashtab.c
drm_info.c drm: do not leak kernel addresses via /proc/dri/*/vma 2011-02-14 09:23:20 +10:00
drm_ioc32.c
drm_ioctl.c
drm_irq.c drm: fix unsigned vs signed comparison issue in modeset ctl ioctl. 2011-02-28 15:24:35 +10:00
drm_lock.c drm: readd drm_lock_free in drm_unlock 2010-09-26 13:35:49 +10:00
drm_memory.c
drm_mm.c drm_mm: add support for range-restricted fair-lru scans 2010-10-27 23:31:04 +01:00
drm_modes.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
drm_pci.c drm: fix race between driver loading and userspace open. 2010-09-14 20:39:04 +10:00
drm_platform.c drm: fix race between driver loading and userspace open. 2010-09-14 20:39:04 +10:00
drm_proc.c drm: Move the GTT accounting to i915 2010-10-01 14:45:20 +01:00
drm_scatter.c
drm_sman.c
drm_stub.c drm/vblank: Add support for precise vblank timestamping. 2010-11-22 11:45:05 +10:00
drm_sysfs.c drm: Use a nondestructive mode for output detect when polling 2010-09-13 20:29:11 +10:00
drm_trace_points.c
drm_trace.h
drm_vm.c Merge remote branch 'korg/drm-fixes' into drm-vmware-next 2010-10-06 11:10:48 +10:00
Kconfig Merge remote branch 'linus/master' into drm-intel-fixes 2011-01-24 18:27:32 +00:00
Makefile
README.drm

************************************************************
* For the very latest on DRI development, please see:      *
*     http://dri.freedesktop.org/                          *
************************************************************

The Direct Rendering Manager (drm) is a device-independent kernel-level
device driver that provides support for the XFree86 Direct Rendering
Infrastructure (DRI).

The DRM supports the Direct Rendering Infrastructure (DRI) in four major
ways:

    1. The DRM provides synchronized access to the graphics hardware via
       the use of an optimized two-tiered lock.

    2. The DRM enforces the DRI security policy for access to the graphics
       hardware by only allowing authenticated X11 clients access to
       restricted regions of memory.

    3. The DRM provides a generic DMA engine, complete with multiple
       queues and the ability to detect the need for an OpenGL context
       switch.

    4. The DRM is extensible via the use of small device-specific modules
       that rely extensively on the API exported by the DRM module.


Documentation on the DRI is available from:
    http://dri.freedesktop.org/wiki/Documentation
    http://sourceforge.net/project/showfiles.php?group_id=387
    http://dri.sourceforge.net/doc/

For specific information about kernel-level support, see:

    The Direct Rendering Manager, Kernel Support for the Direct Rendering
    Infrastructure
    http://dri.sourceforge.net/doc/drm_low_level.html

    Hardware Locking for the Direct Rendering Infrastructure
    http://dri.sourceforge.net/doc/hardware_locking_low_level.html

    A Security Analysis of the Direct Rendering Infrastructure
    http://dri.sourceforge.net/doc/security_low_level.html