From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amerigo Wang Date: Thu, 06 Aug 2009 01:56:23 +0000 Subject: Re: [Patch 2/7] x86: implement crashkernel=auto Message-Id: <4A7A3847.6070406@redhat.com> List-Id: References: <20090805112123.6552.73574.sendpatchset@localhost.localdomain> <20090805112142.6552.18373.sendpatchset@localhost.localdomain> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: "Yu, Fenghua" Cc: "'linux-kernel@vger.kernel.org'" , "Luck, Tony" , "'linux-ia64@vger.kernel.org'" , 'Neil Horman' , "'Eric W. Biederman'" , "'akpm@linux-foundation.org'" , 'Ingo Molnar' , 'Anton Vorontsov' Yu, Fenghua wrote: >> +#ifdef CONFIG_KEXEC_AUTO_RESERVE >> + if (strncmp(ck_cmdline, "auto", 4) = 0) { >> + unsigned long long size; >> + char tmp[32]; >> + >> + size = arch_default_crash_size(system_ram); >> + if (size != 0) { >> + *crash_size = size; >> + *crash_base = arch_default_crash_base(); >> + size = scnprintf(tmp, sizeof(tmp), "%luM@%luM", >> + (unsigned long)(*crash_size)>>20, >> + (unsigned long)(*crash_base)>>20); >> + /* size can't be <= 4. */ >> + if (likely((size - 4 + strlen(cmdline)) >> + < COMMAND_LINE_SIZE - 1)) { >> + memmove(ck_cmdline + size, ck_cmdline + 4, >> + strlen(cmdline) - (ck_cmdline + 4 - cmdline) >> + 1); >> + memcpy(ck_cmdline, tmp, size); >> + } >> > > Here the variable "size" has two different meanings. First it used for crash size. Then its meaning is changed to buffer size in ck_cmdline. And types are different too. The type for crash size is unsigned long long. But scnprintf() return int. > > Could you use two variables to represent the two meanings for less confusion? > Sure, OK, will do. Thanks.