Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1560463
| From | James Morse <james.morse@arm.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort |
| Date | 2017-01-17 11:40 +0100 |
| Message-ID | <t0zlg-5WC-23@gated-at.bofh.it> (permalink) |
| References | <sYS8G-7eZ-5@gated-at.bofh.it> <sYS8H-7eZ-31@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Tyler,
On 12/01/17 18:15, Tyler Baicar wrote:
> SEA exceptions are often caused by an uncorrected hardware
> error, and are handled when data abort and instruction abort
> exception classes have specific values for their Fault Status
> Code.
> When SEA occurs, before killing the process, go through
> the handlers registered in the notification list.
> Update fault_info[] with specific SEA faults so that the
> new SEA handler is used.
> @@ -480,6 +496,28 @@ static int do_bad(unsigned long addr, unsigned int esr, struct pt_regs *regs)
> return 1;
> }
>
> +/*
> + * This abort handler deals with Synchronous External Abort.
> + * It calls notifiers, and then returns "fault".
> + */
> +static int do_sea(unsigned long addr, unsigned int esr, struct pt_regs *regs)
> +{
> + struct siginfo info;
> +
> + atomic_notifier_call_chain(&sea_handler_chain, 0, NULL);
> +
> + pr_err("Synchronous External Abort: %s (0x%08x) at 0x%016lx\n",
> + fault_name(esr), esr, addr);
> +
> + info.si_signo = SIGBUS;
> + info.si_errno = 0;
> + info.si_code = 0;
Half of the other do_*() functions in this file read the signo and code from the
fault_info table.
> + info.si_addr = (void __user *)addr;
addr here was read from FAR_EL1, but for some of the classes of exception you
have listed below this register isn't updated with the faulting address.
The ARM-ARM version 'k' in D1.10.5 "Summary of registers on faults taken to an
Exception level that is using Aarch64" has:
> The architecture permits that the FAR_ELx is UNKNOWN for Synchronous External
> Aborts other than Synchronous External Aborts on Translation Table Walks. In
> this case, the ISS.FnV bit returned in ESR_ELx indicates whether FAR_ELx is
> valid.
This is a problem if we get 'synchronous external abort' or 'synchronous parity
error' while a user space process was running.
> + arm64_notify_die("", regs, &info, esr);
> +
> + return 0;
> +}
> +
> static const struct fault_info {
> int (*fn)(unsigned long addr, unsigned int esr, struct pt_regs *regs);
> int sig;
Thanks,
James
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH V7 00/10] Add UEFI 2.6 and ACPI 6.1 updates for RAS on ARM64 Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:20 +0100
[PATCH V7 01/10] acpi: apei: read ack upon ghes record consumption Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:20 +0100
[PATCH V7 04/10] arm64: exception: handle Synchronous External Abort Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:20 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort Will Deacon <will.deacon@arm.com> - 2017-01-16 13:00 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-16 21:20 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort Will Deacon <will.deacon@arm.com> - 2017-01-17 11:30 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-19 00:10 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort James Morse <james.morse@arm.com> - 2017-01-17 11:30 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-19 00:00 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort James Morse <james.morse@arm.com> - 2017-01-17 11:40 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-19 00:30 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort James Morse <james.morse@arm.com> - 2017-01-19 19:20 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-20 21:40 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort James Morse <james.morse@arm.com> - 2017-01-23 11:10 +0100
Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-24 19:50 +0100
[PATCH V7 10/10] arm/arm64: KVM: add guest SEA support Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:30 +0100
Re: [PATCH V7 10/10] arm/arm64: KVM: add guest SEA support Marc Zyngier <marc.zyngier@arm.com> - 2017-01-16 13:00 +0100
Re: [PATCH V7 10/10] arm/arm64: KVM: add guest SEA support "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-16 21:20 +0100
[PATCH V7 08/10] ras: acpi / apei: generate trace event for unrecognized CPER section Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:30 +0100
[PATCH V7 06/10] acpi: apei: panic OS with fatal error status block Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:30 +0100
[PATCH V7 07/10] efi: print unrecognized CPER section Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:30 +0100
[PATCH V7 09/10] trace, ras: add ARM processor error trace event Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:30 +0100
[PATCH V7 05/10] acpi: apei: handle SEA notification type for ARMv8 Tyler Baicar <tbaicar@codeaurora.org> - 2017-01-12 19:30 +0100
Re: [PATCH V7 05/10] acpi: apei: handle SEA notification type for ARMv8 James Morse <james.morse@arm.com> - 2017-01-18 16:10 +0100
Re: [PATCH V7 05/10] acpi: apei: handle SEA notification type for ARMv8 "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-19 01:00 +0100
Re: [PATCH V7 05/10] acpi: apei: handle SEA notification type for ARMv8 James Morse <james.morse@arm.com> - 2017-01-19 19:10 +0100
Re: [PATCH V7 05/10] acpi: apei: handle SEA notification type for ARMv8 "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-20 22:00 +0100
Re: [PATCH V7 05/10] acpi: apei: handle SEA notification type for ARMv8 James Morse <james.morse@arm.com> - 2017-01-24 19:00 +0100
Re: [PATCH V7 05/10] acpi: apei: handle SEA notification type for ARMv8 "Baicar, Tyler" <tbaicar@codeaurora.org> - 2017-01-24 19:50 +0100
csiph-web