* This fixes the broken count of unhandled interrupts which caused some
problems in the past (it only worked for level triggered interrupts). * Of course, the actual problem is that on current hardware we detect almost all interrupts as edge triggered... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24239 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
8fa3f81a66
commit
753a97024e
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
* Copyright 2002-2008, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*
|
*
|
||||||
* Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
|
* Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
|
||||||
@ -126,12 +126,12 @@ int_init_post_vm(kernel_args *args)
|
|||||||
io_vectors[i].vector_lock = 0; /* initialize spinlock */
|
io_vectors[i].vector_lock = 0; /* initialize spinlock */
|
||||||
io_vectors[i].enable_count = 0;
|
io_vectors[i].enable_count = 0;
|
||||||
io_vectors[i].no_lock_vector = false;
|
io_vectors[i].no_lock_vector = false;
|
||||||
#ifdef DEBUG_INT
|
#ifdef DEBUG_INT
|
||||||
io_vectors[i].handled_count = 0;
|
io_vectors[i].handled_count = 0;
|
||||||
io_vectors[i].unhandled_count = 0;
|
io_vectors[i].unhandled_count = 0;
|
||||||
io_vectors[i].trigger_count = 0;
|
io_vectors[i].trigger_count = 0;
|
||||||
io_vectors[i].ignored_count = 0;
|
io_vectors[i].ignored_count = 0;
|
||||||
#endif
|
#endif
|
||||||
initque(&io_vectors[i].handler_list); /* initialize handler queue */
|
initque(&io_vectors[i].handler_list); /* initialize handler queue */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ int_io_interrupt_handler(int vector, bool levelTriggered)
|
|||||||
|
|
||||||
#ifdef DEBUG_INT
|
#ifdef DEBUG_INT
|
||||||
io_vectors[vector].trigger_count++;
|
io_vectors[vector].trigger_count++;
|
||||||
if (status != B_UNHANDLED_INTERRUPT) {
|
if (status != B_UNHANDLED_INTERRUPT || handled || invokeScheduler) {
|
||||||
io_vectors[vector].handled_count++;
|
io_vectors[vector].handled_count++;
|
||||||
} else {
|
} else {
|
||||||
io_vectors[vector].unhandled_count++;
|
io_vectors[vector].unhandled_count++;
|
||||||
|
Loading…
Reference in New Issue
Block a user