diff options
| author | Dave Jones <davej@redhat.com> | 2004-12-15 15:32:04 -0500 |
|---|---|---|
| committer | Dave Jones <davej@redhat.com> | 2004-12-15 15:32:04 -0500 |
| commit | 6025ca4cbd01fb660f998ed133d3aa05f076cb52 (patch) | |
| tree | 4f78bca393c7767bbcf73f32f2172309f483b553 | |
| parent | b7b558cdef4caeb001fb1d651ce1000bad29f6cb (diff) | |
[AGPGART] Fix masking (causes crash on 460GX).
virt_to_page(phys_to_virt(masked_addr)) still works. But the 460GX
sticks bits in the middle, so the free blows up.
I've tested the agp_allocate_memory() change on Intel 460GX. I don't have
hardware to test the Intel MCH change, but it looks to me like the same
problem.
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Dave Jones <davej@redhat.com>
| -rw-r--r-- | drivers/char/agp/generic.c | 3 | ||||
| -rw-r--r-- | drivers/char/agp/intel-mch-agp.c | 2 |
2 files changed, 2 insertions, 3 deletions
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c index b40c628e4d9d..d62a51d6be65 100644 --- a/drivers/char/agp/generic.c +++ b/drivers/char/agp/generic.c @@ -204,8 +204,7 @@ struct agp_memory *agp_allocate_memory(size_t page_count, u32 type) agp_free_memory(new); return NULL; } - new->memory[i] = - agp_bridge->driver->mask_memory(virt_to_phys(addr), type); + new->memory[i] = virt_to_phys(addr); new->page_count++; } diff --git a/drivers/char/agp/intel-mch-agp.c b/drivers/char/agp/intel-mch-agp.c index d9040c3b8227..2611543bf587 100644 --- a/drivers/char/agp/intel-mch-agp.c +++ b/drivers/char/agp/intel-mch-agp.c @@ -51,7 +51,7 @@ static struct agp_memory *alloc_agpphysmem_i8xx(size_t pg_count, int type) if (new == NULL) return NULL; - new->memory[0] = agp_bridge->driver->mask_memory(virt_to_phys(addr), type); + new->memory[0] = virt_to_phys(addr); new->page_count = 1; new->num_scratch_pages = 1; new->type = AGP_PHYS_MEMORY; |
