OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
CVS: cvs.openbsd.org: src

From: Owain Ainsworth (ogacvs.openbsd.org)
Date: Thu Jun 12 2008 - 14:14:53 CDT


CVSROOT: /cvs
Module name: src
Changes by: ogacvs.openbsd.org 2008/06/12 13:14:53

Modified files:
        sys/dev/pci/drm: drmP.h drm_bufs.c drm_drv.c drm_scatter.c
                         drm_vm.c files.drm
Added files:
        sys/dev/pci/drm: drm_memrange.c

Log message:
The mmap offsets for memory buffers currently are the kernel virtual
address. This is just plain wrong. scatter/gather on amd64 didn't work
here, since char device mmap doesn't take negative offsets so higher
kvas fail.

Instead, prematurely import drm_memrange which is needed for the memory
managers (GEM or TTM), and is used to manage GART space. Then, horribly
abuse it to allocate mmap offsets, fixes up the issues.

"just commit it" art.