linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / s390 / mm / extmem.c
index 73feefb..a9566bc 100644 (file)
@@ -77,7 +77,7 @@ struct dcss_segment {
        int segcnt;
 };
 
-static spinlock_t dcss_lock = SPIN_LOCK_UNLOCKED;
+static DEFINE_SPINLOCK(dcss_lock);
 static struct list_head dcss_list = LIST_HEAD_INIT(dcss_list);
 static char *segtype_string[] = { "SW", "EW", "SR", "ER", "SN", "EN", "SC",
                                        "EW/EN-MIXED" };
@@ -117,7 +117,7 @@ segment_by_name (char *name)
        struct list_head *l;
        struct dcss_segment *tmp, *retval = NULL;
 
-       BUG_ON (!spin_is_locked(&dcss_lock));
+       assert_spin_locked(&dcss_lock);
        dcss_mkname (name, dcss_name);
        list_for_each (l, &dcss_list) {
                tmp = list_entry (l, struct dcss_segment, list);
@@ -143,7 +143,7 @@ dcss_diag (__u8 func, void *parameter,
        rx = (unsigned long) parameter;
        ry = (unsigned long) func;
        __asm__ __volatile__(
-#ifdef CONFIG_ARCH_S390X
+#ifdef CONFIG_64BIT
                "   sam31\n" // switch to 31 bit
                "   diag    %0,%1,0x64\n"
                "   sam64\n" // switch back to 64 bit
@@ -234,8 +234,8 @@ query_segment_type (struct dcss_segment *seg)
        rc = 0;
 
  out_free:
-       if (qin) kfree(qin);
-       if (qout) kfree(qout);
+       kfree(qin);
+       kfree(qout);
        return rc;
 }
 
@@ -271,7 +271,7 @@ segment_overlaps_others (struct dcss_segment *seg)
        struct list_head *l;
        struct dcss_segment *tmp;
 
-       BUG_ON (!spin_is_locked(&dcss_lock));
+       assert_spin_locked(&dcss_lock);
        list_for_each(l, &dcss_list) {
                tmp = list_entry(l, struct dcss_segment, list);
                if ((tmp->start_addr >> 20) > (seg->end >> 20))
@@ -394,7 +394,7 @@ __segment_load (char *name, int do_nonshared, unsigned long *addr, unsigned long
                                segtype_string[seg->vm_segtype]);
        goto out;
  out_free:
-       kfree (seg);
+       kfree(seg);
  out:
        return rc;
 }
@@ -505,7 +505,7 @@ segment_modify_shared (char *name, int do_nonshared)
        list_del(&seg->list);
        dcss_diag(DCSS_PURGESEG, seg->dcss_name,
                  &dummy, &dummy);
-       kfree (seg);
+       kfree(seg);
  out_unlock:
        spin_unlock(&dcss_lock);
        return rc;
@@ -545,7 +545,8 @@ out_unlock:
 /*
  * save segment content permanently
  */
-void segment_save(char *name)
+void
+segment_save(char *name)
 {
        struct dcss_segment *seg;
        int startpfn = 0;
@@ -575,8 +576,8 @@ void segment_save(char *name)
                        segtype_string[seg->range[i].start & 0xff]);
        }
        sprintf(cmd2, "SAVESEG %s", name);
-       cpcmd(cmd1, NULL, 80);
-       cpcmd(cmd2, NULL, 80);
+       cpcmd(cmd1, NULL, 0, NULL);
+       cpcmd(cmd2, NULL, 0, NULL);
        spin_unlock(&dcss_lock);
 }