mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 18:39:59 +00:00
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: Dave Airlie <airlied@linux.ie>
This commit is contained in:
parent
ffbbf7a3cc
commit
88f399cd0a
2 changed files with 11 additions and 11 deletions
|
@ -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,
|
||||||
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)
|
||||||
/* 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))
|
||||||
|
|
Loading…
Reference in a new issue