fixup GFP_COMP for older kernels and get_page/put_page for newer
parent
30a5787d36
commit
d365f03129
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue