Re: [PATCH v4] acpi, apei, arm64: APEI initial support for aarch64.

Lorenzo Pieralisi
2015-12-08T14:07:20Z

On Tue, Dec 08, 2015 at 09:08:24PM +0800, Fu Wei wrote:
> Hi Lorenzo,
>
>
>
> On 8 December 2015 at 20:52, Hanjun Guo <hanjun.guo@linaro.org> wrote:
> > Hi Lorenzo,
> >
> > On 12/08/2015 08:34 PM, Lorenzo Pieralisi wrote:
> >>
> >> On Tue, Dec 08, 2015 at 03:03:03PM +0800, fu.wei@linaro.org wrote:
> >>>
> >>> From: Tomasz Nowicki <tomasz.nowicki@linaro.org>
> >>
> >>
> >> [...]
> >>
> >>> +#if defined(__i386__) || defined(__x86_64__)
> >>> /*
> >>> * Check if firmware advertises firmware first mode. We need FF bit to
> >>> be set
> >>> * along with a set of MC banks which work in FF mode.
> >>> */
> >>> static int __init hest_parse_cmc(struct acpi_hest_header *hest_hdr,
> >>> void *data)
> >>> {
> >>> - return arch_apei_enable_cmcff(hest_hdr, data);
> >>> + if (!acpi_disable_cmcff)
> >>
> >>
> >> Why do not you define the flag above in this file (move it out of x86 -
> >> that's what I was aiming at in my previous reply) and remove this
> >> ifdeffery
> >> altogether (First firmware handling could apply to arm64 too according to
> >> specs and ACPI on arm64 guidelines) ?
> >
> >
> > If I understand it correctly, CMC (Corrected Machine Check) is for IA32
> > only, see section 18.3.2.1 IA-32 Architecture Machine Check Exception
> > in ACPI 6.0. for ARM64, we can use other type of error source for
> > firmware first handling, such as Generic Hardware Error Source, did
> > I miss something?
>
> yes, that is why I try to use "#if defined(__i386__) ||
> defined(__x86_64__)" instead of moving acpi_disable_cmcff out of x86
> code to here.
>
> And I thinks we also can do "arch_apei_enable_cmcff" -->
> "apei_enable_ia_cmcff" because that is IA32 only.
>
> Please correct me if I misunderstand something. Thanks :-)

No you are right, I was confused by the arch_apei_enable_cmcff __weak
function declaration, I am not sure that makes much sense, as you say.

Side note: I wonder if there is a way to make the TLB flushing API common
across architectures therefore avoiding this arch_apei_flush_tlb* churn.

Thanks,
Lorenzo

> Great thanks for your feedback :-)
>
> >
> > Thanks
> > Hanjun
>
>
>
> --
> Best regards,
>
> Fu Wei
> Software Engineer
> Red Hat Software (Beijing) Co.,Ltd.Shanghai Branch
> Ph: +86 21 61221326(direct)
> Ph: +86 186 2020 4684 (mobile)
> Room 1512, Regus One Corporate Avenue,Level 15,
> One Corporate Avenue,222 Hubin Road,Huangpu District,
> Shanghai,China 200021
>