[PATCH 05/10] platform/x86/intel/pmt: crashlog binary file endpoint
Ruhl, Michael J
michael.j.ruhl at intel.com
Mon Jun 2 15:02:44 UTC 2025
>-----Original Message-----
>From: Ilpo Järvinen <ilpo.jarvinen at linux.intel.com>
>Sent: Saturday, May 31, 2025 1:37 AM
>To: Ruhl, Michael J <michael.j.ruhl at intel.com>
>Cc: platform-driver-x86 at vger.kernel.org; intel-xe at lists.freedesktop.org; Hans
>de Goede <hdegoede at redhat.com>; De Marchi, Lucas
><lucas.demarchi at intel.com>; Vivi, Rodrigo <rodrigo.vivi at intel.com>
>Subject: Re: [PATCH 05/10] platform/x86/intel/pmt: crashlog binary file
>endpoint
>
>On Fri, 30 May 2025, Michael J. Ruhl wrote:
>
>> Usage of the intel_pmt_read() for binary sysfs, requires an
>> allocated endpoint struct. The crashlog driver does not
>> allocate the endpoint.
>>
>> Without the ep, the crashlog usage causes the following NULL
>> pointer exception:
>>
>> BUG: kernel NULL pointer dereference, address: 0000000000000000
>> Oops: Oops: 0000 [#1] SMP NOPTI
>> RIP: 0010:intel_pmt_read+0x3b/0x70 [pmt_class]
>> Code:
>> Call Trace:
>> <TASK>
>> ? sysfs_kf_bin_read+0xc0/0xe0
>> kernfs_fop_read_iter+0xac/0x1a0
>> vfs_read+0x26d/0x350
>> ksys_read+0x6b/0xe0
>> __x64_sys_read+0x1d/0x30
>> x64_sys_call+0x1bc8/0x1d70
>> do_syscall_64+0x6d/0x110
>>
>> Add the endpoint information to the crashlog driver to avoid
>> the NULL pointer exception.
>>
>> Fixes: 416eeb2e1fc7 ("platform/x86/intel/pmt: telemetry: Export API to read
>telemetry")
>
>Add Cc: <stable at vger.kernel.org> and as this is going to stable so you
>should mrk the patches this one depends on with the stable Cc as well,
>this is explained in Documentation/process/stable-kernel-rules.rst.
I will review this and make sure they are correct for my next update.
>As a general rule, it would be useful to put the patches going to stable
>as first and refactor and feature changes only after that (you had some
>whitespace and guard() changes before this patch).
That makes sense. I will re-order the patches.
M
>> Signed-off-by: Michael J. Ruhl <michael.j.ruhl at intel.com>
>> ---
>> drivers/platform/x86/intel/pmt/crashlog.c | 9 +++++++--
>> 1 file changed, 7 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/platform/x86/intel/pmt/crashlog.c
>b/drivers/platform/x86/intel/pmt/crashlog.c
>> index c6d8a7a61d39..94858bfb52f8 100644
>> --- a/drivers/platform/x86/intel/pmt/crashlog.c
>> +++ b/drivers/platform/x86/intel/pmt/crashlog.c
>> @@ -250,6 +250,7 @@ static struct intel_pmt_namespace pmt_crashlog_ns
>= {
>> .xa = &crashlog_array,
>> .attr_grp = &pmt_crashlog_group,
>> .pmt_header_decode = pmt_crashlog_header_decode,
>> + .pmt_add_endpoint = intel_pmt_add_endpoint,
>> };
>>
>> /*
>> @@ -260,8 +261,12 @@ static void pmt_crashlog_remove(struct
>auxiliary_device *auxdev)
>> struct pmt_crashlog_priv *priv = auxiliary_get_drvdata(auxdev);
>> int i;
>>
>> - for (i = 0; i < priv->num_entries; i++)
>> - intel_pmt_dev_destroy(&priv->entry[i].entry,
>&pmt_crashlog_ns);
>> + for (i = 0; i < priv->num_entries; i++) {
>> + struct intel_pmt_entry *entry = &priv->entry[i].entry;
>> +
>> + intel_pmt_release_endpoint(entry->ep);
>> + intel_pmt_dev_destroy(entry, &pmt_crashlog_ns);
>> + }
>> }
>>
>> static int pmt_crashlog_probe(struct auxiliary_device *auxdev,
>>
>
>--
> i.
More information about the Intel-xe
mailing list