All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] efi: Fix argument types for SetVariable()
@ 2011-06-06 19:36 Matthew Garrett
  2011-06-06 19:36 ` [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services Matthew Garrett
                   ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Matthew Garrett @ 2011-06-06 19:36 UTC (permalink / raw)
  To: x86; +Cc: hpa, linux-kernel, Matthew Garrett

The spec says this takes uint32 for attributes, not uintn.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
---
 arch/x86/platform/efi/efi.c |    2 +-
 include/linux/efi.h         |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 0d3a4fa..f4f6de9 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -122,7 +122,7 @@ static efi_status_t virt_efi_get_next_variable(unsigned long *name_size,
 
 static efi_status_t virt_efi_set_variable(efi_char16_t *name,
 					  efi_guid_t *vendor,
-					  unsigned long attr,
+					  u32 attr,
 					  unsigned long data_size,
 					  void *data)
 {
diff --git a/include/linux/efi.h b/include/linux/efi.h
index e376270..0758753 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -168,7 +168,7 @@ typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor,
 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, 
-					 unsigned long attr, unsigned long data_size, 
+					 u32 attr, unsigned long data_size,
 					 void *data);
 typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
 typedef void efi_reset_system_t (int reset_type, efi_status_t status,
-- 
1.7.5.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services
  2011-06-06 19:36 [PATCH 1/2] efi: Fix argument types for SetVariable() Matthew Garrett
@ 2011-06-06 19:36 ` Matthew Garrett
  2011-06-06 21:22   ` [tip:x86/efi] x86, " tip-bot for Matthew Garrett
  2011-06-20 22:42   ` [PATCH 2/2] " Mike Waychison
  2011-06-06 21:21 ` [tip:x86/efi] x86, efi: Fix argument types for SetVariable() tip-bot for Matthew Garrett
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 14+ messages in thread
From: Matthew Garrett @ 2011-06-06 19:36 UTC (permalink / raw)
  To: x86; +Cc: hpa, linux-kernel, Matthew Garrett

We're currently missing support for any of the runtime service calls
introduced with the UEFI 2.0 spec in 2006. Add the infrastructure for
supporting them.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
---
 arch/x86/platform/efi/efi.c |   37 +++++++++++++++++++++++++++++++++++++
 include/linux/efi.h         |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index f4f6de9..a0e4244 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -131,6 +131,18 @@ static efi_status_t virt_efi_set_variable(efi_char16_t *name,
 			      data_size, data);
 }
 
+static efi_status_t virt_efi_query_variable_info(u32 attr,
+						 u64 *storage_space,
+						 u64 *remaining_space,
+						 u64 *max_variable_size)
+{
+	if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+		return EFI_UNSUPPORTED;
+
+	return efi_call_virt4(query_variable_info, attr, storage_space,
+			      remaining_space, max_variable_size);
+}
+
 static efi_status_t virt_efi_get_next_high_mono_count(u32 *count)
 {
 	return efi_call_virt1(get_next_high_mono_count, count);
@@ -145,6 +157,28 @@ static void virt_efi_reset_system(int reset_type,
 		       data_size, data);
 }
 
+static efi_status_t virt_efi_update_capsule(efi_capsule_header_t **capsules,
+					    unsigned long count,
+					    unsigned long sg_list)
+{
+	if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+		return EFI_UNSUPPORTED;
+
+	return efi_call_virt3(update_capsule, capsules, count, sg_list);
+}
+
+static efi_status_t virt_efi_query_capsule_caps(efi_capsule_header_t **capsules,
+						unsigned long count,
+						u64 *max_size,
+						int *reset_type)
+{
+	if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+		return EFI_UNSUPPORTED;
+
+	return efi_call_virt4(query_capsule_caps, capsules, count, max_size,
+			      reset_type);
+}
+
 static efi_status_t __init phys_efi_set_virtual_address_map(
 	unsigned long memory_map_size,
 	unsigned long descriptor_size,
@@ -651,6 +685,9 @@ void __init efi_enter_virtual_mode(void)
 	efi.get_next_high_mono_count = virt_efi_get_next_high_mono_count;
 	efi.reset_system = virt_efi_reset_system;
 	efi.set_virtual_address_map = NULL;
+	efi.query_variable_info = virt_efi_query_variable_info;
+	efi.update_capsule = virt_efi_update_capsule;
+	efi.query_capsule_caps = virt_efi_query_capsule_caps;
 	if (__supported_pte_mask & _PAGE_NX)
 		runtime_code_page_mkexec();
 	early_iounmap(memmap.map, memmap.nr_map * memmap.desc_size);
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 0758753..ec25726 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -101,6 +101,13 @@ typedef struct {
 	u64 attribute;
 } efi_memory_desc_t;
 
+typedef struct {
+	efi_guid_t guid;
+	u32 headersize;
+	u32 flags;
+	u32 imagesize;
+} efi_capsule_header_t;
+
 typedef int (*efi_freemem_callback_t) (u64 start, u64 end, void *arg);
 
 /*
@@ -156,6 +163,9 @@ typedef struct {
 	unsigned long set_variable;
 	unsigned long get_next_high_mono_count;
 	unsigned long reset_system;
+	unsigned long update_capsule;
+	unsigned long query_capsule_caps;
+	unsigned long query_variable_info;
 } efi_runtime_services_t;
 
 typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc);
@@ -177,6 +187,17 @@ typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_siz
 						unsigned long descriptor_size,
 						u32 descriptor_version,
 						efi_memory_desc_t *virtual_map);
+typedef efi_status_t efi_query_variable_info_t(u32 attr,
+					       u64 *storage_space,
+					       u64 *remaining_space,
+					       u64 *max_variable_size);
+typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **capsules,
+					  unsigned long count,
+					  unsigned long sg_list);
+typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **capsules,
+					      unsigned long count,
+					      u64 *max_size,
+					      int *reset_type);
 
 /*
  *  EFI Configuration Table and GUID definitions
@@ -218,6 +239,13 @@ typedef struct {
 
 #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
 
+#define EFI_2_30_SYSTEM_TABLE_REVISION  ((2 << 16) | (30))
+#define EFI_2_20_SYSTEM_TABLE_REVISION  ((2 << 16) | (20))
+#define EFI_2_10_SYSTEM_TABLE_REVISION  ((2 << 16) | (10))
+#define EFI_2_00_SYSTEM_TABLE_REVISION  ((2 << 16) | (00))
+#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1 << 16) | (10))
+#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1 << 16) | (02))
+
 typedef struct {
 	efi_table_hdr_t hdr;
 	unsigned long fw_vendor;	/* physical addr of CHAR16 vendor string */
@@ -250,6 +278,7 @@ struct efi_memory_map {
  */
 extern struct efi {
 	efi_system_table_t *systab;	/* EFI system table */
+	unsigned int runtime_version;	/* Runtime services version */
 	unsigned long mps;		/* MPS table */
 	unsigned long acpi;		/* ACPI table  (IA64 ext 0.71) */
 	unsigned long acpi20;		/* ACPI table  (ACPI 2.0) */
@@ -266,6 +295,9 @@ extern struct efi {
 	efi_get_variable_t *get_variable;
 	efi_get_next_variable_t *get_next_variable;
 	efi_set_variable_t *set_variable;
+	efi_query_variable_info_t *query_variable_info;
+	efi_update_capsule_t *update_capsule;
+	efi_query_capsule_caps_t *query_capsule_caps;
 	efi_get_next_high_mono_count_t *get_next_high_mono_count;
 	efi_reset_system_t *reset_system;
 	efi_set_virtual_address_map_t *set_virtual_address_map;
-- 
1.7.5.2


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [tip:x86/efi] x86, efi: Fix argument types for SetVariable()
  2011-06-06 19:36 [PATCH 1/2] efi: Fix argument types for SetVariable() Matthew Garrett
  2011-06-06 19:36 ` [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services Matthew Garrett
@ 2011-06-06 21:21 ` tip-bot for Matthew Garrett
  2011-06-09 19:02 ` [PATCH 1/2] " Tony Luck
  2011-07-06 20:48 ` [PATCH v2] " Matthew Garrett
  3 siblings, 0 replies; 14+ messages in thread
From: tip-bot for Matthew Garrett @ 2011-06-06 21:21 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, mjg, hpa, mingo, tglx, hpa

Commit-ID:  f7a2d73fe75c71941fb0a6b4d8fe7da8144f2c7b
Gitweb:     http://git.kernel.org/tip/f7a2d73fe75c71941fb0a6b4d8fe7da8144f2c7b
Author:     Matthew Garrett <mjg@redhat.com>
AuthorDate: Mon, 6 Jun 2011 15:36:24 -0400
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Mon, 6 Jun 2011 13:30:27 -0700

x86, efi: Fix argument types for SetVariable()

The spec says this takes uint32 for attributes, not uintn.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Link: http://lkml.kernel.org/r/1307388985-7852-1-git-send-email-mjg@redhat.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
---
 arch/x86/platform/efi/efi.c |    2 +-
 include/linux/efi.h         |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 0d3a4fa..f4f6de9 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -122,7 +122,7 @@ static efi_status_t virt_efi_get_next_variable(unsigned long *name_size,
 
 static efi_status_t virt_efi_set_variable(efi_char16_t *name,
 					  efi_guid_t *vendor,
-					  unsigned long attr,
+					  u32 attr,
 					  unsigned long data_size,
 					  void *data)
 {
diff --git a/include/linux/efi.h b/include/linux/efi.h
index e376270..0758753 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -168,7 +168,7 @@ typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor,
 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, 
-					 unsigned long attr, unsigned long data_size, 
+					 u32 attr, unsigned long data_size,
 					 void *data);
 typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
 typedef void efi_reset_system_t (int reset_type, efi_status_t status,

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [tip:x86/efi] x86, efi: Add infrastructure for UEFI 2.0 runtime services
  2011-06-06 19:36 ` [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services Matthew Garrett
@ 2011-06-06 21:22   ` tip-bot for Matthew Garrett
  2011-06-20 22:42   ` [PATCH 2/2] " Mike Waychison
  1 sibling, 0 replies; 14+ messages in thread
From: tip-bot for Matthew Garrett @ 2011-06-06 21:22 UTC (permalink / raw)
  To: linux-tip-commits; +Cc: linux-kernel, mjg, hpa, mingo, tglx, hpa

Commit-ID:  3b3702377c576f6624348c7c6fd113bfd934fbd7
Gitweb:     http://git.kernel.org/tip/3b3702377c576f6624348c7c6fd113bfd934fbd7
Author:     Matthew Garrett <mjg@redhat.com>
AuthorDate: Mon, 6 Jun 2011 15:36:25 -0400
Committer:  H. Peter Anvin <hpa@linux.intel.com>
CommitDate: Mon, 6 Jun 2011 13:30:30 -0700

x86, efi: Add infrastructure for UEFI 2.0 runtime services

We're currently missing support for any of the runtime service calls
introduced with the UEFI 2.0 spec in 2006. Add the infrastructure for
supporting them.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Link: http://lkml.kernel.org/r/1307388985-7852-2-git-send-email-mjg@redhat.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
---
 arch/x86/platform/efi/efi.c |   37 +++++++++++++++++++++++++++++++++++++
 include/linux/efi.h         |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 0 deletions(-)

diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index f4f6de9..a0e4244 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -131,6 +131,18 @@ static efi_status_t virt_efi_set_variable(efi_char16_t *name,
 			      data_size, data);
 }
 
+static efi_status_t virt_efi_query_variable_info(u32 attr,
+						 u64 *storage_space,
+						 u64 *remaining_space,
+						 u64 *max_variable_size)
+{
+	if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+		return EFI_UNSUPPORTED;
+
+	return efi_call_virt4(query_variable_info, attr, storage_space,
+			      remaining_space, max_variable_size);
+}
+
 static efi_status_t virt_efi_get_next_high_mono_count(u32 *count)
 {
 	return efi_call_virt1(get_next_high_mono_count, count);
@@ -145,6 +157,28 @@ static void virt_efi_reset_system(int reset_type,
 		       data_size, data);
 }
 
+static efi_status_t virt_efi_update_capsule(efi_capsule_header_t **capsules,
+					    unsigned long count,
+					    unsigned long sg_list)
+{
+	if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+		return EFI_UNSUPPORTED;
+
+	return efi_call_virt3(update_capsule, capsules, count, sg_list);
+}
+
+static efi_status_t virt_efi_query_capsule_caps(efi_capsule_header_t **capsules,
+						unsigned long count,
+						u64 *max_size,
+						int *reset_type)
+{
+	if (efi.runtime_version < EFI_2_00_SYSTEM_TABLE_REVISION)
+		return EFI_UNSUPPORTED;
+
+	return efi_call_virt4(query_capsule_caps, capsules, count, max_size,
+			      reset_type);
+}
+
 static efi_status_t __init phys_efi_set_virtual_address_map(
 	unsigned long memory_map_size,
 	unsigned long descriptor_size,
@@ -651,6 +685,9 @@ void __init efi_enter_virtual_mode(void)
 	efi.get_next_high_mono_count = virt_efi_get_next_high_mono_count;
 	efi.reset_system = virt_efi_reset_system;
 	efi.set_virtual_address_map = NULL;
+	efi.query_variable_info = virt_efi_query_variable_info;
+	efi.update_capsule = virt_efi_update_capsule;
+	efi.query_capsule_caps = virt_efi_query_capsule_caps;
 	if (__supported_pte_mask & _PAGE_NX)
 		runtime_code_page_mkexec();
 	early_iounmap(memmap.map, memmap.nr_map * memmap.desc_size);
diff --git a/include/linux/efi.h b/include/linux/efi.h
index 0758753..ec25726 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -101,6 +101,13 @@ typedef struct {
 	u64 attribute;
 } efi_memory_desc_t;
 
+typedef struct {
+	efi_guid_t guid;
+	u32 headersize;
+	u32 flags;
+	u32 imagesize;
+} efi_capsule_header_t;
+
 typedef int (*efi_freemem_callback_t) (u64 start, u64 end, void *arg);
 
 /*
@@ -156,6 +163,9 @@ typedef struct {
 	unsigned long set_variable;
 	unsigned long get_next_high_mono_count;
 	unsigned long reset_system;
+	unsigned long update_capsule;
+	unsigned long query_capsule_caps;
+	unsigned long query_variable_info;
 } efi_runtime_services_t;
 
 typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc);
@@ -177,6 +187,17 @@ typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_siz
 						unsigned long descriptor_size,
 						u32 descriptor_version,
 						efi_memory_desc_t *virtual_map);
+typedef efi_status_t efi_query_variable_info_t(u32 attr,
+					       u64 *storage_space,
+					       u64 *remaining_space,
+					       u64 *max_variable_size);
+typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **capsules,
+					  unsigned long count,
+					  unsigned long sg_list);
+typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **capsules,
+					      unsigned long count,
+					      u64 *max_size,
+					      int *reset_type);
 
 /*
  *  EFI Configuration Table and GUID definitions
@@ -218,6 +239,13 @@ typedef struct {
 
 #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
 
+#define EFI_2_30_SYSTEM_TABLE_REVISION  ((2 << 16) | (30))
+#define EFI_2_20_SYSTEM_TABLE_REVISION  ((2 << 16) | (20))
+#define EFI_2_10_SYSTEM_TABLE_REVISION  ((2 << 16) | (10))
+#define EFI_2_00_SYSTEM_TABLE_REVISION  ((2 << 16) | (00))
+#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1 << 16) | (10))
+#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1 << 16) | (02))
+
 typedef struct {
 	efi_table_hdr_t hdr;
 	unsigned long fw_vendor;	/* physical addr of CHAR16 vendor string */
@@ -250,6 +278,7 @@ struct efi_memory_map {
  */
 extern struct efi {
 	efi_system_table_t *systab;	/* EFI system table */
+	unsigned int runtime_version;	/* Runtime services version */
 	unsigned long mps;		/* MPS table */
 	unsigned long acpi;		/* ACPI table  (IA64 ext 0.71) */
 	unsigned long acpi20;		/* ACPI table  (ACPI 2.0) */
@@ -266,6 +295,9 @@ extern struct efi {
 	efi_get_variable_t *get_variable;
 	efi_get_next_variable_t *get_next_variable;
 	efi_set_variable_t *set_variable;
+	efi_query_variable_info_t *query_variable_info;
+	efi_update_capsule_t *update_capsule;
+	efi_query_capsule_caps_t *query_capsule_caps;
 	efi_get_next_high_mono_count_t *get_next_high_mono_count;
 	efi_reset_system_t *reset_system;
 	efi_set_virtual_address_map_t *set_virtual_address_map;

^ permalink raw reply related	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] efi: Fix argument types for SetVariable()
  2011-06-06 19:36 [PATCH 1/2] efi: Fix argument types for SetVariable() Matthew Garrett
  2011-06-06 19:36 ` [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services Matthew Garrett
  2011-06-06 21:21 ` [tip:x86/efi] x86, efi: Fix argument types for SetVariable() tip-bot for Matthew Garrett
@ 2011-06-09 19:02 ` Tony Luck
  2011-06-09 19:09   ` Matthew Garrett
  2011-07-06 20:48 ` [PATCH v2] " Matthew Garrett
  3 siblings, 1 reply; 14+ messages in thread
From: Tony Luck @ 2011-06-09 19:02 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: x86, hpa, linux-kernel

On Mon, Jun 6, 2011 at 12:36 PM, Matthew Garrett <mjg@redhat.com> wrote:
> diff --git a/include/linux/efi.h b/include/linux/efi.h
> index e376270..0758753 100644
> --- a/include/linux/efi.h
> +++ b/include/linux/efi.h
> @@ -168,7 +168,7 @@ typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor,
>  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,
> -                                        unsigned long attr, unsigned long data_size,
> +                                        u32 attr, unsigned long data_size,
>                                         void *data);
>  typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
>  typedef void efi_reset_system_t (int reset_type, efi_status_t status,

x86 isn't the only user of <linux/efi.h>

Building next-20110609 I see:

arch/ia64/kernel/efi.c:578: warning: assignment from incompatible pointer type
arch/ia64/kernel/efi.c:701: warning: assignment from incompatible pointer type

-Tony

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 1/2] efi: Fix argument types for SetVariable()
  2011-06-09 19:02 ` [PATCH 1/2] " Tony Luck
@ 2011-06-09 19:09   ` Matthew Garrett
  0 siblings, 0 replies; 14+ messages in thread
From: Matthew Garrett @ 2011-06-09 19:09 UTC (permalink / raw)
  To: Tony Luck; +Cc: x86, hpa, linux-kernel

On Thu, Jun 09, 2011 at 12:02:53PM -0700, Tony Luck wrote:
> On Mon, Jun 6, 2011 at 12:36 PM, Matthew Garrett <mjg@redhat.com> wrote:
> > diff --git a/include/linux/efi.h b/include/linux/efi.h
> > index e376270..0758753 100644
> > --- a/include/linux/efi.h
> > +++ b/include/linux/efi.h
> > @@ -168,7 +168,7 @@ typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor,
> >  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,
> > -                                        unsigned long attr, unsigned long data_size,
> > +                                        u32 attr, unsigned long data_size,
> >                                         void *data);
> >  typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
> >  typedef void efi_reset_system_t (int reset_type, efi_status_t status,
> 
> x86 isn't the only user of <linux/efi.h>
> 
> Building next-20110609 I see:
> 
> arch/ia64/kernel/efi.c:578: warning: assignment from incompatible pointer type
> arch/ia64/kernel/efi.c:701: warning: assignment from incompatible pointer type

Oops. I'll follow up.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services
  2011-06-06 19:36 ` [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services Matthew Garrett
  2011-06-06 21:22   ` [tip:x86/efi] x86, " tip-bot for Matthew Garrett
@ 2011-06-20 22:42   ` Mike Waychison
  2011-06-20 22:44     ` Mike Waychison
  2011-06-21 15:02     ` Matthew Garrett
  1 sibling, 2 replies; 14+ messages in thread
From: Mike Waychison @ 2011-06-20 22:42 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: x86, hpa, linux-kernel

On 06/06/11 12:36, Matthew Garrett wrote:
> We're currently missing support for any of the runtime service calls
> introduced with the UEFI 2.0 spec in 2006. Add the infrastructure for
> supporting them.

This patch looks like it introduced runtime_version in mainline, but I 
don't see where it gets zero.

>
> Signed-off-by: Matthew Garrett<mjg@redhat.com>
> ---
>   arch/x86/platform/efi/efi.c |   37 +++++++++++++++++++++++++++++++++++++
>   include/linux/efi.h         |   32 ++++++++++++++++++++++++++++++++
>   2 files changed, 69 insertions(+), 0 deletions(-)
>
> diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
> index f4f6de9..a0e4244 100644
> --- a/arch/x86/platform/efi/efi.c
> +++ b/arch/x86/platform/efi/efi.c
> @@ -131,6 +131,18 @@ static efi_status_t virt_efi_set_variable(efi_char16_t *name,
>   			      data_size, data);
>   }
>
> +static efi_status_t virt_efi_query_variable_info(u32 attr,
> +						 u64 *storage_space,
> +						 u64 *remaining_space,
> +						 u64 *max_variable_size)
> +{
> +	if (efi.runtime_version<  EFI_2_00_SYSTEM_TABLE_REVISION)
> +		return EFI_UNSUPPORTED;
> +
> +	return efi_call_virt4(query_variable_info, attr, storage_space,
> +			      remaining_space, max_variable_size);
> +}
> +
>   static efi_status_t virt_efi_get_next_high_mono_count(u32 *count)
>   {
>   	return efi_call_virt1(get_next_high_mono_count, count);
> @@ -145,6 +157,28 @@ static void virt_efi_reset_system(int reset_type,
>   		       data_size, data);
>   }
>
> +static efi_status_t virt_efi_update_capsule(efi_capsule_header_t **capsules,
> +					    unsigned long count,
> +					    unsigned long sg_list)
> +{
> +	if (efi.runtime_version<  EFI_2_00_SYSTEM_TABLE_REVISION)
> +		return EFI_UNSUPPORTED;
> +
> +	return efi_call_virt3(update_capsule, capsules, count, sg_list);
> +}
> +
> +static efi_status_t virt_efi_query_capsule_caps(efi_capsule_header_t **capsules,
> +						unsigned long count,
> +						u64 *max_size,
> +						int *reset_type)
> +{
> +	if (efi.runtime_version<  EFI_2_00_SYSTEM_TABLE_REVISION)
> +		return EFI_UNSUPPORTED;
> +
> +	return efi_call_virt4(query_capsule_caps, capsules, count, max_size,
> +			      reset_type);
> +}
> +
>   static efi_status_t __init phys_efi_set_virtual_address_map(
>   	unsigned long memory_map_size,
>   	unsigned long descriptor_size,
> @@ -651,6 +685,9 @@ void __init efi_enter_virtual_mode(void)
>   	efi.get_next_high_mono_count = virt_efi_get_next_high_mono_count;
>   	efi.reset_system = virt_efi_reset_system;
>   	efi.set_virtual_address_map = NULL;
> +	efi.query_variable_info = virt_efi_query_variable_info;
> +	efi.update_capsule = virt_efi_update_capsule;
> +	efi.query_capsule_caps = virt_efi_query_capsule_caps;
>   	if (__supported_pte_mask&  _PAGE_NX)
>   		runtime_code_page_mkexec();
>   	early_iounmap(memmap.map, memmap.nr_map * memmap.desc_size);
> diff --git a/include/linux/efi.h b/include/linux/efi.h
> index 0758753..ec25726 100644
> --- a/include/linux/efi.h
> +++ b/include/linux/efi.h
> @@ -101,6 +101,13 @@ typedef struct {
>   	u64 attribute;
>   } efi_memory_desc_t;
>
> +typedef struct {
> +	efi_guid_t guid;
> +	u32 headersize;
> +	u32 flags;
> +	u32 imagesize;
> +} efi_capsule_header_t;
> +
>   typedef int (*efi_freemem_callback_t) (u64 start, u64 end, void *arg);
>
>   /*
> @@ -156,6 +163,9 @@ typedef struct {
>   	unsigned long set_variable;
>   	unsigned long get_next_high_mono_count;
>   	unsigned long reset_system;
> +	unsigned long update_capsule;
> +	unsigned long query_capsule_caps;
> +	unsigned long query_variable_info;
>   } efi_runtime_services_t;
>
>   typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc);
> @@ -177,6 +187,17 @@ typedef efi_status_t efi_set_virtual_address_map_t (unsigned long memory_map_siz
>   						unsigned long descriptor_size,
>   						u32 descriptor_version,
>   						efi_memory_desc_t *virtual_map);
> +typedef efi_status_t efi_query_variable_info_t(u32 attr,
> +					       u64 *storage_space,
> +					       u64 *remaining_space,
> +					       u64 *max_variable_size);
> +typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t **capsules,
> +					  unsigned long count,
> +					  unsigned long sg_list);
> +typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t **capsules,
> +					      unsigned long count,
> +					      u64 *max_size,
> +					      int *reset_type);
>
>   /*
>    *  EFI Configuration Table and GUID definitions
> @@ -218,6 +239,13 @@ typedef struct {
>
>   #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
>
> +#define EFI_2_30_SYSTEM_TABLE_REVISION  ((2<<  16) | (30))
> +#define EFI_2_20_SYSTEM_TABLE_REVISION  ((2<<  16) | (20))
> +#define EFI_2_10_SYSTEM_TABLE_REVISION  ((2<<  16) | (10))
> +#define EFI_2_00_SYSTEM_TABLE_REVISION  ((2<<  16) | (00))
> +#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1<<  16) | (10))
> +#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1<<  16) | (02))
> +
>   typedef struct {
>   	efi_table_hdr_t hdr;
>   	unsigned long fw_vendor;	/* physical addr of CHAR16 vendor string */
> @@ -250,6 +278,7 @@ struct efi_memory_map {
>    */
>   extern struct efi {
>   	efi_system_table_t *systab;	/* EFI system table */
> +	unsigned int runtime_version;	/* Runtime services version */
>   	unsigned long mps;		/* MPS table */
>   	unsigned long acpi;		/* ACPI table  (IA64 ext 0.71) */
>   	unsigned long acpi20;		/* ACPI table  (ACPI 2.0) */
> @@ -266,6 +295,9 @@ extern struct efi {
>   	efi_get_variable_t *get_variable;
>   	efi_get_next_variable_t *get_next_variable;
>   	efi_set_variable_t *set_variable;
> +	efi_query_variable_info_t *query_variable_info;
> +	efi_update_capsule_t *update_capsule;
> +	efi_query_capsule_caps_t *query_capsule_caps;
>   	efi_get_next_high_mono_count_t *get_next_high_mono_count;
>   	efi_reset_system_t *reset_system;
>   	efi_set_virtual_address_map_t *set_virtual_address_map;


^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services
  2011-06-20 22:42   ` [PATCH 2/2] " Mike Waychison
@ 2011-06-20 22:44     ` Mike Waychison
  2011-06-21 15:02     ` Matthew Garrett
  1 sibling, 0 replies; 14+ messages in thread
From: Mike Waychison @ 2011-06-20 22:44 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: x86, hpa, linux-kernel

On Mon, Jun 20, 2011 at 3:42 PM, Mike Waychison <mikew@google.com> wrote:
> On 06/06/11 12:36, Matthew Garrett wrote:
>>
>> We're currently missing support for any of the runtime service calls
>> introduced with the UEFI 2.0 spec in 2006. Add the infrastructure for
>> supporting them.
>
> This patch looks like it introduced runtime_version in mainline, but I don't
> see where it gets zero.

Er, I don't see where it gets initialized.

>
>>
>> Signed-off-by: Matthew Garrett<mjg@redhat.com>
>> ---
>>  arch/x86/platform/efi/efi.c |   37 +++++++++++++++++++++++++++++++++++++
>>  include/linux/efi.h         |   32 ++++++++++++++++++++++++++++++++
>>  2 files changed, 69 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
>> index f4f6de9..a0e4244 100644
>> --- a/arch/x86/platform/efi/efi.c
>> +++ b/arch/x86/platform/efi/efi.c
>> @@ -131,6 +131,18 @@ static efi_status_t
>> virt_efi_set_variable(efi_char16_t *name,
>>                              data_size, data);
>>  }
>>
>> +static efi_status_t virt_efi_query_variable_info(u32 attr,
>> +                                                u64 *storage_space,
>> +                                                u64 *remaining_space,
>> +                                                u64 *max_variable_size)
>> +{
>> +       if (efi.runtime_version<  EFI_2_00_SYSTEM_TABLE_REVISION)
>> +               return EFI_UNSUPPORTED;
>> +
>> +       return efi_call_virt4(query_variable_info, attr, storage_space,
>> +                             remaining_space, max_variable_size);
>> +}
>> +
>>  static efi_status_t virt_efi_get_next_high_mono_count(u32 *count)
>>  {
>>        return efi_call_virt1(get_next_high_mono_count, count);
>> @@ -145,6 +157,28 @@ static void virt_efi_reset_system(int reset_type,
>>                       data_size, data);
>>  }
>>
>> +static efi_status_t virt_efi_update_capsule(efi_capsule_header_t
>> **capsules,
>> +                                           unsigned long count,
>> +                                           unsigned long sg_list)
>> +{
>> +       if (efi.runtime_version<  EFI_2_00_SYSTEM_TABLE_REVISION)
>> +               return EFI_UNSUPPORTED;
>> +
>> +       return efi_call_virt3(update_capsule, capsules, count, sg_list);
>> +}
>> +
>> +static efi_status_t virt_efi_query_capsule_caps(efi_capsule_header_t
>> **capsules,
>> +                                               unsigned long count,
>> +                                               u64 *max_size,
>> +                                               int *reset_type)
>> +{
>> +       if (efi.runtime_version<  EFI_2_00_SYSTEM_TABLE_REVISION)
>> +               return EFI_UNSUPPORTED;
>> +
>> +       return efi_call_virt4(query_capsule_caps, capsules, count,
>> max_size,
>> +                             reset_type);
>> +}
>> +
>>  static efi_status_t __init phys_efi_set_virtual_address_map(
>>        unsigned long memory_map_size,
>>        unsigned long descriptor_size,
>> @@ -651,6 +685,9 @@ void __init efi_enter_virtual_mode(void)
>>        efi.get_next_high_mono_count = virt_efi_get_next_high_mono_count;
>>        efi.reset_system = virt_efi_reset_system;
>>        efi.set_virtual_address_map = NULL;
>> +       efi.query_variable_info = virt_efi_query_variable_info;
>> +       efi.update_capsule = virt_efi_update_capsule;
>> +       efi.query_capsule_caps = virt_efi_query_capsule_caps;
>>        if (__supported_pte_mask&  _PAGE_NX)
>>                runtime_code_page_mkexec();
>>        early_iounmap(memmap.map, memmap.nr_map * memmap.desc_size);
>> diff --git a/include/linux/efi.h b/include/linux/efi.h
>> index 0758753..ec25726 100644
>> --- a/include/linux/efi.h
>> +++ b/include/linux/efi.h
>> @@ -101,6 +101,13 @@ typedef struct {
>>        u64 attribute;
>>  } efi_memory_desc_t;
>>
>> +typedef struct {
>> +       efi_guid_t guid;
>> +       u32 headersize;
>> +       u32 flags;
>> +       u32 imagesize;
>> +} efi_capsule_header_t;
>> +
>>  typedef int (*efi_freemem_callback_t) (u64 start, u64 end, void *arg);
>>
>>  /*
>> @@ -156,6 +163,9 @@ typedef struct {
>>        unsigned long set_variable;
>>        unsigned long get_next_high_mono_count;
>>        unsigned long reset_system;
>> +       unsigned long update_capsule;
>> +       unsigned long query_capsule_caps;
>> +       unsigned long query_variable_info;
>>  } efi_runtime_services_t;
>>
>>  typedef efi_status_t efi_get_time_t (efi_time_t *tm, efi_time_cap_t *tc);
>> @@ -177,6 +187,17 @@ typedef efi_status_t efi_set_virtual_address_map_t
>> (unsigned long memory_map_siz
>>                                                unsigned long
>> descriptor_size,
>>                                                u32 descriptor_version,
>>                                                efi_memory_desc_t
>> *virtual_map);
>> +typedef efi_status_t efi_query_variable_info_t(u32 attr,
>> +                                              u64 *storage_space,
>> +                                              u64 *remaining_space,
>> +                                              u64 *max_variable_size);
>> +typedef efi_status_t efi_update_capsule_t(efi_capsule_header_t
>> **capsules,
>> +                                         unsigned long count,
>> +                                         unsigned long sg_list);
>> +typedef efi_status_t efi_query_capsule_caps_t(efi_capsule_header_t
>> **capsules,
>> +                                             unsigned long count,
>> +                                             u64 *max_size,
>> +                                             int *reset_type);
>>
>>  /*
>>   *  EFI Configuration Table and GUID definitions
>> @@ -218,6 +239,13 @@ typedef struct {
>>
>>  #define EFI_SYSTEM_TABLE_SIGNATURE ((u64)0x5453595320494249ULL)
>>
>> +#define EFI_2_30_SYSTEM_TABLE_REVISION  ((2<<  16) | (30))
>> +#define EFI_2_20_SYSTEM_TABLE_REVISION  ((2<<  16) | (20))
>> +#define EFI_2_10_SYSTEM_TABLE_REVISION  ((2<<  16) | (10))
>> +#define EFI_2_00_SYSTEM_TABLE_REVISION  ((2<<  16) | (00))
>> +#define EFI_1_10_SYSTEM_TABLE_REVISION  ((1<<  16) | (10))
>> +#define EFI_1_02_SYSTEM_TABLE_REVISION  ((1<<  16) | (02))
>> +
>>  typedef struct {
>>        efi_table_hdr_t hdr;
>>        unsigned long fw_vendor;        /* physical addr of CHAR16 vendor
>> string */
>> @@ -250,6 +278,7 @@ struct efi_memory_map {
>>   */
>>  extern struct efi {
>>        efi_system_table_t *systab;     /* EFI system table */
>> +       unsigned int runtime_version;   /* Runtime services version */
>>        unsigned long mps;              /* MPS table */
>>        unsigned long acpi;             /* ACPI table  (IA64 ext 0.71) */
>>        unsigned long acpi20;           /* ACPI table  (ACPI 2.0) */
>> @@ -266,6 +295,9 @@ extern struct efi {
>>        efi_get_variable_t *get_variable;
>>        efi_get_next_variable_t *get_next_variable;
>>        efi_set_variable_t *set_variable;
>> +       efi_query_variable_info_t *query_variable_info;
>> +       efi_update_capsule_t *update_capsule;
>> +       efi_query_capsule_caps_t *query_capsule_caps;
>>        efi_get_next_high_mono_count_t *get_next_high_mono_count;
>>        efi_reset_system_t *reset_system;
>>        efi_set_virtual_address_map_t *set_virtual_address_map;
>
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services
  2011-06-20 22:42   ` [PATCH 2/2] " Mike Waychison
  2011-06-20 22:44     ` Mike Waychison
@ 2011-06-21 15:02     ` Matthew Garrett
  1 sibling, 0 replies; 14+ messages in thread
From: Matthew Garrett @ 2011-06-21 15:02 UTC (permalink / raw)
  To: Mike Waychison; +Cc: x86, hpa, linux-kernel

On Mon, Jun 20, 2011 at 03:42:28PM -0700, Mike Waychison wrote:
> On 06/06/11 12:36, Matthew Garrett wrote:
> >We're currently missing support for any of the runtime service calls
> >introduced with the UEFI 2.0 spec in 2006. Add the infrastructure for
> >supporting them.
> 
> This patch looks like it introduced runtime_version in mainline, but
> I don't see where it gets zero.

Oops. Yeah, I'll fix that. Thanks!

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* [PATCH v2] efi: Fix argument types for SetVariable()
  2011-06-06 19:36 [PATCH 1/2] efi: Fix argument types for SetVariable() Matthew Garrett
                   ` (2 preceding siblings ...)
  2011-06-09 19:02 ` [PATCH 1/2] " Tony Luck
@ 2011-07-06 20:48 ` Matthew Garrett
  2011-07-06 21:36   ` Luck, Tony
  2011-07-07  9:33   ` Ingo Molnar
  3 siblings, 2 replies; 14+ messages in thread
From: Matthew Garrett @ 2011-07-06 20:48 UTC (permalink / raw)
  To: x86; +Cc: hpa, linux-kernel, tony.luck, Matthew Garrett

The spec says this takes uint32 for attributes, not uintn.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
---

This version fixes ia64 as well. 

 arch/ia64/kernel/efi.c      |    2 +-
 arch/x86/platform/efi/efi.c |    2 +-
 include/linux/efi.h         |    2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/ia64/kernel/efi.c b/arch/ia64/kernel/efi.c
index 6fc03af..c38d22e 100644
--- a/arch/ia64/kernel/efi.c
+++ b/arch/ia64/kernel/efi.c
@@ -156,7 +156,7 @@ prefix##_get_next_variable (unsigned long *name_size, efi_char16_t *name,      \
 #define STUB_SET_VARIABLE(prefix, adjust_arg)				       \
 static efi_status_t							       \
 prefix##_set_variable (efi_char16_t *name, efi_guid_t *vendor,		       \
-		       unsigned long attr, unsigned long data_size,	       \
+		       u32 attr, unsigned long data_size,		       \
 		       void *data)					       \
 {									       \
 	struct ia64_fpreg fr[6];					       \
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index 474356b..85ed1e9 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -122,7 +122,7 @@ static efi_status_t virt_efi_get_next_variable(unsigned long *name_size,
 
 static efi_status_t virt_efi_set_variable(efi_char16_t *name,
 					  efi_guid_t *vendor,
-					  unsigned long attr,
+					  u32 attr,
 					  unsigned long data_size,
 					  void *data)
 {
diff --git a/include/linux/efi.h b/include/linux/efi.h
index e376270..0758753 100644
--- a/include/linux/efi.h
+++ b/include/linux/efi.h
@@ -168,7 +168,7 @@ typedef efi_status_t efi_get_variable_t (efi_char16_t *name, efi_guid_t *vendor,
 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, 
-					 unsigned long attr, unsigned long data_size, 
+					 u32 attr, unsigned long data_size,
 					 void *data);
 typedef efi_status_t efi_get_next_high_mono_count_t (u32 *count);
 typedef void efi_reset_system_t (int reset_type, efi_status_t status,
-- 
1.7.5.4


^ permalink raw reply related	[flat|nested] 14+ messages in thread

* RE: [PATCH v2] efi: Fix argument types for SetVariable()
  2011-07-06 20:48 ` [PATCH v2] " Matthew Garrett
@ 2011-07-06 21:36   ` Luck, Tony
  2011-07-07  9:33   ` Ingo Molnar
  1 sibling, 0 replies; 14+ messages in thread
From: Luck, Tony @ 2011-07-06 21:36 UTC (permalink / raw)
  To: Matthew Garrett, x86; +Cc: hpa, linux-kernel

> This version fixes ia64 as well. 

Yes it does.  Thanks Matthew!

Acked-by: Tony Luck <tony.luck@intel.com>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] efi: Fix argument types for SetVariable()
  2011-07-06 20:48 ` [PATCH v2] " Matthew Garrett
  2011-07-06 21:36   ` Luck, Tony
@ 2011-07-07  9:33   ` Ingo Molnar
  2011-07-07 11:38     ` Matthew Garrett
  1 sibling, 1 reply; 14+ messages in thread
From: Ingo Molnar @ 2011-07-07  9:33 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: x86, hpa, linux-kernel, tony.luck


* Matthew Garrett <mjg@redhat.com> wrote:

> The spec says this takes uint32 for attributes, not uintn.
> 
> Signed-off-by: Matthew Garrett <mjg@redhat.com>
> ---
> 
> This version fixes ia64 as well. 
> 
>  arch/ia64/kernel/efi.c      |    2 +-
>  arch/x86/platform/efi/efi.c |    2 +-
>  include/linux/efi.h         |    2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)

Please send a patch against latest -tip, we've got EFI changes in 
tip:x86/efi and your patch conflicts.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] efi: Fix argument types for SetVariable()
  2011-07-07  9:33   ` Ingo Molnar
@ 2011-07-07 11:38     ` Matthew Garrett
  2011-07-07 11:40       ` Ingo Molnar
  0 siblings, 1 reply; 14+ messages in thread
From: Matthew Garrett @ 2011-07-07 11:38 UTC (permalink / raw)
  To: Ingo Molnar; +Cc: x86, hpa, linux-kernel, tony.luck

On Thu, Jul 07, 2011 at 11:33:05AM +0200, Ingo Molnar wrote:

> Please send a patch against latest -tip, we've got EFI changes in 
> tip:x86/efi and your patch conflicts.

The original version introduced a warning, thsi was intended to replace 
it. Is -tip not rebased?

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: [PATCH v2] efi: Fix argument types for SetVariable()
  2011-07-07 11:38     ` Matthew Garrett
@ 2011-07-07 11:40       ` Ingo Molnar
  0 siblings, 0 replies; 14+ messages in thread
From: Ingo Molnar @ 2011-07-07 11:40 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: x86, hpa, linux-kernel, tony.luck


* Matthew Garrett <mjg59@srcf.ucam.org> wrote:

> On Thu, Jul 07, 2011 at 11:33:05AM +0200, Ingo Molnar wrote:
> 
> > Please send a patch against latest -tip, we've got EFI changes in 
> > tip:x86/efi and your patch conflicts.
> 
> The original version introduced a warning, thsi was intended to replace 
> it. Is -tip not rebased?

No, it is not - please send a delta patch.

Thanks,

	Ingo

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-07-07 11:40 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-06 19:36 [PATCH 1/2] efi: Fix argument types for SetVariable() Matthew Garrett
2011-06-06 19:36 ` [PATCH 2/2] efi: Add infrastructure for UEFI 2.0 runtime services Matthew Garrett
2011-06-06 21:22   ` [tip:x86/efi] x86, " tip-bot for Matthew Garrett
2011-06-20 22:42   ` [PATCH 2/2] " Mike Waychison
2011-06-20 22:44     ` Mike Waychison
2011-06-21 15:02     ` Matthew Garrett
2011-06-06 21:21 ` [tip:x86/efi] x86, efi: Fix argument types for SetVariable() tip-bot for Matthew Garrett
2011-06-09 19:02 ` [PATCH 1/2] " Tony Luck
2011-06-09 19:09   ` Matthew Garrett
2011-07-06 20:48 ` [PATCH v2] " Matthew Garrett
2011-07-06 21:36   ` Luck, Tony
2011-07-07  9:33   ` Ingo Molnar
2011-07-07 11:38     ` Matthew Garrett
2011-07-07 11:40       ` Ingo Molnar

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.