Commit 88f399cd authored by Dave Airlie's avatar Dave Airlie Committed by Dave Airlie

drm: fixes for powerpc

Remove a bogus check on whether an area is memory (we need a better interface)
also change pgprot flags for powerpc
don't check on x86-64 either

From: Paul Mackerras <paulus@samba.org>
Signed-off-by: default avatarDave Airlie <airlied@linux.ie>
parent ffbbf7a3
...@@ -152,7 +152,7 @@ int drm_addmap(drm_device_t * dev, unsigned int offset, ...@@ -152,7 +152,7 @@ int drm_addmap(drm_device_t * dev, unsigned int offset,
switch ( map->type ) { switch ( map->type ) {
case _DRM_REGISTERS: case _DRM_REGISTERS:
case _DRM_FRAME_BUFFER: case _DRM_FRAME_BUFFER:
#if !defined(__sparc__) && !defined(__alpha__) && !defined(__ia64__) #if !defined(__sparc__) && !defined(__alpha__) && !defined(__ia64__) && !defined(__powerpc64__) && !defined(__x86_64__)
if ( map->offset + map->size < map->offset || if ( map->offset + map->size < map->offset ||
map->offset < virt_to_phys(high_memory) ) { map->offset < virt_to_phys(high_memory) ) {
drm_free( map, sizeof(*map), DRM_MEM_MAPS ); drm_free( map, sizeof(*map), DRM_MEM_MAPS );
...@@ -309,7 +309,7 @@ int drm_addmap_ioctl(struct inode *inode, struct file *filp, ...@@ -309,7 +309,7 @@ int drm_addmap_ioctl(struct inode *inode, struct file *filp,
if (put_user(handle, &argp->handle)) if (put_user(handle, &argp->handle))
return -EFAULT; return -EFAULT;
return 0; return 0;
} }
/** /**
......
...@@ -578,17 +578,17 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma) ...@@ -578,17 +578,17 @@ int drm_mmap(struct file *filp, struct vm_area_struct *vma)
/* fall through to _DRM_FRAME_BUFFER... */ /* fall through to _DRM_FRAME_BUFFER... */
case _DRM_FRAME_BUFFER: case _DRM_FRAME_BUFFER:
case _DRM_REGISTERS: case _DRM_REGISTERS:
if (map->offset >= __pa(high_memory)) {
#if defined(__i386__) || defined(__x86_64__) #if defined(__i386__) || defined(__x86_64__)
if (boot_cpu_data.x86 > 3 && map->type != _DRM_AGP) { if (boot_cpu_data.x86 > 3 && map->type != _DRM_AGP) {
pgprot_val(vma->vm_page_prot) |= _PAGE_PCD; pgprot_val(vma->vm_page_prot) |= _PAGE_PCD;
pgprot_val(vma->vm_page_prot) &= ~_PAGE_PWT; pgprot_val(vma->vm_page_prot) &= ~_PAGE_PWT;
} }
#elif defined(__powerpc__) #elif defined(__powerpc__)
pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE | _PAGE_GUARDED; pgprot_val(vma->vm_page_prot) |= _PAGE_NO_CACHE;
if (map->type == _DRM_REGISTERS)
pgprot_val(vma->vm_page_prot) |= _PAGE_GUARDED;
#endif #endif
vma->vm_flags |= VM_IO; /* not in core dump */ vma->vm_flags |= VM_IO; /* not in core dump */
}
#if defined(__ia64__) #if defined(__ia64__)
if (efi_range_is_wc(vma->vm_start, vma->vm_end - if (efi_range_is_wc(vma->vm_start, vma->vm_end -
vma->vm_start)) vma->vm_start))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment