diff options
Diffstat (limited to 'lib/efi_loader/efi_capsule.c')
| -rw-r--r-- | lib/efi_loader/efi_capsule.c | 12 | 
1 files changed, 10 insertions, 2 deletions
| diff --git a/lib/efi_loader/efi_capsule.c b/lib/efi_loader/efi_capsule.c index b57f0302c59..9df9c35084c 100644 --- a/lib/efi_loader/efi_capsule.c +++ b/lib/efi_loader/efi_capsule.c @@ -449,7 +449,7 @@ efi_status_t EFIAPI efi_update_capsule(  	unsigned int i;  	efi_status_t ret; -	EFI_ENTRY("%p, %lu, %llu\n", capsule_header_array, capsule_count, +	EFI_ENTRY("%p, %zu, %llu\n", capsule_header_array, capsule_count,  		  scatter_gather_list);  	if (!capsule_count) { @@ -482,6 +482,14 @@ efi_status_t EFIAPI efi_update_capsule(  			goto out;  	}  out: + +	if (IS_ENABLED(CONFIG_EFI_ESRT)) { +		/* Rebuild the ESRT to reflect any updated FW images. */ +		ret = efi_esrt_populate(); +		if (ret != EFI_SUCCESS) +			log_warning("EFI Capsule: failed to update ESRT\n"); +	} +  	return EFI_EXIT(ret);  } @@ -509,7 +517,7 @@ efi_status_t EFIAPI efi_query_capsule_caps(  	unsigned int i;  	efi_status_t ret; -	EFI_ENTRY("%p, %lu, %p, %p\n", capsule_header_array, capsule_count, +	EFI_ENTRY("%p, %zu, %p, %p\n", capsule_header_array, capsule_count,  		  maximum_capsule_size, reset_type);  	if (!maximum_capsule_size) { | 
