2022-05-26 23:39:04

by David Arcari

[permalink] [raw]
Subject: [PATCH] [PATCH] platform/x86/intel: Fix pmt_crashlog array reference

The probe function pmt_crashlog_probe() may incorrectly reference
the 'priv->entry array' as it uses 'i' to reference the array instead
of 'priv->num_entries' as it should. This is similar to the problem
that was addressed in pmt_telemetry_probe via commit 2cdfa0c20d58
("platform/x86/intel: Fix 'rmmod pmt_telemetry' panic").

Cc: "David E. Box" <[email protected]>
Cc: Hans de Goede <[email protected]>
Cc: Mark Gross <[email protected]>
Cc: [email protected]
Signed-off-by: David Arcari <[email protected]>
---
drivers/platform/x86/intel/pmt/crashlog.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/platform/x86/intel/pmt/crashlog.c b/drivers/platform/x86/intel/pmt/crashlog.c
index 34daf9df168b..ace1239bc0a0 100644
--- a/drivers/platform/x86/intel/pmt/crashlog.c
+++ b/drivers/platform/x86/intel/pmt/crashlog.c
@@ -282,7 +282,7 @@ static int pmt_crashlog_probe(struct auxiliary_device *auxdev,
auxiliary_set_drvdata(auxdev, priv);

for (i = 0; i < intel_vsec_dev->num_resources; i++) {
- struct intel_pmt_entry *entry = &priv->entry[i].entry;
+ struct intel_pmt_entry *entry = &priv->entry[priv->num_entries].entry;

ret = intel_pmt_dev_create(entry, &pmt_crashlog_ns, intel_vsec_dev, i);
if (ret < 0)
--
2.27.0



2022-05-27 10:46:29

by David E. Box

[permalink] [raw]
Subject: Re: [PATCH] [PATCH] platform/x86/intel: Fix pmt_crashlog array reference

On Thu, 2022-05-26 at 16:31 -0400, David Arcari wrote:
> The probe function pmt_crashlog_probe() may incorrectly reference
> the 'priv->entry array' as it uses 'i' to reference the array instead
> of 'priv->num_entries' as it should. This is similar to the problem
> that was addressed in pmt_telemetry_probe via commit 2cdfa0c20d58
> ("platform/x86/intel: Fix 'rmmod pmt_telemetry' panic").
>
> Cc: "David E. Box" <[email protected]>
> Cc: Hans de Goede <[email protected]>
> Cc: Mark Gross <[email protected]>
> Cc: [email protected]
> Signed-off-by: David Arcari <[email protected]>
> ---
> drivers/platform/x86/intel/pmt/crashlog.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/intel/pmt/crashlog.c
> b/drivers/platform/x86/intel/pmt/crashlog.c
> index 34daf9df168b..ace1239bc0a0 100644
> --- a/drivers/platform/x86/intel/pmt/crashlog.c
> +++ b/drivers/platform/x86/intel/pmt/crashlog.c
> @@ -282,7 +282,7 @@ static int pmt_crashlog_probe(struct auxiliary_device
> *auxdev,
> auxiliary_set_drvdata(auxdev, priv);
>
> for (i = 0; i < intel_vsec_dev->num_resources; i++) {
> - struct intel_pmt_entry *entry = &priv->entry[i].entry;
> + struct intel_pmt_entry *entry = &priv->entry[priv-
> >num_entries].entry;
>
> ret = intel_pmt_dev_create(entry, &pmt_crashlog_ns,
> intel_vsec_dev, i);
> if (ret < 0)

Reviewed-by: David E. Box <[email protected]>

Thanks


2022-06-10 19:10:37

by Hans de Goede

[permalink] [raw]
Subject: Re: [PATCH] [PATCH] platform/x86/intel: Fix pmt_crashlog array reference

Hi,

On 5/26/22 22:31, David Arcari wrote:
> The probe function pmt_crashlog_probe() may incorrectly reference
> the 'priv->entry array' as it uses 'i' to reference the array instead
> of 'priv->num_entries' as it should. This is similar to the problem
> that was addressed in pmt_telemetry_probe via commit 2cdfa0c20d58
> ("platform/x86/intel: Fix 'rmmod pmt_telemetry' panic").
>
> Cc: "David E. Box" <[email protected]>
> Cc: Hans de Goede <[email protected]>
> Cc: Mark Gross <[email protected]>
> Cc: [email protected]
> Signed-off-by: David Arcari <[email protected]>

Thank you for your patch, I've applied this patch to my review-hans
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

Note it will show up in my review-hans branch once I've pushed my
local branch there, which might take a while.

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans

> ---
> drivers/platform/x86/intel/pmt/crashlog.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/intel/pmt/crashlog.c b/drivers/platform/x86/intel/pmt/crashlog.c
> index 34daf9df168b..ace1239bc0a0 100644
> --- a/drivers/platform/x86/intel/pmt/crashlog.c
> +++ b/drivers/platform/x86/intel/pmt/crashlog.c
> @@ -282,7 +282,7 @@ static int pmt_crashlog_probe(struct auxiliary_device *auxdev,
> auxiliary_set_drvdata(auxdev, priv);
>
> for (i = 0; i < intel_vsec_dev->num_resources; i++) {
> - struct intel_pmt_entry *entry = &priv->entry[i].entry;
> + struct intel_pmt_entry *entry = &priv->entry[priv->num_entries].entry;
>
> ret = intel_pmt_dev_create(entry, &pmt_crashlog_ns, intel_vsec_dev, i);
> if (ret < 0)