[S390] extmem unbalanced spin_lock.
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Mon, 4 Dec 2006 14:40:20 +0000 (15:40 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 4 Dec 2006 14:40:20 +0000 (15:40 +0100)
segment save will exit with a lock held if the passed segment doesn't
exist. Any subsequent call to segment_save will lead to a deadlock.
Fix this and give up the lock before returning.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/mm/extmem.c

index 226275d5c4f60a39a506635d961399e51479e25c..077af540494833c43093fb676506a76a41113bec 100644 (file)
@@ -563,8 +563,9 @@ segment_save(char *name)
        seg = segment_by_name (name);
 
        if (seg == NULL) {
-               PRINT_ERR ("could not find segment %s in segment_save, please report to linux390@de.ibm.com\n",name);
-               return;
+               PRINT_ERR("could not find segment %s in segment_save, please "
+                         "report to linux390@de.ibm.com\n", name);
+               goto out;
        }
 
        startpfn = seg->start_addr >> PAGE_SHIFT;