[PATCH v2] kexec: Set KEXEC_TYPE_CRASH before sanity_check_segment_list()

Baoquan He bhe at redhat.com
Thu Dec 10 18:59:45 PST 2015


On 12/02/15 at 04:39pm, Xunlei Pang wrote:
> sanity_check_segment_list() checks KEXEC_TYPE_CRASH flag to ensure
> all the segments of the loaded crash kernel are winthin the kernel
> crash resource limits, so set the flag beforehand.
> 
> Signed-off-by: Xunlei Pang <xlpang at redhat.com>
> Acked-by: Dave Young <dyoung at redhat.com>
> ---
> v1 -> v2:
> Improved some comments.
> 
>  kernel/kexec.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/kernel/kexec.c b/kernel/kexec.c
> index d873b64..ee70aef 100644
> --- a/kernel/kexec.c
> +++ b/kernel/kexec.c
> @@ -63,16 +63,16 @@ static int kimage_alloc_init(struct kimage **rimage, unsigned long entry,
>  	if (ret)
>  		goto out_free_image;
>  
> -	ret = sanity_check_segment_list(image);
> -	if (ret)
> -		goto out_free_image;
> -
> -	 /* Enable the special crash kernel control page allocation policy. */
>  	if (kexec_on_panic) {
> +		/* Enable special crash kernel control page alloc policy. */
>  		image->control_page = crashk_res.start;
>  		image->type = KEXEC_TYPE_CRASH;
>  	}

Good catch. This is hard to be found because kexec-tools user space
utility has make sure it's well located. It must be a code reviewing
finding. Ack it.

Acked-by: Baoquan He <bhe at redhat.com>

Thanks
Baoquan

>  
> +	ret = sanity_check_segment_list(image);
> +	if (ret)
> +		goto out_free_image;
> +
>  	/*
>  	 * Find a location for the control code buffer, and add it
>  	 * the vector of segments so that it's pages will also be
> -- 
> 2.5.0
> 
> 
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec



More information about the kexec mailing list