2017-04-27 11:34:32

by Ankit Kumar

[permalink] [raw]
Subject: [PATCH] Enabled pstore write for powerpc

After commit c950fd6f201a kernel registers pstore write based on flag set.
Pstore write for powerpc is broken as flags(PSTORE_FLAGS_DMESG) is not set for
powerpc architecture. On panic, kernel doesn't write message to
/fs/pstore/dmesg*(Entry doesn't gets created at all).

This patch enables pstore write for powerpc architecture by setting
PSTORE_FLAGS_DMESG flag.

Fixes:c950fd6f201a pstore: Split pstore fragile flags
Signed-off-by: Ankit Kumar <[email protected]>
---

arch/powerpc/kernel/nvram_64.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
index d5e2b83..021db31 100644
--- a/arch/powerpc/kernel/nvram_64.c
+++ b/arch/powerpc/kernel/nvram_64.c
@@ -561,6 +561,7 @@ static ssize_t nvram_pstore_read(u64 *id, enum pstore_type_id *type,
static struct pstore_info nvram_pstore_info = {
.owner = THIS_MODULE,
.name = "nvram",
+ .flags = PSTORE_FLAGS_DMESG,
.open = nvram_pstore_open,
.read = nvram_pstore_read,
.write = nvram_pstore_write,
--
2.7.4


2017-04-27 20:21:54

by Anton Blanchard

[permalink] [raw]
Subject: Re: [PATCH] Enabled pstore write for powerpc

Hi Ankit,

> After commit c950fd6f201a kernel registers pstore write based on flag
> set. Pstore write for powerpc is broken as flags(PSTORE_FLAGS_DMESG)
> is not set for powerpc architecture. On panic, kernel doesn't write
> message to /fs/pstore/dmesg*(Entry doesn't gets created at all).
>
> This patch enables pstore write for powerpc architecture by setting
> PSTORE_FLAGS_DMESG flag.
>
> Fixes:c950fd6f201a pstore: Split pstore fragile flags

Ouch! We've used pstore to shoot customer bugs, so we should also mark
this for stable. Looks like 4.9 onwards?

Anton

> Signed-off-by: Ankit Kumar <[email protected]>
> ---
>
> arch/powerpc/kernel/nvram_64.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/powerpc/kernel/nvram_64.c
> b/arch/powerpc/kernel/nvram_64.c index d5e2b83..021db31 100644
> --- a/arch/powerpc/kernel/nvram_64.c
> +++ b/arch/powerpc/kernel/nvram_64.c
> @@ -561,6 +561,7 @@ static ssize_t nvram_pstore_read(u64 *id, enum
> pstore_type_id *type, static struct pstore_info nvram_pstore_info = {
> .owner = THIS_MODULE,
> .name = "nvram",
> + .flags = PSTORE_FLAGS_DMESG,
> .open = nvram_pstore_open,
> .read = nvram_pstore_read,
> .write = nvram_pstore_write,

2017-04-27 21:38:28

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] Enabled pstore write for powerpc

On Thu, Apr 27, 2017 at 4:33 AM, Ankit Kumar <[email protected]> wrote:
> After commit c950fd6f201a kernel registers pstore write based on flag set.
> Pstore write for powerpc is broken as flags(PSTORE_FLAGS_DMESG) is not set for
> powerpc architecture. On panic, kernel doesn't write message to
> /fs/pstore/dmesg*(Entry doesn't gets created at all).
>
> This patch enables pstore write for powerpc architecture by setting
> PSTORE_FLAGS_DMESG flag.
>
> Fixes:c950fd6f201a pstore: Split pstore fragile flags
> Signed-off-by: Ankit Kumar <[email protected]>

Argh, thanks! I thought I'd caught all of these. I'll include this for -stable.

-Kees

> ---
>
> arch/powerpc/kernel/nvram_64.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/powerpc/kernel/nvram_64.c b/arch/powerpc/kernel/nvram_64.c
> index d5e2b83..021db31 100644
> --- a/arch/powerpc/kernel/nvram_64.c
> +++ b/arch/powerpc/kernel/nvram_64.c
> @@ -561,6 +561,7 @@ static ssize_t nvram_pstore_read(u64 *id, enum pstore_type_id *type,
> static struct pstore_info nvram_pstore_info = {
> .owner = THIS_MODULE,
> .name = "nvram",
> + .flags = PSTORE_FLAGS_DMESG,
> .open = nvram_pstore_open,
> .read = nvram_pstore_read,
> .write = nvram_pstore_write,
> --
> 2.7.4
>



--
Kees Cook
Pixel Security

2017-04-28 02:58:02

by Michael Ellerman

[permalink] [raw]
Subject: Re: [PATCH] Enabled pstore write for powerpc

Kees Cook <[email protected]> writes:

> On Thu, Apr 27, 2017 at 4:33 AM, Ankit Kumar <[email protected]> wrote:
>> After commit c950fd6f201a kernel registers pstore write based on flag set.
>> Pstore write for powerpc is broken as flags(PSTORE_FLAGS_DMESG) is not set for
>> powerpc architecture. On panic, kernel doesn't write message to
>> /fs/pstore/dmesg*(Entry doesn't gets created at all).
>>
>> This patch enables pstore write for powerpc architecture by setting
>> PSTORE_FLAGS_DMESG flag.
>>
>> Fixes:c950fd6f201a pstore: Split pstore fragile flags
>> Signed-off-by: Ankit Kumar <[email protected]>
>
> Argh, thanks! I thought I'd caught all of these. I'll include this for -stable.

I see you've picked it up, thanks.

cheers