powerpc/pseries: Initialise nvram_pstore_info's buf_lock
authorLi Zhong <zhong@linux.vnet.ibm.com>
Mon, 17 Nov 2014 02:52:30 +0000 (10:52 +0800)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 19 Nov 2014 05:09:13 +0000 (16:09 +1100)
nvram_pstore_info's buf_lock is not initialized before registering,
which is clearly incorrect.

It causes some strange behavior when trying to obtain the lock during
kdump process.

On a UP configuration, the console stopped for a couple of seconds, then
"lockup suspected" warning printed out, but then it continued to run.

So try lock fails, and lockup reported, but then arch_spin_lock()
passes.

Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
[mpe: Edited changelog]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/pseries/nvram.c

index 11a3b617ef5dbd4b7d6cbed7d045d9bc3c4c7d95..054a0ed5c7ee072726cfd3b09ecd45a4b10fe578 100644 (file)
@@ -715,6 +715,8 @@ static int nvram_pstore_init(void)
        nvram_pstore_info.buf = oops_data;
        nvram_pstore_info.bufsize = oops_data_sz;
 
+       spin_lock_init(&nvram_pstore_info.buf_lock);
+
        rc = pstore_register(&nvram_pstore_info);
        if (rc != 0)
                pr_err("nvram: pstore_register() failed, defaults to "