diff options
author | Kenji Aoyama <aoyama@cvs.openbsd.org> | 2020-01-04 03:17:57 +0000 |
---|---|---|
committer | Kenji Aoyama <aoyama@cvs.openbsd.org> | 2020-01-04 03:17:57 +0000 |
commit | c907c9d6f2c91945b127beac1ccb398925e701d5 (patch) | |
tree | 85d2da969594981d26630c995df3a5027da5855d | |
parent | baa202d2aa84c1aa9f9df9cd5c77144ccd4ba452 (diff) |
Ignore 'hardware lied' interrupt in do-while loop, same as first
time processing. That was sometimes observed when the system get
heavy load, like 'make -j N build'.
-rw-r--r-- | sys/arch/luna88k/luna88k/machdep.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/arch/luna88k/luna88k/machdep.c b/sys/arch/luna88k/luna88k/machdep.c index 6785ba5a810..f72349f830d 100644 --- a/sys/arch/luna88k/luna88k/machdep.c +++ b/sys/arch/luna88k/luna88k/machdep.c @@ -1,4 +1,4 @@ -/* $OpenBSD: machdep.c,v 1.129 2019/12/31 10:07:31 mpi Exp $ */ +/* $OpenBSD: machdep.c,v 1.130 2020/01/04 03:17:56 aoyama Exp $ */ /* * Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr. * Copyright (c) 1996 Nivas Madhur @@ -891,6 +891,11 @@ luna88k_ext_int(struct trapframe *eframe) cur_isr = *(volatile uint32_t *)ci->ci_intr_mask; cur_int_level = cur_isr >> 29; + + /* Again, ignore 'hardware lied' interrupt */ + if ( !(cur_isr & (1 << (cur_int_level + 17)))) + goto out; + } while (cur_int_level != 0); out: |