Re: [PATCH v3 2/6] efi/cper: Export cper_mem_err_unpack() for use by modules

From: Terry Bowman
Date: Fri Apr 14 2023 - 11:18:14 EST




On 4/14/23 08:24, Terry Bowman wrote:
>
>
> On 4/14/23 06:48, Jonathan Cameron wrote:
>> On Thu, 13 Apr 2023 14:40:10 -0500
>> Terry Bowman <Terry.Bowman@xxxxxxx> wrote:
>>
>>> Hi Jonathan,
>>>
>>> On 4/13/23 11:08, Jonathan Cameron wrote:
>>>> On Tue, 11 Apr 2023 13:02:58 -0500
>>>> Terry Bowman <terry.bowman@xxxxxxx> wrote:
>>>>
>>>>> The CXL driver plans to use cper_print_aer() for restricted CXL host (RCH)
>>>>> logging. This is not currently possible if CXL is built as a loadable
>>>>> module because cper_print_aer() depends on cper_mem_err_unpack() which
>>>>> is not exported.
>>>>>
>>>>> Export cper_mem_err_unpack() to enable cper_print_aer() usage in
>>>>> CXL and other loadable modules.
>>>>
>>>> No problem with the export, but I'm struggling to see the path that needs it.
>>>> Could you give a little more detail, perhaps a call path?
>>>>
>>>
>>> The cper_print_aer() is used to log RCH dport AER errors. This is needed
>>> because the RCH dport AER errors are not handled directly by the AER port
>>> driver. I'll add these details to the patch.
>>
>> Ah. I wasn't particularly clear. cper_print_aer() is fine, but oddly
>> I'm not seeing where that results in a call to cper_mem_err_unpack()
>>
>> More than possible my grep skills are failing me!
>>
>> Jonathan
>>
>
> I see. Without this patch, if include/ras/ras_event.h cper_mem_err_unpack()
>
> We use
>
>

Testing shows this patch is no longer needed. This patch was required for earlier
implementation calling the aer trace macros directly. I will remove this
patch in next patchset revision.

Regards,
Terry

>>>
>>> Regards,
>>> Terry
>>>
>>>> Thanks,
>>>>
>>>> Jonathan
>>>>
>>>>>
>>>>> Signed-off-by: Terry Bowman <terry.bowman@xxxxxxx>
>>>>> Cc: Ard Biesheuvel <ardb@xxxxxxxxxx>
>>>>> Cc: linux-efi@xxxxxxxxxxxxxxx
>>>>> ---
>>>>> drivers/firmware/efi/cper.c | 1 +
>>>>> 1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
>>>>> index 35c37f667781..ff15e12160ae 100644
>>>>> --- a/drivers/firmware/efi/cper.c
>>>>> +++ b/drivers/firmware/efi/cper.c
>>>>> @@ -350,6 +350,7 @@ const char *cper_mem_err_unpack(struct trace_seq *p,
>>>>>
>>>>> return ret;
>>>>> }
>>>>> +EXPORT_SYMBOL_GPL(cper_mem_err_unpack);
>>>>>
>>>>> static void cper_print_mem(const char *pfx, const struct cper_sec_mem_err *mem,
>>>>> int len)
>>>>
>>