diff options
Diffstat (limited to 'drivers/char/agp/amd64-agp.c')
| -rw-r--r-- | drivers/char/agp/amd64-agp.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index 485720486d60..c9f0f250d78f 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c | |||
| @@ -14,6 +14,7 @@ | |||
| 14 | #include <linux/agp_backend.h> | 14 | #include <linux/agp_backend.h> |
| 15 | #include <linux/mmzone.h> | 15 | #include <linux/mmzone.h> |
| 16 | #include <asm/page.h> /* PAGE_SIZE */ | 16 | #include <asm/page.h> /* PAGE_SIZE */ |
| 17 | #include <asm/e820.h> | ||
| 17 | #include <asm/k8.h> | 18 | #include <asm/k8.h> |
| 18 | #include "agp.h" | 19 | #include "agp.h" |
| 19 | 20 | ||
| @@ -259,7 +260,6 @@ static const struct agp_bridge_driver amd_8151_driver = { | |||
| 259 | /* Some basic sanity checks for the aperture. */ | 260 | /* Some basic sanity checks for the aperture. */ |
| 260 | static int __devinit aperture_valid(u64 aper, u32 size) | 261 | static int __devinit aperture_valid(u64 aper, u32 size) |
| 261 | { | 262 | { |
| 262 | u32 pfn, c; | ||
| 263 | if (aper == 0) { | 263 | if (aper == 0) { |
| 264 | printk(KERN_ERR PFX "No aperture\n"); | 264 | printk(KERN_ERR PFX "No aperture\n"); |
| 265 | return 0; | 265 | return 0; |
| @@ -272,14 +272,9 @@ static int __devinit aperture_valid(u64 aper, u32 size) | |||
| 272 | printk(KERN_ERR PFX "Aperture out of bounds\n"); | 272 | printk(KERN_ERR PFX "Aperture out of bounds\n"); |
| 273 | return 0; | 273 | return 0; |
| 274 | } | 274 | } |
| 275 | pfn = aper >> PAGE_SHIFT; | 275 | if (e820_any_mapped(aper, aper + size, E820_RAM)) { |
| 276 | for (c = 0; c < size/PAGE_SIZE; c++) { | 276 | printk(KERN_ERR PFX "Aperture pointing to RAM\n"); |
| 277 | if (!pfn_valid(pfn + c)) | 277 | return 0; |
| 278 | break; | ||
| 279 | if (!PageReserved(pfn_to_page(pfn + c))) { | ||
| 280 | printk(KERN_ERR PFX "Aperture pointing to RAM\n"); | ||
| 281 | return 0; | ||
| 282 | } | ||
| 283 | } | 278 | } |
| 284 | 279 | ||
| 285 | /* Request the Aperture. This catches cases when someone else | 280 | /* Request the Aperture. This catches cases when someone else |
