• Xiaofei Tan's avatar
    ACPI: APEI: fix synchronous external aborts in user-mode · ccb5ecdc
    Xiaofei Tan authored
    Before commit 8fcc4ae6 ("arm64: acpi: Make apei_claim_sea()
    synchronise with APEI's irq work"), do_sea() would unconditionally
    signal the affected task from the arch code. Since that change,
    the GHES driver sends the signals.
    
    This exposes a problem as errors the GHES driver doesn't understand
    or doesn't handle effectively are silently ignored. It will cause
    the errors get taken again, and circulate endlessly. User-space task
    get stuck in this loop.
    
    Existing firmware on Kunpeng9xx systems reports cache errors with the
    'ARM Processor Error' CPER records.
    
    Do memory failure handling for ARM Processor Error Section just like
    for Memory Error Section.
    
    Fixes: 8fcc4ae6 ("arm64: acpi: Make apei_claim_sea() synchronise with APEI's irq work")
    Signed-off-by: default avatarXiaofei Tan <tanxiaofei@huawei.com>
    Reviewed-by: default avatarJames Morse <james.morse@arm.com>
    [ rjw: Subject edit ]
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    ccb5ecdc
ghes.c 39.3 KB