Messages in this thread | | | Date | Thu, 06 Aug 2009 09:56:23 +0800 | From | Amerigo Wang <> | Subject | Re: [Patch 2/7] x86: implement crashkernel=auto |
| |
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.
| |