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:
parent
3684e40bb8
commit
81915026c1
@ -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 ] ;
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user