mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-11-27 17:55:55 +02:00
generic: fix crashlog patch for 3.6
kmsg_dump() uses an iterator to receive log buffer content since 3.5. Change the 'crashlog_do_dump' function in order to make it compatible with the new version. Signed-off-by: Gabor Juhos <juhosg@openwrt.org> git-svn-id: svn://svn.openwrt.org/openwrt/trunk@33970 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
parent
c0ed64d3dd
commit
ddf35bbead
@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/kernel/crashlog.c
|
+++ b/kernel/crashlog.c
|
||||||
@@ -0,0 +1,190 @@
|
@@ -0,0 +1,181 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Crash information logger
|
+ * Crash information logger
|
||||||
+ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
|
+ * Copyright (C) 2010 Felix Fietkau <nbd@openwrt.org>
|
||||||
@ -173,15 +173,12 @@
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static void crashlog_do_dump(struct kmsg_dumper *dumper,
|
+static void crashlog_do_dump(struct kmsg_dumper *dumper,
|
||||||
+ enum kmsg_dump_reason reason, const char *s1, unsigned long l1,
|
+ enum kmsg_dump_reason reason)
|
||||||
+ const char *s2, unsigned long l2)
|
|
||||||
+{
|
+{
|
||||||
+ unsigned long s1_start, s2_start;
|
|
||||||
+ unsigned long l1_cpy, l2_cpy;
|
|
||||||
+ struct timeval tv;
|
+ struct timeval tv;
|
||||||
+ struct module *m;
|
+ struct module *m;
|
||||||
+ char *buf;
|
+ char *buf;
|
||||||
+ int len;
|
+ size_t len;
|
||||||
+
|
+
|
||||||
+ if (!first)
|
+ if (!first)
|
||||||
+ crashlog_printf("\n===================================\n");
|
+ crashlog_printf("\n===================================\n");
|
||||||
@ -202,17 +199,10 @@
|
|||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ buf = (char *)&crashlog_buf->data[crashlog_buf->len];
|
+ buf = (char *)&crashlog_buf->data[crashlog_buf->len];
|
||||||
+ len = get_maxlen();
|
|
||||||
+
|
+
|
||||||
+ l2_cpy = min(l2, (unsigned long)len);
|
+ kmsg_dump_get_buffer(dumper, true, buf, get_maxlen(), &len);
|
||||||
+ l1_cpy = min(l1, (unsigned long)len - l2_cpy);
|
|
||||||
+
|
+
|
||||||
+ s2_start = l2 - l2_cpy;
|
+ crashlog_buf->len += len;
|
||||||
+ s1_start = l1 - l1_cpy;
|
|
||||||
+
|
|
||||||
+ memcpy(buf, s1 + s1_start, l1_cpy);
|
|
||||||
+ memcpy(buf + l1_cpy, s2 + s2_start, l2_cpy);
|
|
||||||
+ crashlog_buf->len += l1_cpy + l2_cpy;
|
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
@ -228,6 +218,7 @@
|
|||||||
+ crashlog_buf->magic = CRASHLOG_MAGIC;
|
+ crashlog_buf->magic = CRASHLOG_MAGIC;
|
||||||
+ crashlog_buf->len = 0;
|
+ crashlog_buf->len = 0;
|
||||||
+
|
+
|
||||||
|
+ dump.max_reason = KMSG_DUMP_OOPS;
|
||||||
+ dump.dump = crashlog_do_dump;
|
+ dump.dump = crashlog_do_dump;
|
||||||
+ kmsg_dump_register(&dump);
|
+ kmsg_dump_register(&dump);
|
||||||
+
|
+
|
||||||
|
Loading…
Reference in New Issue
Block a user