--- 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(&current->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;