All of lore.kernel.org
 help / color / mirror / Atom feed
From: Heinrich Schuchardt <xypron.glpk@gmx.de>
To: AKASHI Takahiro <takahiro.akashi@linaro.org>
Cc: u-boot@lists.denx.de, Alexander Graf <agraf@csgraf.de>,
	Ilias Apalodimas <ilias.apalodimas@linaro.org>
Subject: Re: [PATCH v2 1/2] efi_loader: fix set_capsule_result()
Date: Thu, 01 Jul 2021 03:20:48 +0200	[thread overview]
Message-ID: <3A4AF309-5C9F-4019-9390-B51D94FF58E4@gmx.de> (raw)
In-Reply-To: <20210701004909.GA7183@laputa>

Am 1. Juli 2021 02:49:09 MESZ schrieb AKASHI Takahiro <takahiro.akashi@linaro.org>:
>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 <xypron.glpk@gmx.de>
>> ---
>> 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	other threads:[~2021-07-01  1:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-30 15:31 [PATCH v2 0/2] efi_loader: indicating capsule update results Heinrich Schuchardt
2021-06-30 15:31 ` [PATCH v2 1/2] efi_loader: fix set_capsule_result() Heinrich Schuchardt
2021-07-01  0:49   ` AKASHI Takahiro
2021-07-01  1:20     ` Heinrich Schuchardt [this message]
2021-07-01  1:55       ` AKASHI Takahiro
2021-06-30 15:31 ` [PATCH v2 2/2] efi_loader: clear OsIndications Heinrich Schuchardt
2021-06-30 19:18   ` Ilias Apalodimas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3A4AF309-5C9F-4019-9390-B51D94FF58E4@gmx.de \
    --to=xypron.glpk@gmx.de \
    --cc=agraf@csgraf.de \
    --cc=ilias.apalodimas@linaro.org \
    --cc=takahiro.akashi@linaro.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.