From: James Morse <james.morse@arm.com>
To: Borislav Petkov <bp@alien8.de>, luanshi <zhangliguang@linux.alibaba.com>
Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>,
Len Brown <lenb@kernel.org>,
linux-acpi@vger.kernel.org, Tony Luck <tony.luck@intel.com>
Subject: Re: [PATCH] ACPI / APEI: Remove needless __ghes_check_estatus() calls
Date: Mon, 24 Jun 2019 18:32:28 +0100 [thread overview]
Message-ID: <699f3fa3-0696-c894-0d00-93794defb89d@arm.com> (raw)
In-Reply-To: <20190621151826.GA19067@zn.tnic>
Hi Boris,
On 21/06/2019 16:18, Borislav Petkov wrote:
> On Mon, Jun 17, 2019 at 01:25:29PM +0800, luanshi wrote:
>> Function __ghes_check_estatus() is called after __ghes_peek_estatus(),
>> but it is already called in __ghes_peek_estatus(). So we should remove
>> diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
>> index 993940d..1041a4d 100644
>> --- a/drivers/acpi/apei/ghes.c
>> +++ b/drivers/acpi/apei/ghes.c
>> @@ -372,10 +372,6 @@ static int ghes_read_estatus(struct ghes *ghes,
>> if (rc)
>> return rc;
>>
>> - rc = __ghes_check_estatus(ghes, estatus);
>> - if (rc)
>> - return rc;
>> -
>> return __ghes_read_estatus(estatus, *buf_paddr, fixmap_idx,
>> cper_estatus_len(estatus));
>> }
>> @@ -882,12 +878,6 @@ static int ghes_in_nmi_queue_one_entry(struct ghes *ghes,
>> return rc;
>> }
>>
>> - rc = __ghes_check_estatus(ghes, &tmp_header);
>> - if (rc) {
>> - ghes_clear_estatus(ghes, &tmp_header, buf_paddr, fixmap_idx);
>> - return rc;
>> - }
>> -
>> len = cper_estatus_len(&tmp_header);
>> node_len = GHES_ESTATUS_NODE_LEN(len);
>> estatus_node = (void *)gen_pool_alloc(ghes_estatus_pool, node_len);
>> --
>
> Yah, looks correct to me.
Yes, looks like I changed my mind halfway through about whether peek should just get the
values needed to allocate 'enough' memory, or do some validation too.
> James, I think the cleaner thing to do would be for
> __ghes_peek_estatus() not to call __ghes_check_estatus() at the end but
> to return success and we can keep the two functions - "peek" and "check"
> status - separate and always do:
>
> if (peek)
> return ...;
>
> if (check)
> return ...;
>
> because this way the checking remains separate in __ghes_check_estatus()
> and so is the peeking in __ghes_peek_estatus().
>
> We can merge the two functions because we always do peek and then check
> but keeping them separate makes the code clearer.
>
> Am I making some sense...?
Makes sense to me.
Thanks,
James
prev parent reply other threads:[~2019-06-24 17:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-17 5:25 [PATCH] ACPI / APEI: Remove needless __ghes_check_estatus() calls luanshi
2019-06-21 15:18 ` Borislav Petkov
2019-06-24 17:32 ` James Morse [this message]
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=699f3fa3-0696-c894-0d00-93794defb89d@arm.com \
--to=james.morse@arm.com \
--cc=bp@alien8.de \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=rjw@rjwysocki.net \
--cc=tony.luck@intel.com \
--cc=zhangliguang@linux.alibaba.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox