X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fkexec.c;h=fbffdb457cce0e6f44cbef31285ec9de3e68f686;hb=425fb2b4bf5dde24be4a82e9a2c344bb49ac92e4;hp=67828befbfc341627c246b449c944aeabb6eda9b;hpb=fd59d231f81cb02870b9cf15f456a897f3669b4e;p=linux-2.6 diff --git a/kernel/kexec.c b/kernel/kexec.c index 67828befbf..fbffdb457c 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c @@ -38,8 +38,8 @@ note_buf_t* crash_notes; /* vmcoreinfo stuff */ unsigned char vmcoreinfo_data[VMCOREINFO_BYTES]; u32 vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4]; -unsigned int vmcoreinfo_size = 0; -unsigned int vmcoreinfo_max_size = sizeof(vmcoreinfo_data); +size_t vmcoreinfo_size; +size_t vmcoreinfo_max_size = sizeof(vmcoreinfo_data); /* Location of the reserved area for the crash kernel */ struct resource crashk_res = { @@ -51,7 +51,7 @@ struct resource crashk_res = { int kexec_should_crash(struct task_struct *p) { - if (in_interrupt() || !p->pid || is_init(p) || panic_on_oops) + if (in_interrupt() || !p->pid || is_global_init(p) || panic_on_oops) return 1; return 0; } @@ -785,7 +785,7 @@ static int kimage_load_normal_segment(struct kimage *image, size_t uchunk, mchunk; page = kimage_alloc_page(image, GFP_HIGHUSER, maddr); - if (page == 0) { + if (!page) { result = -ENOMEM; goto out; } @@ -844,7 +844,7 @@ static int kimage_load_crash_segment(struct kimage *image, size_t uchunk, mchunk; page = pfn_to_page(maddr >> PAGE_SHIFT); - if (page == 0) { + if (!page) { result = -ENOMEM; goto out; } @@ -1153,7 +1153,7 @@ void crash_save_vmcoreinfo(void) if (!vmcoreinfo_size) return; - vmcoreinfo_append_str("CRASHTIME=%d", xtime.tv_sec); + vmcoreinfo_append_str("CRASHTIME=%ld", get_seconds()); buf = (u32 *)vmcoreinfo_note; @@ -1195,48 +1195,50 @@ unsigned long __attribute__ ((weak)) paddr_vmcoreinfo_note(void) static int __init crash_save_vmcoreinfo_init(void) { - vmcoreinfo_append_str("OSRELEASE=%s\n", UTS_RELEASE); - vmcoreinfo_append_str("PAGESIZE=%d\n", PAGE_SIZE); + vmcoreinfo_append_str("OSRELEASE=%s\n", init_uts_ns.name.release); + vmcoreinfo_append_str("PAGESIZE=%ld\n", PAGE_SIZE); - SYMBOL(init_uts_ns); - SYMBOL(node_online_map); - SYMBOL(swapper_pg_dir); - SYMBOL(_stext); + VMCOREINFO_SYMBOL(init_uts_ns); + VMCOREINFO_SYMBOL(node_online_map); + VMCOREINFO_SYMBOL(swapper_pg_dir); + VMCOREINFO_SYMBOL(_stext); #ifndef CONFIG_NEED_MULTIPLE_NODES - SYMBOL(mem_map); - SYMBOL(contig_page_data); + VMCOREINFO_SYMBOL(mem_map); + VMCOREINFO_SYMBOL(contig_page_data); #endif #ifdef CONFIG_SPARSEMEM - SYMBOL(mem_section); - LENGTH(mem_section, NR_SECTION_ROOTS); - SIZE(mem_section); - OFFSET(mem_section, section_mem_map); + VMCOREINFO_SYMBOL(mem_section); + VMCOREINFO_LENGTH(mem_section, NR_SECTION_ROOTS); + VMCOREINFO_SIZE(mem_section); + VMCOREINFO_OFFSET(mem_section, section_mem_map); #endif - SIZE(page); - SIZE(pglist_data); - SIZE(zone); - SIZE(free_area); - SIZE(list_head); - OFFSET(page, flags); - OFFSET(page, _count); - OFFSET(page, mapping); - OFFSET(page, lru); - OFFSET(pglist_data, node_zones); - OFFSET(pglist_data, nr_zones); + VMCOREINFO_SIZE(page); + VMCOREINFO_SIZE(pglist_data); + VMCOREINFO_SIZE(zone); + VMCOREINFO_SIZE(free_area); + VMCOREINFO_SIZE(list_head); + VMCOREINFO_TYPEDEF_SIZE(nodemask_t); + VMCOREINFO_OFFSET(page, flags); + VMCOREINFO_OFFSET(page, _count); + VMCOREINFO_OFFSET(page, mapping); + VMCOREINFO_OFFSET(page, lru); + VMCOREINFO_OFFSET(pglist_data, node_zones); + VMCOREINFO_OFFSET(pglist_data, nr_zones); #ifdef CONFIG_FLAT_NODE_MEM_MAP - OFFSET(pglist_data, node_mem_map); + VMCOREINFO_OFFSET(pglist_data, node_mem_map); #endif - OFFSET(pglist_data, node_start_pfn); - OFFSET(pglist_data, node_spanned_pages); - OFFSET(pglist_data, node_id); - OFFSET(zone, free_area); - OFFSET(zone, vm_stat); - OFFSET(zone, spanned_pages); - OFFSET(free_area, free_list); - OFFSET(list_head, next); - OFFSET(list_head, prev); - LENGTH(zone.free_area, MAX_ORDER); + VMCOREINFO_OFFSET(pglist_data, node_start_pfn); + VMCOREINFO_OFFSET(pglist_data, node_spanned_pages); + VMCOREINFO_OFFSET(pglist_data, node_id); + VMCOREINFO_OFFSET(zone, free_area); + VMCOREINFO_OFFSET(zone, vm_stat); + VMCOREINFO_OFFSET(zone, spanned_pages); + VMCOREINFO_OFFSET(free_area, free_list); + VMCOREINFO_OFFSET(list_head, next); + VMCOREINFO_OFFSET(list_head, prev); + VMCOREINFO_LENGTH(zone.free_area, MAX_ORDER); + VMCOREINFO_NUMBER(NR_FREE_PAGES); arch_crash_save_vmcoreinfo();