Re: [Patch]Introduce get_reason_str() to pstore
From: Don Zickus
Date: Fri Mar 16 2012 - 16:08:20 EST
On Fri, Mar 16, 2012 at 01:01:49PM -0400, Seiji Aguchi wrote:
> Hi,
>
> Recently, there has been some changes in kmsg_dump() below and they have been applied to linus-tree.
> (1) kmsg_dump(KMSG_DUMP_KEXEC) was removed.
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=a3dd3323058d281abd584b15ad4c5b65064d7a61
>
> (2) A order of "enum kmsg_dump_reason" was modified.
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commitdiff;h=c22ab332902333f83766017478c1ef6607ace681
>
> This patch removes reason_str array and add get_reason_str() in accordance with Adrian's comment below.
> https://lkml.org/lkml/2012/3/16/63
Future proofs things a little bit. Looks good to me.
Acked-by: Don Zickus <dzickus@xxxxxxxxxx>
>
> Signed-off-by: Seiji Aguchi <seiji.aguchi@xxxxxxx>
> Signed-off-by: Adrian Hunter <adrian.hunter@xxxxxxxxx>
>
> ---
> fs/pstore/platform.c | 30 ++++++++++++++++++++++--------
> 1 files changed, 22 insertions(+), 8 deletions(-)
>
> diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 9ec22d3..82c585f 100644
> --- a/fs/pstore/platform.c
> +++ b/fs/pstore/platform.c
> @@ -68,9 +68,25 @@ void pstore_set_kmsg_bytes(int bytes)
> /* Tag each group of saved records with a sequence number */
> static int oopscount;
>
> -static char *reason_str[] = {
> - "Oops", "Panic", "Kexec", "Restart", "Halt", "Poweroff", "Emergency"
> -};
> +static const char *get_reason_str(enum kmsg_dump_reason reason) {
> + switch (reason) {
> + case KMSG_DUMP_PANIC:
> + return "Panic";
> + case KMSG_DUMP_OOPS:
> + return "Oops";
> + case KMSG_DUMP_EMERG:
> + return "Emergency";
> + case KMSG_DUMP_RESTART:
> + return "Restart";
> + case KMSG_DUMP_HALT:
> + return "Halt";
> + case KMSG_DUMP_POWEROFF:
> + return "Poweroff";
> + default:
> + return "Unknown";
> + }
> +}
>
> /*
> * callback from kmsg_dump. (s2,l2) has the most recently @@ -85,17 +101,15 @@ static void pstore_dump(struct kmsg_dumper *dumper,
> unsigned long s1_start, s2_start;
> unsigned long l1_cpy, l2_cpy;
> unsigned long size, total = 0;
> - char *dst, *why;
> + char *dst;
> + const char *why;
> u64 id;
> int hsize, ret;
> unsigned int part = 1;
> unsigned long flags = 0;
> int is_locked = 0;
>
> - if (reason < ARRAY_SIZE(reason_str))
> - why = reason_str[reason];
> - else
> - why = "Unknown";
> + why = get_reason_str(reason);
>
> if (in_nmi()) {
> is_locked = spin_trylock(&psinfo->buf_lock);
> --
> 1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/