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

Alex Hung alex.hung at canonical.com
Thu Jul 7 03:15:52 UTC 2016


On 2016-07-06 05:51 PM, Ivan Hu wrote:
> 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;
>


Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list