Am 1. Juli 2021 02:49:09 MESZ schrieb AKASHI Takahiro 
<[email protected]>:
>NAK.
>
>On Wed, Jun 30, 2021 at 05:31:15PM +0200, Heinrich Schuchardt wrote:
>> The log category must be LOG_CATEGORY LOGC_EFI.
>> 
>> efi_set_variable() should be called with EFI_CALL(). Use
>> efi_set_variable_int() instead.
>> 
>> A log text "Updating ..." if SetVariable() fails does not make sense
>for a
>> variable that is not required to be preexisting.
>> 
>> CapsuleLast should always be immediately updated.
>
>As I said to your v1 in [1],
>
>You are trying to fix several irrelevant issues here.

Why do you think the changes are irrelevant?

>Please split them into separate patches as you have always
>asked me before.

Splitting does not change relevance.

Do you want to play tit for tat?

Best regards

Heinrich

>
>[1] https://lists.denx.de/pipermail/u-boot/2021-June/453148.html
>
>-Takahiro Akashi
>
>
>
>> Signed-off-by: Heinrich Schuchardt <[email protected]>
>> ---
>> v2:
>>      don't update OsIndications in set_capsule_result()
>>      update CapsuleLast immediately
>> ---
>>  lib/efi_loader/efi_capsule.c | 39
>+++++++++++++++++++-----------------
>>  1 file changed, 21 insertions(+), 18 deletions(-)
>> 
>> diff --git a/lib/efi_loader/efi_capsule.c
>b/lib/efi_loader/efi_capsule.c
>> index 2c37a0d97b..f87ef2a514 100644
>> --- a/lib/efi_loader/efi_capsule.c
>> +++ b/lib/efi_loader/efi_capsule.c
>> @@ -6,6 +6,8 @@
>>   *                  Author: AKASHI Takahiro
>>   */
>> 
>> +#define LOG_CATEGORY LOGC_EFI
>> +
>>  #include <common.h>
>>  #include <efi_loader.h>
>>  #include <efi_variable.h>
>> @@ -95,13 +97,25 @@ void set_capsule_result(int index, struct
>efi_capsule_header *capsule,
>>      else
>>              memset(&result.capsule_processed, 0, sizeof(time));
>>      result.capsule_status = return_status;
>> -    ret = efi_set_variable(variable_name16, &efi_guid_capsule_report,
>> -                           EFI_VARIABLE_NON_VOLATILE |
>> -                           EFI_VARIABLE_BOOTSERVICE_ACCESS |
>> -                           EFI_VARIABLE_RUNTIME_ACCESS,
>> -                           sizeof(result), &result);
>> -    if (ret)
>> -            log_err("EFI: creating %ls failed\n", variable_name16);
>> +    ret = efi_set_variable_int(variable_name16,
>&efi_guid_capsule_report,
>> +                               EFI_VARIABLE_NON_VOLATILE |
>> +                               EFI_VARIABLE_BOOTSERVICE_ACCESS |
>> +                               EFI_VARIABLE_RUNTIME_ACCESS,
>> +                               sizeof(result), &result, false);
>> +    if (ret != EFI_SUCCESS) {
>> +            log_err("Setting %ls failed\n", variable_name16);
>> +            return;
>> +    }
>> +
>> +    /* Variable CapsuleLast must not include terminating 0x0000 */
>> +    ret = efi_set_variable_int(L"CapsuleLast",
>&efi_guid_capsule_report,
>> +                               EFI_VARIABLE_READ_ONLY |
>> +                               EFI_VARIABLE_NON_VOLATILE |
>> +                               EFI_VARIABLE_BOOTSERVICE_ACCESS |
>> +                               EFI_VARIABLE_RUNTIME_ACCESS,
>> +                               22, variable_name16, false);
>> +    if (ret != EFI_SUCCESS)
>> +            log_err("Setting %ls failed\n", L"CapsuleLast");
>>  }
>> 
>>  #ifdef CONFIG_EFI_CAPSULE_FIRMWARE_MANAGEMENT
>> @@ -988,7 +1002,6 @@ efi_status_t efi_launch_capsules(void)
>>      struct efi_capsule_header *capsule = NULL;
>>      u16 **files;
>>      unsigned int nfiles, index, i;
>> -    u16 variable_name16[12];
>>      efi_status_t ret;
>> 
>>      if (!check_run_capsules())
>> @@ -1045,16 +1058,6 @@ efi_status_t efi_launch_capsules(void)
>>              free(files[i]);
>>      free(files);
>> 
>> -    /* CapsuleLast */
>> -    efi_create_indexed_name(variable_name16, sizeof(variable_name16),
>> -                            "Capsule", index - 1);
>> -    efi_set_variable_int(L"CapsuleLast", &efi_guid_capsule_report,
>> -                         EFI_VARIABLE_READ_ONLY |
>> -                         EFI_VARIABLE_NON_VOLATILE |
>> -                         EFI_VARIABLE_BOOTSERVICE_ACCESS |
>> -                         EFI_VARIABLE_RUNTIME_ACCESS,
>> -                         22, variable_name16, false);
>> -
>>      return ret;
>>  }
>>  #endif /* CONFIG_EFI_CAPSULE_ON_DISK */
>> --
>> 2.30.2
>> 

Reply via email to