RE: [Patch 2/7] x86: implement crashkernel=auto

Yu, Fenghua
2009-08-05T22:51:46Z

>+#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?

Thanks.

-Fenghua