diff options
author | marcel <marcel@FreeBSD.org> | 2012-07-06 15:57:03 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2012-07-06 15:57:03 +0000 |
commit | dd5db9f53d0baca67fc336d16a2f1f6cd5756f77 (patch) | |
tree | 3681b4b4d816d821a41cd19f5ad9a6dec3285408 /sys/dev/agp/agp_i810.c | |
parent | ee444dc2954ee8608e0b9834c10c634fdf5783b6 (diff) | |
download | FreeBSD-src-dd5db9f53d0baca67fc336d16a2f1f6cd5756f77.zip FreeBSD-src-dd5db9f53d0baca67fc336d16a2f1f6cd5756f77.tar.gz |
agp.c:
Don't use Maxmem when the amount of memory is meant. Use realmem instead.
Maxmem is not only a MD variable, it represents the highest physical memory
address in use. On systems where memory is sparsely layed-out the highest
memory address and the amount of memory are not interchangeable. Scaling the
AGP aperture based on the actual amount of memory (= realmem) rather than
the available memory (= physmem) makes sure there's consistent behaviour
across architectures.
agp_i810.c:
While arguably the use of Maxmem can be considered correct, replace its use
with realmem anyway. agp_i810.c is specific to amd64, i386 & pc98, which
have a dense physical memory layout. Avoiding Maxmem here is done with an
eye on copy-n-paste behaviour in general and to avoid confusion caused by
using realmem in agp.c and Maxmem in agp_i810.c.
In both cases, remove the inclusion of md_var.h
Diffstat (limited to 'sys/dev/agp/agp_i810.c')
-rw-r--r-- | sys/dev/agp/agp_i810.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/agp/agp_i810.c b/sys/dev/agp/agp_i810.c index c0f592c..54ddfdc 100644 --- a/sys/dev/agp/agp_i810.c +++ b/sys/dev/agp/agp_i810.c @@ -74,7 +74,6 @@ __FBSDID("$FreeBSD$"); #include <machine/bus.h> #include <machine/resource.h> -#include <machine/md_var.h> #include <sys/rman.h> MALLOC_DECLARE(M_AGP); @@ -1439,7 +1438,7 @@ agp_i810_attach(device_t dev) if (error) return (error); - if (ptoa((vm_paddr_t)Maxmem) > + if (ptoa((vm_paddr_t)realmem) > (1ULL << sc->match->driver->busdma_addr_mask_sz) - 1) { device_printf(dev, "agp_i810 does not support physical " "memory above %ju.\n", (uintmax_t)(1ULL << |