summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/kexec.h16
-rw-r--r--kernel/kexec.c10
-rw-r--r--kernel/ksysfs.c2
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);