diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1999-09-28 22:25:29 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 1999-09-28 22:25:29 +0000 |
commit | 0ae8dceaebe3659ee0c3352c08125f403e77ebca (patch) | |
tree | 5085c389f09da78182b899d19fe1068b619a69dd /arch/sparc/mm/sun4c.c | |
parent | 273767781288c35c9d679e908672b9996cda4c34 (diff) |
Merge with 2.3.10.
Diffstat (limited to 'arch/sparc/mm/sun4c.c')
-rw-r--r-- | arch/sparc/mm/sun4c.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/sparc/mm/sun4c.c b/arch/sparc/mm/sun4c.c index d6387d473..c6bf02fc0 100644 --- a/arch/sparc/mm/sun4c.c +++ b/arch/sparc/mm/sun4c.c @@ -2682,8 +2682,10 @@ static void sun4c_vac_alias_fixup(struct vm_area_struct *vma, unsigned long addr inode = dentry->d_inode; if(inode) { unsigned long offset = (address & PAGE_MASK) - vma->vm_start; - struct vm_area_struct *vmaring = inode->i_mmap; + struct vm_area_struct *vmaring; int alias_found = 0; + spin_lock(&inode->i_shared_lock); + vmaring = inode->i_mmap; do { unsigned long vaddr = vmaring->vm_start + offset; unsigned long start; @@ -2712,6 +2714,7 @@ static void sun4c_vac_alias_fixup(struct vm_area_struct *vma, unsigned long addr } } } while ((vmaring = vmaring->vm_next_share) != NULL); + spin_unlock(&inode->i_shared_lock); if(alias_found && !(pte_val(pte) & _SUN4C_PAGE_NOCACHE)) { pgdp = sun4c_pgd_offset(vma->vm_mm, address); |