[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Ymg+VnkW544a4La2@agluck-desk3.sc.intel.com>
Date: Tue, 26 Apr 2022 11:47:50 -0700
From: "Luck, Tony" <tony.luck@...el.com>
To: Greg KH <gregkh@...uxfoundation.org>
Cc: hdegoede@...hat.com, markgross@...nel.org, tglx@...utronix.de,
mingo@...hat.com, bp@...en8.de, dave.hansen@...ux.intel.com,
x86@...nel.org, hpa@...or.com, corbet@....net,
andriy.shevchenko@...ux.intel.com, jithu.joseph@...el.com,
ashok.raj@...el.com, rostedt@...dmis.org, dan.j.williams@...el.com,
linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org,
platform-driver-x86@...r.kernel.org, patches@...ts.linux.dev,
ravi.v.shankar@...el.com
Subject: Re: [PATCH v4 04/10] platform/x86/intel/ifs: Read IFS firmware image
On Tue, Apr 26, 2022 at 06:36:46PM +0200, Greg KH wrote:
> On Tue, Apr 26, 2022 at 09:12:37AM -0700, Luck, Tony wrote:
> > If it really is too much now, I can rip it out from this submission
> > and add it back when the second test is ready for public view.
>
> Please do, thanks.
Hmmm ... maybe there were more bits than I thought.
1 file changed, 19 insertions(+), 36 deletions(-)
core.c is now down to just 80 lines ... so that was a significant
fraction of the file.
Net change below (I'll thread it back into the patch series before reposting).
Any other comments on the series?
-Tony
diff --git a/drivers/platform/x86/intel/ifs/core.c b/drivers/platform/x86/intel/ifs/core.c
index 317ed3225307..489b77645b5e 100644
--- a/drivers/platform/x86/intel/ifs/core.c
+++ b/drivers/platform/x86/intel/ifs/core.c
@@ -9,10 +9,6 @@
#include "ifs.h"
-enum test_types {
- IFS_SAF,
-};
-
#define X86_MATCH(model) \
X86_MATCH_VENDOR_FAM_MODEL_FEATURE(INTEL, 6, \
INTEL_FAM6_##model, X86_FEATURE_CORE_CAPABILITIES, NULL)
@@ -23,27 +19,21 @@ static const struct x86_cpu_id ifs_cpu_ids[] __initconst = {
};
MODULE_DEVICE_TABLE(x86cpu, ifs_cpu_ids);
-static struct ifs_device ifs_devices[] = {
- [IFS_SAF] = {
- .data = {
- .integrity_cap_bit = MSR_INTEGRITY_CAPS_PERIODIC_BIST_BIT,
- },
- .misc = {
- .name = "intel_ifs_0",
- .nodename = "intel_ifs/0",
- .minor = MISC_DYNAMIC_MINOR,
- },
+static struct ifs_device ifs_device = {
+ .data = {
+ .integrity_cap_bit = MSR_INTEGRITY_CAPS_PERIODIC_BIST_BIT,
+ },
+ .misc = {
+ .name = "intel_ifs_0",
+ .nodename = "intel_ifs/0",
+ .minor = MISC_DYNAMIC_MINOR,
},
};
-#define IFS_NUMTESTS ARRAY_SIZE(ifs_devices)
-
static int __init ifs_init(void)
{
const struct x86_cpu_id *m;
- int ndevices = 0;
u64 msrval;
- int i;
m = x86_match_cpu(ifs_cpu_ids);
if (!m)
@@ -61,32 +51,25 @@ static int __init ifs_init(void)
if (ifs_setup_wq())
return -ENOMEM;
- for (i = 0; i < IFS_NUMTESTS; i++) {
- if (!(msrval & BIT(ifs_devices[i].data.integrity_cap_bit)))
- continue;
-
- ifs_devices[i].misc.groups = ifs_get_groups();
- if (!misc_register(&ifs_devices[i].misc)) {
- ndevices++;
- down(&ifs_sem);
- ifs_load_firmware(ifs_devices[i].misc.this_device);
- up(&ifs_sem);
- }
- }
+ ifs_device.misc.groups = ifs_get_groups();
- if (!ndevices)
+ if ((msrval & BIT(ifs_device.data.integrity_cap_bit)) &&
+ !misc_register(&ifs_device.misc)) {
+ down(&ifs_sem);
+ ifs_load_firmware(ifs_device.misc.this_device);
+ up(&ifs_sem);
+ } else {
ifs_destroy_wq();
+ return -ENODEV;
+ }
- return ndevices ? 0 : -ENODEV;
+ return 0;
}
static void __exit ifs_exit(void)
{
- int i;
- for (i = 0; i < IFS_NUMTESTS; i++)
- if (ifs_devices[i].misc.this_device)
- misc_deregister(&ifs_devices[i].misc);
+ misc_deregister(&ifs_device.misc);
ifs_destroy_wq();
}
--
2.35.1
Powered by blists - more mailing lists