diff options
Diffstat (limited to 'services/std_svc/sdei/sdei_intr_mgmt.c')
-rw-r--r-- | services/std_svc/sdei/sdei_intr_mgmt.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/services/std_svc/sdei/sdei_intr_mgmt.c b/services/std_svc/sdei/sdei_intr_mgmt.c index b8799cd4..fa1d3d28 100644 --- a/services/std_svc/sdei/sdei_intr_mgmt.c +++ b/services/std_svc/sdei/sdei_intr_mgmt.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -31,7 +31,7 @@ typedef struct sdei_dispatch_context { sdei_ev_map_t *map; uint64_t x[SDEI_SAVED_GPREGS]; - struct jmpbuf *dispatch_jmp; + jmp_buf *dispatch_jmp; /* Exception state registers */ uint64_t elr_el3; @@ -236,7 +236,7 @@ static cpu_context_t *restore_and_resume_ns_context(void) * SDEI client. */ static void setup_ns_dispatch(sdei_ev_map_t *map, sdei_entry_t *se, - cpu_context_t *ctx, struct jmpbuf *dispatch_jmp) + cpu_context_t *ctx, jmp_buf *dispatch_jmp) { sdei_dispatch_context_t *disp_ctx; @@ -347,7 +347,7 @@ int sdei_intr_handler(uint32_t intr_raw, uint32_t flags, void *handle, unsigned int sec_state; sdei_cpu_state_t *state; uint32_t intr; - struct jmpbuf dispatch_jmp; + jmp_buf dispatch_jmp; const uint64_t mpidr = read_mpidr_el1(); /* @@ -529,7 +529,7 @@ int sdei_dispatch_event(int ev_num) cpu_context_t *ns_ctx; sdei_dispatch_context_t *disp_ctx; sdei_cpu_state_t *state; - struct jmpbuf dispatch_jmp; + jmp_buf dispatch_jmp; /* Can't dispatch if events are masked on this PE */ state = sdei_get_this_pe_state(); @@ -595,9 +595,9 @@ int sdei_dispatch_event(int ev_num) return 0; } -static void end_sdei_synchronous_dispatch(struct jmpbuf *buffer) +static void end_sdei_synchronous_dispatch(jmp_buf *buffer) { - longjmp(buffer); + longjmp(*buffer, 1); } int sdei_event_complete(bool resume, uint64_t pc) |