diff options
Diffstat (limited to 'drivers/char/agp/i460-agp.c')
-rw-r--r-- | drivers/char/agp/i460-agp.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/char/agp/i460-agp.c b/drivers/char/agp/i460-agp.c index 58944cd271ea..be2e569ae910 100644 --- a/drivers/char/agp/i460-agp.c +++ b/drivers/char/agp/i460-agp.c | |||
@@ -514,9 +514,10 @@ static void *i460_alloc_page (struct agp_bridge_data *bridge) | |||
514 | { | 514 | { |
515 | void *page; | 515 | void *page; |
516 | 516 | ||
517 | if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) | 517 | if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) { |
518 | page = agp_generic_alloc_page(agp_bridge); | 518 | page = agp_generic_alloc_page(agp_bridge); |
519 | else | 519 | global_flush_tlb(); |
520 | } else | ||
520 | /* Returning NULL would cause problems */ | 521 | /* Returning NULL would cause problems */ |
521 | /* AK: really dubious code. */ | 522 | /* AK: really dubious code. */ |
522 | page = (void *)~0UL; | 523 | page = (void *)~0UL; |
@@ -525,8 +526,10 @@ static void *i460_alloc_page (struct agp_bridge_data *bridge) | |||
525 | 526 | ||
526 | static void i460_destroy_page (void *page) | 527 | static void i460_destroy_page (void *page) |
527 | { | 528 | { |
528 | if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) | 529 | if (I460_IO_PAGE_SHIFT <= PAGE_SHIFT) { |
529 | agp_generic_destroy_page(page); | 530 | agp_generic_destroy_page(page); |
531 | global_flush_tlb(); | ||
532 | } | ||
530 | } | 533 | } |
531 | 534 | ||
532 | #endif /* I460_LARGE_IO_PAGES */ | 535 | #endif /* I460_LARGE_IO_PAGES */ |