diff options
Diffstat (limited to 'drivers/char/ramoops.c')
-rw-r--r-- | drivers/char/ramoops.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/char/ramoops.c b/drivers/char/ramoops.c index d3d63be2cd3..1a9f5f6d6ac 100644 --- a/drivers/char/ramoops.c +++ b/drivers/char/ramoops.c | |||
@@ -30,7 +30,7 @@ | |||
30 | 30 | ||
31 | #define RAMOOPS_KERNMSG_HDR "====" | 31 | #define RAMOOPS_KERNMSG_HDR "====" |
32 | 32 | ||
33 | #define RECORD_SIZE 4096 | 33 | #define RECORD_SIZE 4096UL |
34 | 34 | ||
35 | static ulong mem_address; | 35 | static ulong mem_address; |
36 | module_param(mem_address, ulong, 0400); | 36 | module_param(mem_address, ulong, 0400); |
@@ -68,11 +68,16 @@ static void ramoops_do_dump(struct kmsg_dumper *dumper, | |||
68 | char *buf, *buf_orig; | 68 | char *buf, *buf_orig; |
69 | struct timeval timestamp; | 69 | struct timeval timestamp; |
70 | 70 | ||
71 | if (reason != KMSG_DUMP_OOPS && | ||
72 | reason != KMSG_DUMP_PANIC && | ||
73 | reason != KMSG_DUMP_KEXEC) | ||
74 | return; | ||
75 | |||
71 | /* Only dump oopses if dump_oops is set */ | 76 | /* Only dump oopses if dump_oops is set */ |
72 | if (reason == KMSG_DUMP_OOPS && !dump_oops) | 77 | if (reason == KMSG_DUMP_OOPS && !dump_oops) |
73 | return; | 78 | return; |
74 | 79 | ||
75 | buf = (char *)(cxt->virt_addr + (cxt->count * RECORD_SIZE)); | 80 | buf = cxt->virt_addr + (cxt->count * RECORD_SIZE); |
76 | buf_orig = buf; | 81 | buf_orig = buf; |
77 | 82 | ||
78 | memset(buf, '\0', RECORD_SIZE); | 83 | memset(buf, '\0', RECORD_SIZE); |
@@ -83,8 +88,8 @@ static void ramoops_do_dump(struct kmsg_dumper *dumper, | |||
83 | buf += res; | 88 | buf += res; |
84 | 89 | ||
85 | hdr_size = buf - buf_orig; | 90 | hdr_size = buf - buf_orig; |
86 | l2_cpy = min(l2, (unsigned long)(RECORD_SIZE - hdr_size)); | 91 | l2_cpy = min(l2, RECORD_SIZE - hdr_size); |
87 | l1_cpy = min(l1, (unsigned long)(RECORD_SIZE - hdr_size) - l2_cpy); | 92 | l1_cpy = min(l1, RECORD_SIZE - hdr_size - l2_cpy); |
88 | 93 | ||
89 | s2_start = l2 - l2_cpy; | 94 | s2_start = l2 - l2_cpy; |
90 | s1_start = l1 - l1_cpy; | 95 | s1_start = l1 - l1_cpy; |