diff options
-rw-r--r-- | include/linux/kexec.h | 16 | ||||
-rw-r--r-- | kernel/kexec.c | 10 | ||||
-rw-r--r-- | kernel/ksysfs.c | 2 |
3 files changed, 15 insertions, 13 deletions
diff --git a/include/linux/kexec.h b/include/linux/kexec.h index 99f2d6f0c83a..83337456b716 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -123,18 +123,20 @@ int kexec_should_crash(struct task_struct *); void crash_save_cpu(struct pt_regs *regs, int cpu); void crash_save_vmcoreinfo(void); void arch_crash_save_vmcoreinfo(void); -void vmcoreinfo_append_str(const char *fmt, ...); +void vmcoreinfo_append_str(const char *fmt, ...) + __attribute__ ((format (printf, 1, 2))); unsigned long paddr_vmcoreinfo_note(void); #define SYMBOL(name) \ vmcoreinfo_append_str("SYMBOL(%s)=%lx\n", #name, (unsigned long)&name) #define SIZE(name) \ - vmcoreinfo_append_str("SIZE(%s)=%d\n", #name, sizeof(struct name)) + vmcoreinfo_append_str("SIZE(%s)=%lu\n", #name, \ + (unsigned long)sizeof(struct name)) #define OFFSET(name, field) \ - vmcoreinfo_append_str("OFFSET(%s.%s)=%d\n", #name, #field, \ - &(((struct name *)0)->field)) + vmcoreinfo_append_str("OFFSET(%s.%s)=%lu\n", #name, #field, \ + (unsigned long)&(((struct name *)0)->field)) #define LENGTH(name, value) \ - vmcoreinfo_append_str("LENGTH(%s)=%d\n", #name, value) + vmcoreinfo_append_str("LENGTH(%s)=%lu\n", #name, (unsigned long)value) #define CONFIG(name) \ vmcoreinfo_append_str("CONFIG_%s=y\n", #name) @@ -177,8 +179,8 @@ extern struct resource crashk_res; typedef u32 note_buf_t[KEXEC_NOTE_BYTES/4]; extern note_buf_t *crash_notes; extern u32 vmcoreinfo_note[VMCOREINFO_NOTE_SIZE/4]; -extern unsigned int vmcoreinfo_size; -extern unsigned int vmcoreinfo_max_size; +extern size_t vmcoreinfo_size; +extern size_t vmcoreinfo_max_size; #else /* !CONFIG_KEXEC */ diff --git a/kernel/kexec.c b/kernel/kexec.c index 67828befbfc3..b979b010b6d8 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 = { @@ -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,8 +1195,8 @@ 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); diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c index 38b38f957ef0..65daa5373ca6 100644 --- a/kernel/ksysfs.c +++ b/kernel/ksysfs.c @@ -66,7 +66,7 @@ static ssize_t vmcoreinfo_show(struct kset *kset, char *page) { return sprintf(page, "%lx %x\n", paddr_vmcoreinfo_note(), - vmcoreinfo_max_size); + (unsigned int)vmcoreinfo_max_size); } KERNEL_ATTR_RO(vmcoreinfo); |