From: Matt Domsch <Matt_Domsch@dell.com>
To: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: matthew.e.tolentino@intel.com, linux-kernel@vger.kernel.org,
mactel-linux-devel@lists.sourceforge.net
Subject: Re: [PATCH] - make sure that EFI variable data size is always 64 bit
Date: Sun, 19 Mar 2006 15:29:01 -0600 [thread overview]
Message-ID: <20060319212901.GA30843@lists.us.dell.com> (raw)
In-Reply-To: <20060319184325.GA7605@srcf.ucam.org>
On Sun, Mar 19, 2006 at 06:43:25PM +0000, Matthew Garrett wrote:
> The EFI spec states that the data size of an EFI variable is 64 bits.
> "unsigned long", on the other hand, isn't on IA32.
>
> diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c
> index bda5bce..488c24c 100644
> --- a/drivers/firmware/efivars.c
> +++ b/drivers/firmware/efivars.c
> @@ -110,7 +110,7 @@ static LIST_HEAD(efivar_list);
> struct efi_variable {
> efi_char16_t VariableName[1024/sizeof(efi_char16_t)];
> efi_guid_t VendorGuid;
> - unsigned long DataSize;
> + __u64 DataSize;
> __u8 Data[1024];
> efi_status_t Status;
> __u32 Attributes;
> diff --git a/include/linux/efi.h b/include/linux/efi.h
> index 9e97bc2..3f0a179 100644
> --- a/include/linux/efi.h
> +++ b/include/linux/efi.h
> @@ -163,7 +163,7 @@ typedef efi_status_t efi_get_wakeup_time
> efi_time_t *tm);
> typedef efi_status_t efi_set_wakeup_time_t (efi_bool_t enabled, efi_time_t *tm);
> typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor, u32 *attr,
> - unsigned long *data_size, void *data);
> + __u64 *data_size, void *data);
> typedef efi_status_t efi_get_next_variable_t (unsigned long *name_size, efi_char16_t *name,
> efi_guid_t *vendor);
> typedef efi_status_t efi_set_variable_t (efi_char16_t *name, efi_guid_t *vendor,
NAK. efibootmgr, the main userspace consumer of this struct, also
thinks this is an "unsigned long". This wasn't specified up through
EFI 1.10, which I complained about (it, and efi_status_t being defined
as an unsigned long) both force userspace consumers of this struct to
match size of the kernel (i.e. compile a 32-bit binary for 32-bit kernel,
and compile a 64-bit binary for 64-bit kernel).
-Matt
--
Matt Domsch
Software Architect
Dell Linux Solutions linux.dell.com & www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com
next prev parent reply other threads:[~2006-03-19 21:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-19 18:43 [PATCH] - make sure that EFI variable data size is always 64 bit Matthew Garrett
2006-03-19 21:29 ` Matt Domsch [this message]
2006-03-19 21:33 ` Matthew Garrett
2006-03-19 22:49 ` Matt Domsch
2006-03-19 23:17 ` Matthew Garrett
2006-03-20 8:54 ` Pavel Machek
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=20060319212901.GA30843@lists.us.dell.com \
--to=matt_domsch@dell.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mactel-linux-devel@lists.sourceforge.net \
--cc=matthew.e.tolentino@intel.com \
--cc=mjg59@srcf.ucam.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.