fixup GFP_COMP for older kernels and get_page/put_page for newer

main
Dave Airlie 2006-04-23 09:05:05 +00:00
parent 30a5787d36
commit d365f03129
2 changed files with 11 additions and 2 deletions

View File

@ -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);
}

View File

@ -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