Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752790AbdCTF6j (ORCPT ); Mon, 20 Mar 2017 01:58:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:40446 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750717AbdCTF6i (ORCPT ); Mon, 20 Mar 2017 01:58:38 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3CD4081222 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=xlpang@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 3CD4081222 From: Xunlei Pang To: linux-kernel@vger.kernel.org, kexec@lists.infradead.org Cc: akpm@linux-foundation.org, Eric Biederman , Dave Young , Baoquan He , Petr Tesarik , Mahesh Salgaonkar , Xunlei Pang Subject: [PATCH v3 2/3] powerpc/fadump: Use the correct VMCOREINFO_NOTE_SIZE for phdr Date: Mon, 20 Mar 2017 13:50:32 +0800 Message-Id: <1489989033-1179-2-git-send-email-xlpang@redhat.com> In-Reply-To: <1489989033-1179-1-git-send-email-xlpang@redhat.com> References: <1489989033-1179-1-git-send-email-xlpang@redhat.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Mon, 20 Mar 2017 05:48:32 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2417 Lines: 69 vmcoreinfo_max_size stands for the vmcoreinfo_data, the correct one we should use is vmcoreinfo_note whose total size is VMCOREINFO_NOTE_SIZE. Like explained in commit 77019967f06b ("kdump: fix exported size of vmcoreinfo note"), it does not affect the actual function, we better fix it, also this change should be safe and backward compatible. After this, we can get rid of variable vmcoreinfo_max_size, let's use the macro VMCOREINFO_BYTES instead, fewer variables means more safety for vmcoreinfo operation. Signed-off-by: Xunlei Pang --- arch/powerpc/kernel/fadump.c | 3 +-- include/linux/kexec.h | 1 - kernel/kexec_core.c | 3 +-- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/powerpc/kernel/fadump.c b/arch/powerpc/kernel/fadump.c index 8ff0dd4..b8e15cf 100644 --- a/arch/powerpc/kernel/fadump.c +++ b/arch/powerpc/kernel/fadump.c @@ -906,8 +906,7 @@ static int fadump_create_elfcore_headers(char *bufp) phdr->p_paddr = fadump_relocate(paddr_vmcoreinfo_note()); phdr->p_offset = phdr->p_paddr; - phdr->p_memsz = vmcoreinfo_max_size; - phdr->p_filesz = vmcoreinfo_max_size; + phdr->p_memsz = phdr->p_filesz = VMCOREINFO_NOTE_SIZE; /* Increment number of program headers. */ (elf->e_phnum)++; diff --git a/include/linux/kexec.h b/include/linux/kexec.h index f1c601b..6918fda 100644 --- a/include/linux/kexec.h +++ b/include/linux/kexec.h @@ -319,7 +319,6 @@ extern void *kexec_purgatory_get_symbol_addr(struct kimage *image, extern note_buf_t __percpu *crash_notes; extern u32 *vmcoreinfo_note; extern size_t vmcoreinfo_size; -extern size_t vmcoreinfo_max_size; /* flag to track if kexec reboot is in progress */ extern bool kexec_in_progress; diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c index e3a4bda..e503b48 100644 --- a/kernel/kexec_core.c +++ b/kernel/kexec_core.c @@ -54,7 +54,6 @@ /* vmcoreinfo stuff */ static unsigned char *vmcoreinfo_data; size_t vmcoreinfo_size; -size_t vmcoreinfo_max_size = VMCOREINFO_BYTES; u32 *vmcoreinfo_note; /* Flag to indicate we are going to kexec a new kernel */ @@ -1386,7 +1385,7 @@ void vmcoreinfo_append_str(const char *fmt, ...) r = vscnprintf(buf, sizeof(buf), fmt, args); va_end(args); - r = min(r, vmcoreinfo_max_size - vmcoreinfo_size); + r = min(r, VMCOREINFO_BYTES - vmcoreinfo_size); memcpy(&vmcoreinfo_data[vmcoreinfo_size], buf, r); -- 1.8.3.1