diff options
| -rw-r--r-- | arch/powerpc/platforms/cell/spufs/file.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index 64f8b0a9b9e1..514a1d508035 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c | |||
| @@ -102,12 +102,16 @@ spufs_mem_mmap_nopage(struct vm_area_struct *vma, | |||
| 102 | 102 | ||
| 103 | spu_acquire(ctx); | 103 | spu_acquire(ctx); |
| 104 | 104 | ||
| 105 | if (ctx->state == SPU_STATE_SAVED) | 105 | if (ctx->state == SPU_STATE_SAVED) { |
| 106 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) | ||
| 107 | & ~(_PAGE_NO_CACHE | _PAGE_GUARDED)); | ||
| 106 | page = vmalloc_to_page(ctx->csa.lscsa->ls + offset); | 108 | page = vmalloc_to_page(ctx->csa.lscsa->ls + offset); |
| 107 | else | 109 | } else { |
| 110 | vma->vm_page_prot = __pgprot(pgprot_val(vma->vm_page_prot) | ||
| 111 | | _PAGE_NO_CACHE | _PAGE_GUARDED); | ||
| 108 | page = pfn_to_page((ctx->spu->local_store_phys + offset) | 112 | page = pfn_to_page((ctx->spu->local_store_phys + offset) |
| 109 | >> PAGE_SHIFT); | 113 | >> PAGE_SHIFT); |
| 110 | 114 | } | |
| 111 | spu_release(ctx); | 115 | spu_release(ctx); |
| 112 | 116 | ||
| 113 | if (type) | 117 | if (type) |
