Commit 79c0108d1b9db4864ab77b2a95dfa04f2dcf264c
Committed by
Paul Mackerras
1 parent
72755f4407
Exists in
master
and in
7 other branches
[POWERPC] pseries: Fix jumbled no_logging flag
Get rid of the jumbled usage of the no_logging flag. Its use spans several directories, and is incorrectly/misleadingly documented. Instead, two changes: 1) nvram will accept error log as soon as its ready. 2) logging to nvram stops on the first fatal error reported. Signed-off-by: Linas Vepstas <linas@austin.ibm.com> ---- arch/powerpc/kernel/nvram_64.c | 8 -------- arch/powerpc/platforms/pseries/rtasd.c | 14 ++++++-------- 2 files changed, 6 insertions(+), 16 deletions(-) Signed-off-by: Paul Mackerras <paulus@samba.org>
Showing 2 changed files with 6 additions and 16 deletions Side-by-side Diff
arch/powerpc/kernel/nvram_64.c
... | ... | @@ -38,10 +38,6 @@ |
38 | 38 | static long nvram_error_log_index = -1; |
39 | 39 | static long nvram_error_log_size = 0; |
40 | 40 | |
41 | -int no_logging = 1; /* Until we initialize everything, | |
42 | - * make sure we don't try logging | |
43 | - * anything */ | |
44 | - | |
45 | 41 | extern volatile int error_log_cnt; |
46 | 42 | |
47 | 43 | struct err_log_info { |
... | ... | @@ -637,10 +633,6 @@ |
637 | 633 | loff_t tmp_index; |
638 | 634 | struct err_log_info info; |
639 | 635 | |
640 | - if (no_logging) { | |
641 | - return -EPERM; | |
642 | - } | |
643 | - | |
644 | 636 | if (nvram_error_log_index == -1) { |
645 | 637 | return -ESPIPE; |
646 | 638 | } |
arch/powerpc/platforms/pseries/rtasd.c
... | ... | @@ -53,7 +53,8 @@ |
53 | 53 | |
54 | 54 | static int full_rtas_msgs = 0; |
55 | 55 | |
56 | -extern int no_logging; | |
56 | +/* Stop logging to nvram after first fatal error */ | |
57 | +static int no_more_logging; | |
57 | 58 | |
58 | 59 | volatile int error_log_cnt = 0; |
59 | 60 | |
... | ... | @@ -216,7 +217,7 @@ |
216 | 217 | } |
217 | 218 | |
218 | 219 | /* Write error to NVRAM */ |
219 | - if (!no_logging && !(err_type & ERR_FLAG_BOOT)) | |
220 | + if (!no_more_logging && !(err_type & ERR_FLAG_BOOT)) | |
220 | 221 | nvram_write_error_log(buf, len, err_type); |
221 | 222 | |
222 | 223 | /* |
... | ... | @@ -228,8 +229,8 @@ |
228 | 229 | printk_log_rtas(buf, len); |
229 | 230 | |
230 | 231 | /* Check to see if we need to or have stopped logging */ |
231 | - if (fatal || no_logging) { | |
232 | - no_logging = 1; | |
232 | + if (fatal || no_more_logging) { | |
233 | + no_more_logging = 1; | |
233 | 234 | spin_unlock_irqrestore(&rtasd_log_lock, s); |
234 | 235 | return; |
235 | 236 | } |
... | ... | @@ -301,7 +302,7 @@ |
301 | 302 | |
302 | 303 | spin_lock_irqsave(&rtasd_log_lock, s); |
303 | 304 | /* if it's 0, then we know we got the last one (the one in NVRAM) */ |
304 | - if (rtas_log_size == 0 && !no_logging) | |
305 | + if (rtas_log_size == 0 && !no_more_logging) | |
305 | 306 | nvram_clear_error_log(); |
306 | 307 | spin_unlock_irqrestore(&rtasd_log_lock, s); |
307 | 308 | |
... | ... | @@ -412,9 +413,6 @@ |
412 | 413 | /* See if we have any error stored in NVRAM */ |
413 | 414 | memset(logdata, 0, rtas_error_log_max); |
414 | 415 | rc = nvram_read_error_log(logdata, rtas_error_log_max, &err_type); |
415 | - | |
416 | - /* We can use rtas_log_buf now */ | |
417 | - no_logging = 0; | |
418 | 416 | |
419 | 417 | if (!rc) { |
420 | 418 | if (err_type != ERR_FLAG_ALREADY_LOGGED) { |