diff options
| -rw-r--r-- | linux-core/ati_pcigart.c | 7 | ||||
| -rw-r--r-- | linux-core/drm_compat.h | 6 | 
2 files changed, 11 insertions, 2 deletions
| 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 | 
