Daniel Kiper
2012-Aug-10 13:25 UTC
[PATCH v2 2/6] xen: Read only crash notes for onlined CPUs
Read only crash notes for onlined CPUs. Crash notes for not running
CPUs does not exist in core file. Do not try to read them.
Signed-off-by: Daniel Kiper
<daniel.kiper-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
diff -Npru crash-6.0.8.orig/xen_hyper.c crash-6.0.8/xen_hyper.c
--- crash-6.0.8.orig/xen_hyper.c 2012-07-05 15:34:45.000000000 +0200
+++ crash-6.0.8/xen_hyper.c 2012-07-05 15:35:05.000000000 +0200
@@ -633,18 +633,18 @@ xen_hyper_dumpinfo_init(void)
}
/* allocate a context area */
- size = sizeof(struct xen_hyper_dumpinfo_context) * XEN_HYPER_MAX_CPUS();
+ size = sizeof(struct xen_hyper_dumpinfo_context) * machdep->get_smp_cpus();
if((xhdit->context_array = malloc(size)) == NULL) {
error(FATAL, "cannot malloc dumpinfo table context space.\n");
}
BZERO(xhdit->context_array, size);
- size = sizeof(struct xen_hyper_dumpinfo_context_xen_core) *
XEN_HYPER_MAX_CPUS();
+ size = sizeof(struct xen_hyper_dumpinfo_context_xen_core) *
machdep->get_smp_cpus();
if((xhdit->context_xen_core_array = malloc(size)) == NULL) {
error(FATAL, "cannot malloc dumpinfo table context_xen_core_array
space.\n");
}
BZERO(xhdit->context_xen_core_array, size);
addr = symbol_value("per_cpu__crash_notes");
- for (i = 0; i < XEN_HYPER_MAX_CPUS(); i++) {
+ for (i = 0; i < machdep->get_smp_cpus(); i++) {
ulong addr_notes;
addr_notes = xen_hyper_per_cpu(addr, i);