drm: missing init_mm symbol, compatibility fix
The drm_compat.c version of kmap_atomic_prot_pfn() uses the macro pgd_offset_k(), which references the symbol init_mm. Starting in 2.6.25, init_mm is no longer exported by default. The only user of kmap_atomic_prot_pfn() is i915, so this should not hurt anyone, and it allows people to load drm.ko. Signed-off-by: Pekka Paalanen <pq@iki.fi>main
parent
145d2d610b
commit
89ef1b5483
|
@ -333,9 +333,24 @@ typedef _Bool bool;
|
||||||
|
|
||||||
|
|
||||||
#if (defined(CONFIG_X86) && defined(CONFIG_X86_32) && defined(CONFIG_HIGHMEM))
|
#if (defined(CONFIG_X86) && defined(CONFIG_X86_32) && defined(CONFIG_HIGHMEM))
|
||||||
|
/*
|
||||||
|
* pgd_offset_k() is a macro that uses the symbol init_mm,
|
||||||
|
* check that it is available.
|
||||||
|
*/
|
||||||
|
# if ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)) || \
|
||||||
|
defined(CONFIG_UNUSED_SYMBOLS))
|
||||||
#define DRM_KMAP_ATOMIC_PROT_PFN
|
#define DRM_KMAP_ATOMIC_PROT_PFN
|
||||||
extern void *kmap_atomic_prot_pfn(unsigned long pfn, enum km_type type,
|
extern void *kmap_atomic_prot_pfn(unsigned long pfn, enum km_type type,
|
||||||
pgprot_t protection);
|
pgprot_t protection);
|
||||||
|
# else
|
||||||
|
#warning "init_mm is not available on this kernel!"
|
||||||
|
static inline void *kmap_atomic_prot_pfn(unsigned long pfn, enum km_type type,
|
||||||
|
pgprot_t protection)
|
||||||
|
{
|
||||||
|
/* stub */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
# endif /* no init_mm */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(flush_agp_mappings)
|
#if !defined(flush_agp_mappings)
|
||||||
|
|
Loading…
Reference in New Issue