On Fri, 2 Mar 2018 13:34:45 +0100
Simon Horman <ho...@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 <msucha...@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

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to