xtensa: add parameters to xtensa_pause_handler

reason:
nxsched_smp_call_handler need these parameters

Signed-off-by: hujun5 <hujun5@xiaomi.com>
This commit is contained in:
hujun5 2024-09-19 20:42:16 +08:00 committed by Xiang Xiao
parent 5e2d205e1b
commit 4a796c39bb
4 changed files with 14 additions and 14 deletions

View File

@ -234,7 +234,7 @@ uint32_t *xtensa_user(int exccause, uint32_t *regs);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
int xtensa_intercpu_interrupt(int tocpu, int intcode); int xtensa_intercpu_interrupt(int tocpu, int intcode);
void xtensa_pause_handler(void); void xtensa_pause_handler(int irq, void *context, void *arg);
#endif #endif
/* Signals */ /* Signals */

View File

@ -208,11 +208,13 @@ int up_cpu_paused_restore(void)
* *
****************************************************************************/ ****************************************************************************/
void xtensa_pause_handler(void) void xtensa_pause_handler(int irq, void *context, void *arg)
{ {
struct tcb_s *tcb; struct tcb_s *tcb;
int cpu = this_cpu(); int cpu = this_cpu();
nxsched_smp_call_handler(irq, context, arg);
/* Check for false alarms. Such false could occur as a consequence of /* Check for false alarms. Such false could occur as a consequence of
* some deadlock breaking logic that might have already serviced the * some deadlock breaking logic that might have already serviced the
* interrupt by calling up_cpu_paused. * interrupt by calling up_cpu_paused.

View File

@ -49,7 +49,8 @@
* *
****************************************************************************/ ****************************************************************************/
static int IRAM_ATTR esp32_fromcpu_interrupt(int fromcpu) static int IRAM_ATTR esp32_fromcpu_interrupt(int irq, void *context,
void *arg, int fromcpu)
{ {
uintptr_t regaddr; uintptr_t regaddr;
@ -64,7 +65,7 @@ static int IRAM_ATTR esp32_fromcpu_interrupt(int fromcpu)
/* Call pause handler */ /* Call pause handler */
xtensa_pause_handler(); xtensa_pause_handler(irq, context, arg);
return OK; return OK;
} }
@ -83,14 +84,12 @@ static int IRAM_ATTR esp32_fromcpu_interrupt(int fromcpu)
int IRAM_ATTR esp32_fromcpu0_interrupt(int irq, void *context, void *arg) int IRAM_ATTR esp32_fromcpu0_interrupt(int irq, void *context, void *arg)
{ {
nxsched_smp_call_handler(irq, context, arg); return esp32_fromcpu_interrupt(irq, context, arg, 0);
return esp32_fromcpu_interrupt(0);
} }
int IRAM_ATTR esp32_fromcpu1_interrupt(int irq, void *context, void *arg) int IRAM_ATTR esp32_fromcpu1_interrupt(int irq, void *context, void *arg)
{ {
nxsched_smp_call_handler(irq, context, arg); return esp32_fromcpu_interrupt(irq, context, arg, 1);
return esp32_fromcpu_interrupt(1);
} }
/**************************************************************************** /****************************************************************************

View File

@ -50,7 +50,8 @@
* *
****************************************************************************/ ****************************************************************************/
static int IRAM_ATTR esp32s3_fromcpu_interrupt(int fromcpu) static int IRAM_ATTR esp32s3_fromcpu_interrupt(int irq, void *context,
void *arg, int fromcpu)
{ {
uintptr_t regaddr; uintptr_t regaddr;
@ -65,7 +66,7 @@ static int IRAM_ATTR esp32s3_fromcpu_interrupt(int fromcpu)
/* Call pause handler */ /* Call pause handler */
xtensa_pause_handler(); xtensa_pause_handler(irq, context, arg);
return OK; return OK;
} }
@ -84,14 +85,12 @@ static int IRAM_ATTR esp32s3_fromcpu_interrupt(int fromcpu)
int IRAM_ATTR esp32s3_fromcpu0_interrupt(int irq, void *context, void *arg) int IRAM_ATTR esp32s3_fromcpu0_interrupt(int irq, void *context, void *arg)
{ {
nxsched_smp_call_handler(irq, context, arg); return esp32s3_fromcpu_interrupt(irq, context, arg, 0);
return esp32s3_fromcpu_interrupt(0);
} }
int IRAM_ATTR esp32s3_fromcpu1_interrupt(int irq, void *context, void *arg) int IRAM_ATTR esp32s3_fromcpu1_interrupt(int irq, void *context, void *arg)
{ {
nxsched_smp_call_handler(irq, context, arg); return esp32s3_fromcpu_interrupt(irq, context, arg, 1);
return esp32s3_fromcpu_interrupt(1);
} }
/**************************************************************************** /****************************************************************************