Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1560463

Re: [PATCH V7 04/10] arm64: exception: handle Synchronous External Abort

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

Show all headers | View raw


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


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