printk: Add function to return log buffer address and size
authorVasant Hegde <hegdevasant@linux.vnet.ibm.com>
Sat, 9 Aug 2014 05:45:30 +0000 (11:15 +0530)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 13 Aug 2014 05:13:44 +0000 (15:13 +1000)
Platforms like IBM Power Systems supports service processor
assisted dump. It provides interface to add memory region to
be captured when system is crashed.

During initialization/running we can add kernel memory region
to be collected.

Presently we don't have a way to get the log buffer base address
and size. This patch adds support to return log buffer address
and size.

Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/printk.h
kernel/printk/printk.c

index 0990997a5304bb13f798bd79cd96097eb17681e5..d78125f73ac4f9e3838c2449921bb69301c02261 100644 (file)
@@ -10,6 +10,9 @@
 extern const char linux_banner[];
 extern const char linux_proc_banner[];
 
+extern char *log_buf_addr_get(void);
+extern u32 log_buf_len_get(void);
+
 static inline int printk_get_level(const char *buffer)
 {
        if (buffer[0] == KERN_SOH_ASCII && buffer[1]) {
index de1a6bb6861db5e92f0884e2b733cb5b6988679e..e04c455a0e3860b2aa5784d4c2522a21300525e4 100644 (file)
@@ -272,6 +272,18 @@ static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
 static char *log_buf = __log_buf;
 static u32 log_buf_len = __LOG_BUF_LEN;
 
+/* Return log buffer address */
+char *log_buf_addr_get(void)
+{
+       return log_buf;
+}
+
+/* Return log buffer size */
+u32 log_buf_len_get(void)
+{
+       return log_buf_len;
+}
+
 /* human readable text of the record */
 static char *log_text(const struct printk_log *msg)
 {