• Mark Rutland's avatar
    arm64: stacktrace: rework stack boundary discovery · d1f684e4
    Mark Rutland authored
    In subsequent patches we'll want to acquire the stack boundaries
    ahead-of-time, and we'll need to be able to acquire the relevant
    stack_info regardless of whether we have an object the happens to be on
    the stack.
    
    This patch replaces the on_XXX_stack() helpers with stackinfo_get_XXX()
    helpers, with the caller being responsible for the checking whether an
    object is on a relevant stack. For the moment this is moved into the
    on_accessible_stack() functions, making these slightly larger;
    subsequent patches will remove the on_accessible_stack() functions and
    simplify the logic.
    
    The on_irq_stack() and on_task_stack() helpers are kept as these are
    used by IRQ entry sequences and stackleak respectively. As they're only
    used as predicates, the stack_info pointer parameter is removed in both
    cases.
    
    As the on_accessible_stack() functions are always passed a non-NULL info
    pointer, these now update info unconditionally. When updating the type
    to STACK_TYPE_UNKNOWN, the low/high bounds are also modified, but as
    these will not be consumed this should have no adverse affect.
    
    There should be no functional change as a result of this patch.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Reviewed-by: default avatarKalesh Singh <kaleshsingh@google.com>
    Reviewed-by: default avatarMadhavan T. Venkataraman <madvenka@linux.microsoft.com>
    Reviewed-by: default avatarMark Brown <broonie@kernel.org>
    Cc: Fuad Tabba <tabba@google.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20220901130646.1316937-7-mark.rutland@arm.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    d1f684e4
processor.h 11.4 KB