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);