All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zaid Alali <zaidal@os.amperecomputing.com>
To: "Rafael J. Wysocki" <rafael@kernel.org>
Cc: lenb@kernel.org, james.morse@arm.com, tony.luck@intel.com,
	bp@alien8.de, robert.moore@intel.com,
	Jonathan.Cameron@huawei.com, ira.weiny@intel.com,
	Benjamin.Cheatham@amd.com, dan.j.williams@intel.com,
	arnd@arndb.de, Avadhut.Naik@amd.com,
	u.kleine-koenig@pengutronix.de, john.allen@amd.com,
	linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
	acpica-devel@lists.linux.dev
Subject: Re: [PATCH v7 4/9] ACPI: APEI: EINJ: Remove redundant calls to einj_get_available_error_type
Date: Thu, 8 May 2025 10:57:57 -0700	[thread overview]
Message-ID: <aBzwpS6t3V4zwrxn@zaid-VirtualBox> (raw)
In-Reply-To: <CAJZ5v0j-84MDP10YEL48GTPWy1SqHWAA_Dbq+X-k3PFi9brZPw@mail.gmail.com>

On Wed, May 07, 2025 at 01:34:35PM +0200, Rafael J. Wysocki wrote:
> On Tue, May 6, 2025 at 11:38 PM Zaid Alali
> <zaidal@os.amperecomputing.com> wrote:
> >
> > A single call to einj_get_available_error_type in init function is
> > sufficient to save the return value in a global variable to be used
> > later in various places in the code. This commit does not introduce
> > any functional changes, but only removing unnecessary redundant
> > function calls.
> >
> > Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
> > Reviewed-by: Ira Weiny <ira.weiny@intel.com>
> > Signed-off-by: Zaid Alali <zaidal@os.amperecomputing.com>
> 
> Does this patch depend on patches [1-3/7]?  If not, I can pick it up
> as an optimization.
Hi Rafael,

No, this patch is does not depend on 1-3 patches. You can pick it up!

-Zaid 

