X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fsbus%2Fchar%2Fflash.c;h=cf2457b667a4097c15210803468caad34b4ec786;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=0d42950448f57625a7d4dd4d96061d58b8485ad4;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c index 0d4295044..cf2457b66 100644 --- a/drivers/sbus/char/flash.c +++ b/drivers/sbus/char/flash.c @@ -24,7 +24,7 @@ #include #include -static spinlock_t flash_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(flash_lock); static struct { unsigned long read_base; /* Physical read address */ unsigned long write_base; /* Physical write address */ @@ -66,7 +66,7 @@ flash_mmap(struct file *file, struct vm_area_struct *vma) if ((vma->vm_pgoff << PAGE_SHIFT) > size) return -ENXIO; - addr += (vma->vm_pgoff << PAGE_SHIFT); + addr = vma->vm_pgoff + (addr >> PAGE_SHIFT); if (vma->vm_end - (vma->vm_start + (vma->vm_pgoff << PAGE_SHIFT)) > size) size = vma->vm_end - (vma->vm_start + (vma->vm_pgoff << PAGE_SHIFT)); @@ -75,7 +75,7 @@ flash_mmap(struct file *file, struct vm_area_struct *vma) pgprot_val(vma->vm_page_prot) |= _PAGE_E; vma->vm_flags |= (VM_SHM | VM_LOCKED); - if (remap_page_range(vma, vma->vm_start, addr, size, vma->vm_page_prot)) + if (remap_pfn_range(vma, vma->vm_start, addr, size, vma->vm_page_prot)) return -EAGAIN; return 0;