diff options
author | Dave Airlie <airlied@optimus.localdomain> | 2006-12-19 18:24:44 +1100 |
---|---|---|
committer | Dave Airlie <airlied@linux.ie> | 2006-12-19 18:24:44 +1100 |
commit | 0ab48b0841de138f4a428a6d32d3e4d3e552db53 (patch) | |
tree | ff14100fb8f5c16d73f5f4b197b8c97f25b56248 | |
parent | 303307d25484f3f7179e6967697d28369a73dca9 (diff) |
[PATCH] mm: incorrect VM_FAULT_OOM returns from drivers
Some drivers are returning OOM when it is not in response to a memory
shortage.
Signed-off-by: Nick Piggin <npiggin@suse.de>
-rw-r--r-- | linux-core/drm_vm.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/linux-core/drm_vm.c b/linux-core/drm_vm.c index 6eb996ad..4f6a20eb 100644 --- a/linux-core/drm_vm.c +++ b/linux-core/drm_vm.c @@ -269,13 +269,13 @@ static __inline__ struct page *drm_do_vm_shm_nopage(struct vm_area_struct *vma, if (address > vma->vm_end) return NOPAGE_SIGBUS; /* Disallow mremap */ if (!map) - return NOPAGE_OOM; /* Nothing allocated */ + return NOPAGE_SIGBUS; /* Nothing allocated */ offset = address - vma->vm_start; i = (unsigned long)map->handle + offset; page = vmalloc_to_page((void *)i); if (!page) - return NOPAGE_OOM; + return NOPAGE_SIGBUS; get_page(page); DRM_DEBUG("shm_nopage 0x%lx\n", address); @@ -396,7 +396,7 @@ static __inline__ struct page *drm_do_vm_dma_nopage(struct vm_area_struct *vma, if (address > vma->vm_end) return NOPAGE_SIGBUS; /* Disallow mremap */ if (!dma->pagelist) - return NOPAGE_OOM; /* Nothing allocated */ + return NOPAGE_SIGBUS; /* Nothing allocated */ offset = address - vma->vm_start; /* vm_[pg]off[set] should be 0 */ page_nr = offset >> PAGE_SHIFT; @@ -435,7 +435,7 @@ static __inline__ struct page *drm_do_vm_sg_nopage(struct vm_area_struct *vma, if (address > vma->vm_end) return NOPAGE_SIGBUS; /* Disallow mremap */ if (!entry->pagelist) - return NOPAGE_OOM; /* Nothing allocated */ + return NOPAGE_SIGBUS; /* Nothing allocated */ offset = address - vma->vm_start; map_offset = map->offset - (unsigned long)dev->sg->virtual; |