[PATCH 1/5] kexec: Return -ENOSYS when kexec does not know how to call KEXEC_FILE_LOAD

Michal Suchánek msuchanek at suse.de
Fri Mar 2 05:44:04 PST 2018


On Fri, 2 Mar 2018 13:34:45 +0100
Simon Horman <horms at verge.net.au> wrote:

> On Mon, Feb 26, 2018 at 01:00:34PM +0100, Michal Suchanek wrote:
> > When the kernel does not know a syscall number it returns -ENOSYS
> > but when kexec does not know a syscall number it returns -1. Return
> > -ENOSYS from kexec as well.
> > 
> > Signed-off-by: Michal Suchanek <msuchanek at suse.de>
> > ---
> >  kexec/kexec.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/kexec/kexec.c b/kexec/kexec.c
> > index cfd837c1b6bb..ab8cff7fe083 100644
> > --- a/kexec/kexec.c
> > +++ b/kexec/kexec.c
> > @@ -1166,7 +1166,7 @@ static int do_kexec_file_load(int fileind,
> > int argc, char **argv, 
> >  	if (!is_kexec_file_load_implemented()) {
> >  		fprintf(stderr, "syscall kexec_file_load not
> > available.\n");
> > -		return -1;
> > +		return -ENOSYS;  
> 
> It seems to me that the current with do_kexec_file_load() returning
> 0 for success and -1 for error. I think any change to that scheme
> would need to be more comprehensive than this.

It looks to me that the return value from the actual syscall is passed
through as the return value of kexec, at least for kexec_file_load. So
this only fixes that one occasion when -ENOSYS can originate from kexec
itself. Sure, there are more return values that could be made more
sensible.

Thanks

Michal



More information about the kexec mailing list