[PATCH v6 3/5] kexec: Do not special-case the -s option
Bhupesh Sharma
bhsharma at redhat.com
Mon Apr 9 01:38:47 PDT 2018
On 04/05/2018 04:35 PM, Petr Tesarik wrote:
> On Wed, 28 Mar 2018 15:15:16 +0200
> Michal Suchanek <msuchanek at suse.de> wrote:
>
>> It is parsed separately to save a few CPU cycles when setting up other
>> options but it just complicates the code. So fold it back and set up all
>> flags for both KEXEC_LOAD and KEXEC_FILE_LOAD
>>
>> Signed-off-by: Michal Suchanek <msuchanek at suse.de>
>> ---
>> kexec/kexec.c | 25 ++++---------------------
>> 1 file changed, 4 insertions(+), 21 deletions(-)
>>
>> diff --git a/kexec/kexec.c b/kexec/kexec.c
>> index b793f31ea501..68ae0594d4a7 100644
>> --- a/kexec/kexec.c
>> +++ b/kexec/kexec.c
>> [...]
>> @@ -1354,11 +1340,8 @@ int main(int argc, char *argv[])
>> do_exec = 0;
>> do_shutdown = 0;
>> do_sync = 0;
>> - if (do_kexec_file_syscall)
>> - kexec_file_flags |= KEXEC_FILE_ON_CRASH;
>> - else
>> - kexec_flags = KEXEC_ON_CRASH;
>> - break;
>
> Argh. This break was rather important. "kexec -p" now segfaults on
> me, as it falls through to parsing non-existent optarg. :-(
>
Sigh. Seems 'kexec -p' was never tested with properly with this
patchset. This is one of the problems I see with this patchset, so we
definitely would like to get rid of this segmentation fault.
Petr, I am going to share my Tested-by for the patch you shared for
fixing this issue in the separate thread.
I would request the fix to be picked up earlier into kexec-tools as
'kexec -p' is currently broken in upstream kexec-tools.
Regards,
Bhupesh
>
>> + kexec_file_flags |= KEXEC_FILE_ON_CRASH;
>> + kexec_flags = KEXEC_ON_CRASH;
>> case OPT_MEM_MIN:
>> mem_min = strtoul(optarg, &endptr, 0);
>> if (*endptr) {
>> @@ -1383,7 +1366,7 @@ int main(int argc, char *argv[])
>> do_reuse_initrd = 1;
>> break;
>> case OPT_KEXEC_FILE_SYSCALL:
>> - /* We already parsed it. Nothing to do. */
>> + do_kexec_file_syscall = 1;
>> break;
>> case OPT_STATUS:
>> do_status = 1;
>
>
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec
>
More information about the kexec
mailing list