[PATCH 2/3] efi_runtime: reuse the in-kernel capsule header structure

Ivan Hu ivan.hu at canonical.com
Wed Jul 6 09:51:47 UTC 2016


reuse the in-kernel capsule header structure efi_capsule_header_t instead of
making our own.

Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
 efi_runtime/efi_runtime.c | 8 ++++----
 efi_runtime/efi_runtime.h | 9 +--------
 2 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/efi_runtime/efi_runtime.c b/efi_runtime/efi_runtime.c
index 4c83800..1aa4012 100644
--- a/efi_runtime/efi_runtime.c
+++ b/efi_runtime/efi_runtime.c
@@ -564,7 +564,7 @@ static long efi_runtime_query_capsulecaps(unsigned long arg)
 {
 	struct efi_querycapsulecapabilities __user *u_caps;
 	struct efi_querycapsulecapabilities caps;
-	EFI_CAPSULE_HEADER *capsules;
+	efi_capsule_header_t *capsules;
 	efi_status_t status;
 	uint64_t max_size;
 	int i, reset_type;
@@ -575,12 +575,12 @@ static long efi_runtime_query_capsulecaps(unsigned long arg)
 		return -EFAULT;
 
 	capsules = kcalloc(caps.CapsuleCount + 1,
-			   sizeof(EFI_CAPSULE_HEADER), GFP_KERNEL);
+			   sizeof(efi_capsule_header_t), GFP_KERNEL);
 	if (!capsules)
 		return -ENOMEM;
 
 	for (i = 0; i < caps.CapsuleCount; i++) {
-		EFI_CAPSULE_HEADER *c;
+		efi_capsule_header_t *c;
 		/*
 		 * We cannot dereference caps.CapsuleHeaderArray directly to
 		 * obtain the address of the capsule as it resides in the
@@ -588,7 +588,7 @@ static long efi_runtime_query_capsulecaps(unsigned long arg)
 		 */
 		if (get_user(c, caps.CapsuleHeaderArray + i))
 			return -EFAULT;
-		if (copy_from_user(&capsules[i], c, sizeof(EFI_CAPSULE_HEADER)))
+		if (copy_from_user(&capsules[i], c, sizeof(efi_capsule_header_t)))
 			return -EFAULT;
 	}
 
diff --git a/efi_runtime/efi_runtime.h b/efi_runtime/efi_runtime.h
index b9177d4..e369981 100644
--- a/efi_runtime/efi_runtime.h
+++ b/efi_runtime/efi_runtime.h
@@ -29,13 +29,6 @@ typedef enum {
 	EfiResetShutdown
 } EFI_RESET_TYPE;
 
-typedef struct {
-	efi_guid_t CapsuleGuid;
-	uint32_t HeaderSize;
-	uint32_t Flags;
-	uint32_t CapsuleImageSize;
-} __attribute__ ((packed)) EFI_CAPSULE_HEADER;
-
 struct efi_getvariable {
 	uint16_t	*VariableName;
 	efi_guid_t	*VendorGuid;
@@ -99,7 +92,7 @@ struct efi_getnexthighmonotoniccount {
 } __attribute__ ((packed));
 
 struct efi_querycapsulecapabilities {
-	EFI_CAPSULE_HEADER	**CapsuleHeaderArray;
+	efi_capsule_header_t	**CapsuleHeaderArray;
 	uint64_t		CapsuleCount;
 	uint64_t		*MaximumCapsuleSize;
 	EFI_RESET_TYPE		*ResetType;
-- 
1.9.1




More information about the fwts-devel mailing list