From: Heiko Carstens <[EMAIL PROTECTED]>

[S390] extmem unbalanced spin_lock.

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 <[EMAIL PROTECTED]>
Signed-off-by: Martin Schwidefsky <[EMAIL PROTECTED]>
---

 arch/s390/mm/extmem.c |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff -urpN linux-2.6/arch/s390/mm/extmem.c 
linux-2.6-patched/arch/s390/mm/extmem.c
--- linux-2.6/arch/s390/mm/extmem.c     2006-11-29 22:57:37.000000000 +0100
+++ linux-2.6-patched/arch/s390/mm/extmem.c     2006-12-04 14:50:45.000000000 
+0100
@@ -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 [EMAIL PROTECTED]",name);
-               return;
+               PRINT_ERR("could not find segment %s in segment_save, please "
+                         "report to [EMAIL PROTECTED]", name);
+               goto out;
        }
 
        startpfn = seg->start_addr >> PAGE_SHIFT;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to