On Wed, Apr 17, 2019 at 01:53:37PM +0800, Pingfan Liu wrote: > Take __parse_crashkernel()->parse_crashkernel_simple() for example. If > no offset given, then it still return 0, but crash_base is dangling.
Well, that is bad design. parse_crashkernel_simple() should return a *separate* distinct value which denotes that @offset hasn't been passed. Please fix that by having it return 1 or something else positive to denote that there wasn't an [@offset] given. And then correct that crap here: static void __init reserve_crashkernel(void) { ... ret = parse_crashkernel(boot_command_line, total_mem, &crash_size, &crash_base); if (ret != 0 || crash_size <= 0) { where *two*! variables are used as return values from a single function. That's just sloppy. Thx. -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.