summaryrefslogtreecommitdiffstats
path: root/sys/dev/agp
diff options
context:
space:
mode:
authorjkim <jkim@FreeBSD.org>2006-10-09 20:24:49 +0000
committerjkim <jkim@FreeBSD.org>2006-10-09 20:24:49 +0000
commit43f4f64397d3a184034d065423c741db758d6094 (patch)
tree90de9660332c937704268b0ee188ac91bd5afb80 /sys/dev/agp
parent57522b7a56fe68c134604aac9543bc89b01b0282 (diff)
downloadFreeBSD-src-43f4f64397d3a184034d065423c741db758d6094.zip
FreeBSD-src-43f4f64397d3a184034d065423c741db758d6094.tar.gz
Fix 32-bit PTE in the GART table.
Noticed by: jmg
Diffstat (limited to 'sys/dev/agp')
-rw-r--r--sys/dev/agp/agp_amd64.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/agp/agp_amd64.c b/sys/dev/agp/agp_amd64.c
index 9a4ccdb..e907efb 100644
--- a/sys/dev/agp/agp_amd64.c
+++ b/sys/dev/agp/agp_amd64.c
@@ -340,7 +340,9 @@ agp_amd64_bind_page(device_t dev, int offset, vm_offset_t physical)
if (offset < 0 || offset >= (sc->gatt->ag_entries << AGP_PAGE_SHIFT))
return EINVAL;
- sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] = physical;
+ sc->gatt->ag_virtual[offset >> AGP_PAGE_SHIFT] =
+ (physical & 0xfffff000) | ((physical >> 28) & 0x00000ff0) | 3;
+
return 0;
}
OpenPOWER on IntegriCloud