--- linux-2.6.25.3.old/arch/sparc64/kernel/sys_sparc.c 2008-05-12 11:43:17.000000000 +0200 +++ linux-2.6.25.3/arch/sparc64/kernel/sys_sparc.c 2008-05-12 12:18:58.000000000 +0200 @@ -620,10 +620,9 @@ goto out; down_write(¤t->mm->mmap_sem); - if (flags & MREMAP_FIXED) { - if (invalid_64bit_range(new_addr, new_len)) - goto out_sem; - } else if (invalid_64bit_range(addr, new_len)) { + if (invalid_64bit_range(new_addr, new_len)) + goto out_sem; + else if (invalid_64bit_range(addr, new_len)) { unsigned long map_flags = 0; struct file *file = NULL;