[PATCH 4/6] kexec: A new system call, kexec_file_load, for in kernel kexec
Greg KH
greg at kroah.com
Thu Nov 21 14:03:50 EST 2013
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.
> +/*
> + * 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.
thanks,
greg k-h
More information about the kexec
mailing list