From d365f031292d0f50755a3049c410443b1075fff5 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sun, 23 Apr 2006 09:05:05 +0000 Subject: fixup GFP_COMP for older kernels and get_page/put_page for newer --- linux-core/ati_pcigart.c | 7 ++++++- linux-core/drm_compat.h | 6 +++++- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'linux-core') diff --git a/linux-core/ati_pcigart.c b/linux-core/ati_pcigart.c index 6e4353b5..14317925 100644 --- a/linux-core/ati_pcigart.c +++ b/linux-core/ati_pcigart.c @@ -59,7 +59,8 @@ static void *drm_ati_alloc_pcigart_table(void) int i; DRM_DEBUG("%s\n", __FUNCTION__); - address = __get_free_pages(GFP_KERNEL, ATI_PCIGART_TABLE_ORDER); + address = __get_free_pages(GFP_KERNEL | __GFP_COMP, + ATI_PCIGART_TABLE_ORDER); if (address == 0UL) { return 0; } @@ -67,7 +68,9 @@ static void *drm_ati_alloc_pcigart_table(void) page = virt_to_page(address); for (i = 0; i < ATI_PCIGART_TABLE_PAGES; i++, page++) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15) get_page(page); +#endif SetPageReserved(page); } @@ -84,7 +87,9 @@ static void drm_ati_free_pcigart_table(void *address) page = virt_to_page((unsigned long)address); for (i = 0; i < ATI_PCIGART_TABLE_PAGES; i++, page++) { +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15) __put_page(page); +#endif ClearPageReserved(page); } diff --git a/linux-core/drm_compat.h b/linux-core/drm_compat.h index 46d6c0e6..03749d14 100644 --- a/linux-core/drm_compat.h +++ b/linux-core/drm_compat.h @@ -169,10 +169,14 @@ static inline void radeon_delete_i2c_busses(struct drm_device *dev) #define __user #endif -#ifndef __put_page +#if !defined(__put_page) #define __put_page(p) atomic_dec(&(p)->count) #endif +#if !defined(__GFP_COMP) +#define __GFP_COMP 0 +#endif + #ifndef REMAP_PAGE_RANGE_5_ARGS #define DRM_RPR_ARG(vma) #else -- cgit v1.2.3