• Mark Rutland's avatar
    arm64: ptrace: prepare for EL1 irq/rcu tracking · 1ec2f2c0
    Mark Rutland authored
    Exceptions from EL1 may be taken when RCU isn't watching (e.g. in idle
    sequences), or when the lockdep hardirqs transiently out-of-sync with
    the hardware state (e.g. in the middle of local_irq_enable()). To
    correctly handle these cases, we'll need to save/restore this state
    across some exceptions taken from EL1.
    
    A series of subsequent patches will update EL1 exception handlers to
    handle this. In preparation for this, and to avoid dependencies between
    those patches, this patch adds two new fields to struct pt_regs so that
    exception handlers can track this state.
    
    Note that this is placed in pt_regs as some entry/exit sequences such as
    el1_irq are invoked from assembly, which makes it very difficult to add
    a separate structure as with the irqentry_state used by x86. We can
    separate this once more of the exception logic is moved to C. While the
    fields only need to be bool, they are both made u64 to keep pt_regs
    16-byte aligned.
    
    There should be no functional change as a result of this patch.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: James Morse <james.morse@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20201130115950.22492-9-mark.rutland@arm.comSigned-off-by: default avatarWill Deacon <will@kernel.org>
    1ec2f2c0
ptrace.h 9.84 KB