Commit 79c0108d1b9db4864ab77b2a95dfa04f2dcf264c

Authored by Linas Vepstas
Committed by Paul Mackerras
1 parent 72755f4407

[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) {