[PATCH] PPC64 log firmware errors during boot

From: Paul Mackerras
Date: Tue Aug 17 2004 - 21:19:25 EST


Firmware can report errors at any time, and not atypically during boot.
However, these reports were being discarded until th rtasd comes up,
which occurs fairly late in the boot cycle. As a result, firmware
errors during boot were being silently ignored.

Signed-off-by: Linas Vepstas <linas@xxxxxxxxx>
Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx>

diff -urN akpm-17aug/arch/ppc64/kernel/rtasd.c akpm/arch/ppc64/kernel/rtasd.c
--- akpm-17aug/arch/ppc64/kernel/rtasd.c 2004-08-03 08:07:43.000000000 +1000
+++ akpm/arch/ppc64/kernel/rtasd.c 2004-08-18 11:54:31.977939936 +1000
@@ -57,6 +57,8 @@
*/
static unsigned char logdata[RTAS_ERROR_LOG_MAX];

+static int get_eventscan_parms(void);
+
/* To see this info, grep RTAS /var/log/messages and each entry
* will be collected together with obvious begin/end.
* There will be a unique identifier on the begin and end lines.
@@ -121,6 +123,9 @@
len += err->extended_log_length;
}

+ if (rtas_error_log_max == 0) {
+ get_eventscan_parms();
+ }
if (len > rtas_error_log_max)
len = rtas_error_log_max;

@@ -148,7 +153,6 @@
int len = 0;

DEBUG("logging event\n");
-
if (buf == NULL)
return;

@@ -171,6 +175,13 @@
if (!no_more_logging && !(err_type & ERR_FLAG_BOOT))
nvram_write_error_log(buf, len, err_type);

+ /* rtas errors can occur during boot, and we do want to capture
+ * those somewhere, even if nvram isn't ready (why not?), and even
+ * if rtasd isn't ready. Put them into the boot log, at least. */
+ if ((err_type & ERR_TYPE_MASK) == ERR_TYPE_RTAS_LOG) {
+ printk_log_rtas(buf, len);
+ }
+
/* Check to see if we need to or have stopped logging */
if (fatal || no_more_logging) {
no_more_logging = 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/