> 
> > ---
> >  drivers/acpi/apei/einj-core.c | 22 +++++++++-------------
> >  1 file changed, 9 insertions(+), 13 deletions(-)
> >
> > diff --git a/drivers/acpi/apei/einj-core.c b/drivers/acpi/apei/einj-core.c
> > index 47abd9317fef..ada1d7026af5 100644
> > --- a/drivers/acpi/apei/einj-core.c
> > +++ b/drivers/acpi/apei/einj-core.c
> > @@ -83,6 +83,8 @@ static struct debugfs_blob_wrapper vendor_blob;
> >  static struct debugfs_blob_wrapper vendor_errors;
> >  static char vendor_dev[64];
> >
> > +static u32 available_error_type;
> > +
> >  /*
> >   * Some BIOSes allow parameters to the SET_ERROR_TYPE entries in the
> >   * EINJ table through an unpublished extension. Use with caution as
> > @@ -662,14 +664,9 @@ static struct { u32 mask; const char *str; } const einj_error_type_string[] = {
> >
> >  static int available_error_type_show(struct seq_file *m, void *v)
> >  {
> > -       int rc;
> > -       u32 error_type = 0;
> >
> > -       rc = einj_get_available_error_type(&error_type);
> > -       if (rc)
> > -               return rc;
> >         for (int pos = 0; pos < ARRAY_SIZE(einj_error_type_string); pos++)
> > -               if (error_type & einj_error_type_string[pos].mask)
> > +               if (available_error_type & einj_error_type_string[pos].mask)
> >                         seq_printf(m, "0x%08x\t%s\n", einj_error_type_string[pos].mask,
> >                                    einj_error_type_string[pos].str);
> >
> > @@ -692,8 +689,7 @@ bool einj_is_cxl_error_type(u64 type)
> >
> >  int einj_validate_error_type(u64 type)
> >  {
> > -       u32 tval, vendor, available_error_type = 0;
> > -       int rc;
> > +       u32 tval, vendor;
> >
> >         /* Only low 32 bits for error type are valid */
> >         if (type & GENMASK_ULL(63, 32))
> > @@ -709,13 +705,9 @@ int einj_validate_error_type(u64 type)
> >         /* Only one error type can be specified */
> >         if (tval & (tval - 1))
> >                 return -EINVAL;
> > -       if (!vendor) {
> > -               rc = einj_get_available_error_type(&available_error_type);
> > -               if (rc)
> > -                       return rc;
> > +       if (!vendor)
> >                 if (!(type & available_error_type))
> >                         return -EINVAL;
> > -       }
> >
> >         return 0;
> >  }
> > @@ -791,6 +783,10 @@ static int __init einj_probe(struct platform_device *pdev)
> >                 goto err_put_table;
> >         }
> >
> > +       rc = einj_get_available_error_type(&available_error_type);
> > +       if (rc)
> > +               return rc;
> > +
> >         rc = -ENOMEM;
> >         einj_debug_dir = debugfs_create_dir("einj", apei_get_debugfs_dir());
> >
> > --
> > 2.43.0
> >

  reply	other threads:[~2025-05-08 17:58 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-06 21:38 [PATCH v7 0/9] Enable EINJv2 Support Zaid Alali
2025-05-06 21:38 ` [PATCH v7 1/9] ACPICA: Update values to hex to follow ACPI specs Zaid Alali
2025-05-07 11:28   ` Rafael J. Wysocki
2025-05-06 21:38 ` [PATCH v7 2/9] ACPICA: Add EINJv2 get error type action Zaid Alali
2025-05-07 11:28   ` Rafael J. Wysocki
2025-05-06 21:38 ` [PATCH v7 3/9] ACPI: APEI: EINJ: Fix kernel test sparse warnings Zaid Alali
2025-05-07 11:31   ` Rafael J. Wysocki
2025-05-06 21:38 ` [PATCH v7 4/9] ACPI: APEI: EINJ: Remove redundant calls to einj_get_available_error_type Zaid Alali
2025-05-07 11:34   ` Rafael J. Wysocki
2025-05-08 17:57     ` Zaid Alali [this message]
2025-05-09 19:25       ` Rafael J. Wysocki
2025-05-06 21:38 ` [PATCH v7 5/9] ACPI: APEI: EINJ: Enable the discovery of EINJv2 capabilities Zaid Alali
2025-05-07 11:38   ` Rafael J. Wysocki
2025-05-28 20:55   ` Luck, Tony
2025-05-06 21:38 ` [PATCH v7 6/9] ACPI: APEI: EINJ: Add einjv2 extension struct Zaid Alali
2025-05-28 18:38   ` Luck, Tony
2025-05-29 15:28     ` Luck, Tony
2025-05-06 21:38 ` [PATCH v7 7/9] ACPI: APEI: EINJ: Add debugfs files for EINJv2 support Zaid Alali
2025-05-29 23:36   ` Luck, Tony
2025-05-06 21:38 ` [PATCH v7 8/9] ACPI: APEI: EINJ: Enable EINJv2 error injections Zaid Alali
2025-05-30  0:21   ` Luck, Tony
2025-05-06 21:38 ` [PATCH v7 9/9] ACPI: APEI: EINJ: Update the documentation for EINJv2 support Zaid Alali
2025-05-29 23:33   ` Luck, Tony
2025-05-30 10:27   ` Borislav Petkov
2025-05-30 20:52     ` Luck, Tony
2025-05-30 23:09       ` Luck, Tony
2025-05-31  9:20       ` Borislav Petkov
2025-05-31 22:24         ` Luck, Tony
2025-06-01 10:25           ` Borislav Petkov
2025-06-02 17:02             ` Luck, Tony
2025-06-02 23:41               ` Zaid Alali
2025-06-03  8:31               ` Borislav Petkov
2025-06-03 15:42                 ` Luck, Tony

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=aBzwpS6t3V4zwrxn@zaid-VirtualBox \
    --to=zaidal@os.amperecomputing.com \
    --cc=Avadhut.Naik@amd.com \
    --cc=Benjamin.Cheatham@amd.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=acpica-devel@lists.linux.dev \
    --cc=arnd@arndb.de \
    --cc=bp@alien8.de \
    --cc=dan.j.williams@intel.com \
    --cc=ira.weiny@intel.com \
    --cc=james.morse@arm.com \
    --cc=john.allen@amd.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=robert.moore@intel.com \
    --cc=tony.luck@intel.com \
    --cc=u.kleine-koenig@pengutronix.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.