[PATCH 4/6] kexec: A new system call, kexec_file_load, for in kernel kexec
Vivek Goyal
vgoyal at redhat.com
Thu Nov 21 14:16:53 EST 2013
On Thu, Nov 21, 2013 at 11:03:50AM -0800, Greg KH wrote:
> On Wed, Nov 20, 2013 at 12:50:49PM -0500, Vivek Goyal wrote:
> > This patch implements the in kernel kexec functionality. It implements a
> > new system call kexec_file_load. I think parameter list of this system
> > call will change as I have not done the kernel image signature handling
> > yet. I have been told that I might have to pass the detached signature
> > and size as part of system call.
>
> This could be done as we do with modules, and just tack the signature
> onto the end of the 'blob' of the image. That way we could use the same
> tool to sign the binary as we do for modules, and save the need for
> extra parameters in the syscall.
I was hoping to do that. Just that we will have to somehow resolve the
conflict with PE/COFF authenticode signature of kernel.
>
> > +/*
> > + * Free up tempory buffers allocated which are not needed after image has
> > + * been loaded.
> > + *
> > + * Free up memory used by kernel, initrd, and comand line. This is temporary
> > + * memory allocation which is not needed any more after these buffers have
> > + * been loaded into separate segments and have been copied elsewhere
> > + */
> > +static void kimage_file_post_load_cleanup(struct kimage *image)
> > +{
> > + if (image->kernel_buf) {
> > + vfree(image->kernel_buf);
> > + image->kernel_buf = NULL;
> > + }
> > +
> > + if (image->initrd_buf) {
> > + vfree(image->initrd_buf);
> > + image->initrd_buf = NULL;
> > + }
> > +
> > + if (image->cmdline_buf) {
> > + vfree(image->cmdline_buf);
> > + image->cmdline_buf = NULL;
> > + }
>
> No need to check the buffer before calling vfree(), it can handle NULL
> just fine.
Ok, I will remove this extra non-null check.
Thanks
Vivek
More information about the kexec
mailing list