All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@verge.net.au>
To: Zhaofeng Li <hello@zhaofeng.li>
Cc: kexec@lists.infradead.org
Subject: Re: [PATCH 1/3] multiboot2: Correct MBI size calculation
Date: Mon, 13 Sep 2021 11:17:34 +0200	[thread overview]
Message-ID: <20210913091734.GD11132@vergenet.net> (raw)
In-Reply-To: <20210911024900.1899877-2-hello@zhaofeng.li>

On Fri, Sep 10, 2021 at 07:48:58PM -0700, Zhaofeng Li wrote:
> tag_load_base_addr is dependent on rel_tag, and tag_framebuffer was
> not accounted for.
> 
> Signed-off-by: Zhaofeng Li <hello@zhaofeng.li>
> ---
>  kexec/arch/i386/kexec-mb2-x86.c | 15 +++++++++++----
>  1 file changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/kexec/arch/i386/kexec-mb2-x86.c b/kexec/arch/i386/kexec-mb2-x86.c
> index b4996bc..c10c0ef 100644
> --- a/kexec/arch/i386/kexec-mb2-x86.c
> +++ b/kexec/arch/i386/kexec-mb2-x86.c
> @@ -115,17 +115,24 @@ void multiboot2_x86_usage(void)
>  static size_t
>  multiboot2_get_mbi_size(int ranges, int cmdline_size, int modcount, int modcmd_size)
>  {
> -	return (2 * sizeof (uint32_t) + sizeof (struct multiboot_tag)
> -		+ sizeof (struct multiboot_tag)
> +	size_t mbi_size = (2 * sizeof (uint32_t) /* u32 total_size, u32 reserved */

nit: as this is multi-line, please declare  mbi_size and then use it.

	size_t mbi_size;

	mbi_size = ...

>  		+ ALIGN_UP (sizeof (struct multiboot_tag_basic_meminfo), MULTIBOOT_TAG_ALIGN)
>  		+ ALIGN_UP ((sizeof (struct multiboot_tag_mmap)
>  			+ ranges * sizeof (struct multiboot_mmap_entry)), MULTIBOOT_TAG_ALIGN)
> -		+ ALIGN_UP (sizeof (struct multiboot_tag_load_base_addr), MULTIBOOT_TAG_ALIGN)
>  		+ (sizeof (struct multiboot_tag_string)
>  			+ ALIGN_UP (cmdline_size, MULTIBOOT_TAG_ALIGN))
>  		+ (sizeof (struct multiboot_tag_string)
>  			+ ALIGN_UP (strlen(BOOTLOADER " " BOOTLOADER_VERSION) + 1, MULTIBOOT_TAG_ALIGN))
> -		+ (modcount * sizeof (struct multiboot_tag_module) + modcmd_size));
> +		+ (modcount * sizeof (struct multiboot_tag_module) + modcmd_size))
> +		+ sizeof (struct multiboot_tag); /* end tag */
> +
> +	if (mhi.rel_tag) mbi_size +=
> +		  ALIGN_UP (sizeof (struct multiboot_tag_load_base_addr), MULTIBOOT_TAG_ALIGN);

nit: please use the following coding style:

	if (mhi.rel_tag)
		mbi_size += ALIGN_UP (sizeof (struct multiboot_tag_load_base_addr), MULTIBOOT_TAG_ALIGN);

> +
> +	if (mhi.fb_tag) mbi_size +=
> +		  ALIGN_UP (sizeof (struct multiboot_tag_framebuffer), MULTIBOOT_TAG_ALIGN);
> +
> +	return mbi_size;
>  }
>  
>  static void multiboot2_read_header_tags(void)

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

  reply	other threads:[~2021-09-13  9:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-11  2:48 [PATCH 0/3] kexec-tools: multiboot2: Accept x86-64 images Zhaofeng Li
2021-09-11  2:48 ` [PATCH 1/3] multiboot2: Correct MBI size calculation Zhaofeng Li
2021-09-13  9:17   ` Simon Horman [this message]
2021-09-11  2:48 ` [PATCH 2/3] multiboot2: Use rel_min and rel_max for mbi destination Zhaofeng Li
2021-09-13  9:06   ` Simon Horman
2021-09-11  2:49 ` [PATCH 3/3] multiboot2: Accept x86-64 images Zhaofeng Li
2021-09-13  9:17   ` Simon Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210913091734.GD11132@vergenet.net \
    --to=horms@verge.net.au \
    --cc=hello@zhaofeng.li \
    --cc=kexec@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.