PR port-amiga/55233 Process hangs indefinitely if not calling syscalls for a while

cpu_intr_p() is broken on amiga, fix it.

From code inspection it looks like amiga and other m68k ports check for ASTs
with interrupts enabled in some cases, which is racy.  Not fixed.
This commit is contained in:
ad 2020-05-05 21:22:48 +00:00
parent 533e6b2e7c
commit 56d6bdb9f7
1 changed files with 3 additions and 7 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: machdep.c,v 1.251 2019/02/24 19:24:20 jandberg Exp $ */
/* $NetBSD: machdep.c,v 1.252 2020/05/05 21:22:48 ad Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@ -50,7 +50,7 @@
#include "empm.h"
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.251 2019/02/24 19:24:20 jandberg Exp $");
__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.252 2020/05/05 21:22:48 ad Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -986,8 +986,6 @@ remove_isr(struct isr *isr)
}
}
static int idepth;
void
intrhand(int sr)
{
@ -995,7 +993,6 @@ intrhand(int sr)
register unsigned short ireq;
register struct isr **p, *q;
idepth++;
ipl = (sr >> 8) & 7;
#ifdef REALLYDEBUG
printf("intrhand: got int. %d\n", ipl);
@ -1118,14 +1115,13 @@ intrhand(int sr)
#ifdef REALLYDEBUG
printf("intrhand: leaving.\n");
#endif
idepth--;
}
bool
cpu_intr_p(void)
{
return idepth != 0;
return interrupt_depth != 0;
}
#if defined(DEBUG) && !defined(PANICBUTTON)