Make use of the new private B_NO_HANDLED_INFO in the FreeBSD compatibility layer

for now. This is a workaround and should be removed once we have proper
interrupt return values from FreeBSD drivers. Should work around interrupt
storms for shared interrupts with some network cards that use a FreeBSD driver.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29242 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Lotz 2009-02-17 21:49:34 +00:00
parent 3684e40bb8
commit 81915026c1
2 changed files with 6 additions and 3 deletions

View File

@ -4,6 +4,7 @@ SubDir HAIKU_TOP src libs compat freebsd_network ;
UseHeaders [ FDirName $(SUBDIR) ] : true ;
UseHeaders [ FDirName $(SUBDIR) compat ] : true ;
UsePrivateHeaders net ;
UsePrivateKernelHeaders ;
UseHeaders $(HAIKU_PRIVATE_KERNEL_HEADERS) : true ;
SubDirCcFlags [ FDefines _KERNEL=1 ] ;

View File

@ -17,6 +17,8 @@
#include <compat/sys/bus.h>
#include <compat/sys/rman.h>
// private kernel header to get B_NO_HANDLED_INFO
#include <int.h>
//#define DEBUG_BUS_SPACE_RW
#ifdef DEBUG_BUS_SPACE_RW
@ -313,10 +315,10 @@ bus_setup_intr(device_t dev, struct resource *res, int flags,
if (filter != NULL) {
status = install_io_interrupt_handler(intr->irq,
(interrupt_handler)intr->filter, intr->arg, 0);
(interrupt_handler)intr->filter, intr->arg, B_NO_HANDLED_INFO);
} else if (flags & INTR_FAST) {
status = install_io_interrupt_handler(intr->irq,
intr_fast_wrapper, intr, 0);
intr_fast_wrapper, intr, B_NO_HANDLED_INFO);
} else {
snprintf(semName, sizeof(semName), "%s intr", dev->device_name);
@ -337,7 +339,7 @@ bus_setup_intr(device_t dev, struct resource *res, int flags,
}
status = install_io_interrupt_handler(intr->irq,
intr_wrapper, intr, 0);
intr_wrapper, intr, B_NO_HANDLED_INFO);
}
if (status < B_OK) {