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