HomeFreeBSD

arm64: Don't enable interrupts when in a spinlock

Description

arm64: Don't enable interrupts when in a spinlock

When we receive an exception while in a spinlock we shouldn't enable
interrupts. When entering a spinlock we disable interrupts so enabling
them here could cause surprising results.

The three cases that could cause this are:

  1. A break-before-make sequence
  2. Accessing possibly unmapped code with a fault handler
  3. Buggy code

1 and 2 are supported later in the data abort handler, and 3 should be
fixed when found.

Reviewed by: mmel, kib, markj
Sponsored by: Arm Ltd
Differential Revision: https://reviews.freebsd.org/D46816

Details

Provenance
andrewAuthored on Thu, Oct 24, 9:52 AM
Reviewer
mmel
Differential Revision
D46816: arm64: Don't enable interrupts when in a spinlock
Parents
rG6204391e99ca: arm64: Check TDP_NOFAULTING in a data abort
Branches
Unknown
Tags
Unknown