Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input
[powerpc.git] / drivers / s390 / char / vmlogrdr.c
index b87d3b0..a5a00e9 100644 (file)
@@ -125,7 +125,7 @@ static struct vmlogrdr_priv_t sys_ser[] = {
          .recording_name = "EREP",
          .minor_num      = 0,
          .buffer_free    = 1,
-         .priv_lock      = SPIN_LOCK_UNLOCKED,
+         .priv_lock      = __SPIN_LOCK_UNLOCKED(sys_ser[0].priv_lock),
          .autorecording  = 1,
          .autopurge      = 1,
        },
@@ -134,7 +134,7 @@ static struct vmlogrdr_priv_t sys_ser[] = {
          .recording_name = "ACCOUNT",
          .minor_num      = 1,
          .buffer_free    = 1,
-         .priv_lock      = SPIN_LOCK_UNLOCKED,
+         .priv_lock      = __SPIN_LOCK_UNLOCKED(sys_ser[1].priv_lock),
          .autorecording  = 1,
          .autopurge      = 1,
        },
@@ -143,7 +143,7 @@ static struct vmlogrdr_priv_t sys_ser[] = {
          .recording_name = "SYMPTOM",
          .minor_num      = 2,
          .buffer_free    = 1,
-         .priv_lock      = SPIN_LOCK_UNLOCKED,
+         .priv_lock      = __SPIN_LOCK_UNLOCKED(sys_ser[2].priv_lock),
          .autorecording  = 1,
          .autopurge      = 1,
        }
@@ -385,6 +385,9 @@ static int vmlogrdr_release (struct inode *inode, struct file *filp)
 
        struct vmlogrdr_priv_t * logptr = filp->private_data;
 
+       iucv_path_sever(logptr->path, NULL);
+       kfree(logptr->path);
+       logptr->path = NULL;
        if (logptr->autorecording) {
                ret = vmlogrdr_recording(logptr,0,logptr->autopurge);
                if (ret)