summaryrefslogtreecommitdiffstats
path: root/sys/arm
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm')
-rw-r--r--sys/arm/arm/intr.c10
-rw-r--r--sys/arm/arm/nexus.c6
-rw-r--r--sys/arm/at91/at91.c6
-rw-r--r--sys/arm/at91/at91_mci.c2
-rw-r--r--sys/arm/at91/at91_pio.c10
-rw-r--r--sys/arm/at91/at91_rtc.c8
-rw-r--r--sys/arm/at91/at91_spi.c2
-rw-r--r--sys/arm/at91/at91_ssc.c2
-rw-r--r--sys/arm/at91/at91_st.c8
-rw-r--r--sys/arm/at91/at91_twi.c2
-rw-r--r--sys/arm/at91/if_ate.c2
-rw-r--r--sys/arm/include/intr.h4
-rw-r--r--sys/arm/sa11x0/sa11x0.c8
-rw-r--r--sys/arm/sa11x0/sa11x0_ost.c15
-rw-r--r--sys/arm/xscale/i80321/i80321_pci.c6
-rw-r--r--sys/arm/xscale/i80321/i80321_timer.c10
-rw-r--r--sys/arm/xscale/i80321/iq80321.c8
-rw-r--r--sys/arm/xscale/ixp425/ixp425.c8
-rw-r--r--sys/arm/xscale/ixp425/ixp425_npe.c2
-rw-r--r--sys/arm/xscale/ixp425/ixp425_pci.c4
-rw-r--r--sys/arm/xscale/ixp425/ixp425_timer.c9
21 files changed, 68 insertions, 64 deletions
diff --git a/sys/arm/arm/intr.c b/sys/arm/arm/intr.c
index 2812648..c5bbb51 100644
--- a/sys/arm/arm/intr.c
+++ b/sys/arm/arm/intr.c
@@ -58,8 +58,8 @@ static int last_printed = 0;
void arm_handler_execute(struct trapframe *, int);
void
-arm_setup_irqhandler(const char *name, void (*hand)(void*), void *arg,
- int irq, int flags, void **cookiep)
+arm_setup_irqhandler(const char *name, driver_filter_t *filt,
+ void (*hand)(void*), void *arg, int irq, int flags, void **cookiep)
{
struct intr_event *event;
int error;
@@ -82,7 +82,7 @@ arm_setup_irqhandler(const char *name, void (*hand)(void*), void *arg,
intrcnt_index++;
}
- intr_event_add_handler(event, name, hand, arg,
+ intr_event_add_handler(event, name, filt, hand, arg,
intr_priority(flags), flags, cookiep);
}
@@ -118,10 +118,10 @@ arm_handler_execute(struct trapframe *frame, int irqnb)
/* Execute fast handlers. */
thread = 0;
TAILQ_FOREACH(ih, &event->ie_handlers, ih_next) {
- if (!(ih->ih_flags & IH_FAST))
+ if (ih->ih_filter == NULL)
thread = 1;
else
- ih->ih_handler(ih->ih_argument ?
+ ih->ih_filter(ih->ih_argument ?
ih->ih_argument : frame);
}
diff --git a/sys/arm/arm/nexus.c b/sys/arm/arm/nexus.c
index b670417..0d9c388 100644
--- a/sys/arm/arm/nexus.c
+++ b/sys/arm/arm/nexus.c
@@ -81,7 +81,7 @@ static int nexus_activate_resource(device_t, device_t, int, int,
struct resource *);
static int
nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags,
- driver_intr_t *intr, void *arg, void **cookiep);
+ driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep);
static int
nexus_teardown_intr(device_t, device_t, struct resource *, void *);
@@ -125,13 +125,13 @@ nexus_probe(device_t dev)
static int
nexus_setup_intr(device_t dev, device_t child, struct resource *res, int flags,
- driver_intr_t *intr, void *arg, void **cookiep)
+ driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep)
{
int i;
for (i = rman_get_start(res); i <= rman_get_end(res); i++)
arm_setup_irqhandler(device_get_nameunit(child),
- intr, arg, i, flags, cookiep);
+ filt, intr, arg, i, flags, cookiep);
return (0);
}
diff --git a/sys/arm/at91/at91.c b/sys/arm/at91/at91.c
index cae88f2..59e5f08 100644
--- a/sys/arm/at91/at91.c
+++ b/sys/arm/at91/at91.c
@@ -543,14 +543,14 @@ at91_release_resource(device_t dev, device_t child, int type,
static int
at91_setup_intr(device_t dev, device_t child,
- struct resource *ires, int flags, driver_intr_t *intr, void *arg,
- void **cookiep)
+ struct resource *ires, int flags, driver_filter_t *filt,
+ driver_intr_t *intr, void *arg, void **cookiep)
{
struct at91_softc *sc = device_get_softc(dev);
if (rman_get_start(ires) == AT91RM92_IRQ_SYSTEM && !(flags & INTR_FAST))
panic("All system interrupt ISRs must be type INTR_FAST");
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, intr, arg,
+ BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr, arg,
cookiep);
bus_space_write_4(sc->sc_st, sc->sc_sys_sh, IC_IECR,
1 << rman_get_start(ires));
diff --git a/sys/arm/at91/at91_mci.c b/sys/arm/at91/at91_mci.c
index 1cc9091..ca9f399 100644
--- a/sys/arm/at91/at91_mci.c
+++ b/sys/arm/at91/at91_mci.c
@@ -192,7 +192,7 @@ at91_mci_attach(device_t dev)
* Activate the interrupt
*/
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE,
- at91_mci_intr, sc, &sc->intrhand);
+ NULL, at91_mci_intr, sc, &sc->intrhand);
if (err) {
AT91_MCI_LOCK_DESTROY(sc);
goto out;
diff --git a/sys/arm/at91/at91_pio.c b/sys/arm/at91/at91_pio.c
index 18ffe9b..f8c1863 100644
--- a/sys/arm/at91/at91_pio.c
+++ b/sys/arm/at91/at91_pio.c
@@ -83,7 +83,7 @@ static devclass_t at91_pio_devclass;
static int at91_pio_probe(device_t dev);
static int at91_pio_attach(device_t dev);
static int at91_pio_detach(device_t dev);
-static void at91_pio_intr(void *);
+static int at91_pio_intr(void *);
/* helper routines */
static int at91_pio_activate(device_t dev);
@@ -148,8 +148,8 @@ at91_pio_attach(device_t dev)
* Activate the interrupt, but disable all interrupts in the hardware
*/
WR4(sc, PIO_IDR, 0xffffffff);
- err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_FAST,
- at91_pio_intr, sc, &sc->intrhand);
+ err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC,
+ at91_pio_intr, NULL, sc, &sc->intrhand);
if (err) {
AT91_PIO_LOCK_DESTROY(sc);
goto out;
@@ -217,7 +217,7 @@ at91_pio_deactivate(device_t dev)
return;
}
-static void
+static int
at91_pio_intr(void *xsc)
{
struct at91_pio_softc *sc = xsc;
@@ -232,7 +232,7 @@ at91_pio_intr(void *xsc)
AT91_PIO_UNLOCK(sc);
#endif
wakeup(sc);
- return;
+ return (FILTER_HANDLED);
}
static int
diff --git a/sys/arm/at91/at91_rtc.c b/sys/arm/at91/at91_rtc.c
index 3a68200..ad70b85 100644
--- a/sys/arm/at91/at91_rtc.c
+++ b/sys/arm/at91/at91_rtc.c
@@ -110,8 +110,8 @@ at91_rtc_attach(device_t dev)
* Activate the interrupt, but disable all interrupts in the hardware
*/
WR4(sc, RTC_IDR, 0xffffffff);
- err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_FAST,
- at91_rtc_intr, sc, &sc->intrhand);
+ err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC,
+ at91_rtc_intr, NULL, sc, &sc->intrhand);
if (err) {
AT91_RTC_LOCK_DESTROY(sc);
goto out;
@@ -173,7 +173,7 @@ at91_rtc_deactivate(device_t dev)
return;
}
-static void
+static int
at91_rtc_intr(void *xsc)
{
struct at91_rtc_softc *sc = xsc;
@@ -188,7 +188,7 @@ at91_rtc_intr(void *xsc)
AT91_RTC_UNLOCK(sc);
#endif
wakeup(sc);
- return;
+ return (FILTER_HANDLED);
}
/*
diff --git a/sys/arm/at91/at91_spi.c b/sys/arm/at91/at91_spi.c
index 6341176..d3ee67d 100644
--- a/sys/arm/at91/at91_spi.c
+++ b/sys/arm/at91/at91_spi.c
@@ -163,7 +163,7 @@ at91_spi_activate(device_t dev)
if (sc->irq_res == NULL)
goto errout;
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE,
- at91_spi_intr, sc, &sc->intrhand);
+ NULL, at91_spi_intr, sc, &sc->intrhand);
if (err != 0)
goto errout;
return (0);
diff --git a/sys/arm/at91/at91_ssc.c b/sys/arm/at91/at91_ssc.c
index f4db0d1..3e08431 100644
--- a/sys/arm/at91/at91_ssc.c
+++ b/sys/arm/at91/at91_ssc.c
@@ -124,7 +124,7 @@ at91_ssc_attach(device_t dev)
* Activate the interrupt
*/
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE,
- at91_ssc_intr, sc, &sc->intrhand);
+ NULL, at91_ssc_intr, sc, &sc->intrhand);
if (err) {
AT91_SSC_LOCK_DESTROY(sc);
goto out;
diff --git a/sys/arm/at91/at91_st.c b/sys/arm/at91/at91_st.c
index e165f24..6ec9730 100644
--- a/sys/arm/at91/at91_st.c
+++ b/sys/arm/at91/at91_st.c
@@ -183,7 +183,7 @@ at91st_watchdog(void *argp, u_int cmd, int *error)
WR4(ST_CR, ST_CR_WDRST);
}
-static void
+static int
clock_intr(void *arg)
{
struct trapframe *fp = arg;
@@ -194,7 +194,9 @@ clock_intr(void *arg)
tot_count += 32768 / hz;
#endif
hardclock(TRAPF_USERMODE(fp), TRAPF_PC(fp));
+ return (FILTER_HANDLED);
}
+ return (FILTER_STRAY);
}
void
@@ -222,8 +224,8 @@ cpu_initclocks(void)
if (!irq)
panic("Unable to allocate irq for the system timer");
else
- bus_setup_intr(dev, irq, INTR_TYPE_CLK | INTR_FAST,
- clock_intr, NULL, &ih);
+ bus_setup_intr(dev, irq, INTR_TYPE_CLK,
+ clock_intr, NULL, NULL, &ih);
WR4(ST_PIMR, rel_value);
diff --git a/sys/arm/at91/at91_twi.c b/sys/arm/at91/at91_twi.c
index 1f522d6..0319e12 100644
--- a/sys/arm/at91/at91_twi.c
+++ b/sys/arm/at91/at91_twi.c
@@ -118,7 +118,7 @@ at91_twi_attach(device_t dev)
* Activate the interrupt
*/
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE,
- at91_twi_intr, sc, &sc->intrhand);
+ NULL, at91_twi_intr, sc, &sc->intrhand);
if (err) {
AT91_TWI_LOCK_DESTROY(sc);
goto out;
diff --git a/sys/arm/at91/if_ate.c b/sys/arm/at91/if_ate.c
index 9fb0d9a..02b49fb 100644
--- a/sys/arm/at91/if_ate.c
+++ b/sys/arm/at91/if_ate.c
@@ -226,7 +226,7 @@ ate_attach(device_t dev)
* Activate the interrupt
*/
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_NET | INTR_MPSAFE,
- ate_intr, sc, &sc->intrhand);
+ NULL, ate_intr, sc, &sc->intrhand);
if (err) {
ether_ifdetach(ifp);
ATE_LOCK_DESTROY(sc);
diff --git a/sys/arm/include/intr.h b/sys/arm/include/intr.h
index dc08c7f..a378d38 100644
--- a/sys/arm/include/intr.h
+++ b/sys/arm/include/intr.h
@@ -50,7 +50,7 @@
int arm_get_next_irq(void);
void arm_mask_irq(uintptr_t);
void arm_unmask_irq(uintptr_t);
-void arm_setup_irqhandler(const char *, void (*)(void*), void *, int, int,
- void **);
+void arm_setup_irqhandler(const char *, int (*)(void*), void (*)(void*),
+ void *, int, int, void **);
int arm_remove_irqhandler(void *);
#endif /* _MACHINE_INTR_H */
diff --git a/sys/arm/sa11x0/sa11x0.c b/sys/arm/sa11x0/sa11x0.c
index b099600..4c12162 100644
--- a/sys/arm/sa11x0/sa11x0.c
+++ b/sys/arm/sa11x0/sa11x0.c
@@ -91,14 +91,14 @@ static struct resource *sa1110_alloc_resource(device_t, device_t, int, int *,
static int sa1110_activate_resource(device_t, device_t, int, int,
struct resource *);
static int sa1110_setup_intr(device_t, device_t, struct resource *, int,
- driver_intr_t *, void *, void **);
+ driver_filter_t *, driver_intr_t *, void *, void **);
struct sa11x0_softc *sa11x0_softc; /* There can be only one. */
static int
sa1110_setup_intr(device_t dev, device_t child,
- struct resource *ires, int flags, driver_intr_t *intr, void *arg,
- void **cookiep)
+ struct resource *ires, int flags, driver_filter_t *filt,
+ driver_intr_t *intr, void *arg, void **cookiep)
{
int saved_cpsr;
@@ -113,7 +113,7 @@ sa1110_setup_intr(device_t dev, device_t child,
saved_cpsr = SetCPSR(I32_bit, I32_bit);
SetCPSR(I32_bit, saved_cpsr & I32_bit);
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, intr, arg,
+ BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr, arg,
cookiep);
return (0);
}
diff --git a/sys/arm/sa11x0/sa11x0_ost.c b/sys/arm/sa11x0/sa11x0_ost.c
index fbe73eb..6edced9 100644
--- a/sys/arm/sa11x0/sa11x0_ost.c
+++ b/sys/arm/sa11x0/sa11x0_ost.c
@@ -67,9 +67,9 @@ static int saost_probe(device_t);
static int saost_attach(device_t);
int gettick(void);
-static void clockintr(void *);
+static int clockintr(void *);
#if 0
-static void statintr(void *);
+static int statintr(void *);
#endif
void rtcinit(void);
@@ -141,7 +141,7 @@ saost_attach(device_t dev)
}
-static void
+static int
clockintr(arg)
void *arg;
{
@@ -184,10 +184,11 @@ clockintr(arg)
#if 0
mtx_unlock_spin(&clock_lock);
#endif
+ return (FILTER_HANDLED);
}
#if 0
-static void
+static int
statintr(arg)
void *arg;
{
@@ -227,7 +228,7 @@ statintr(arg)
saost_sc->sc_statclock_count = nextmatch;
statclock(TRAPF_USERMODE(frame));
-
+ return (FILTER_HANDLED);
}
#endif
@@ -271,10 +272,10 @@ cpu_initclocks()
rid = 1;
irq2 = bus_alloc_resource(dev, SYS_RES_IRQ, &rid, 0, ~0, 1,
RF_ACTIVE);
- bus_setup_intr(dev, irq1, INTR_TYPE_CLK | INTR_FAST, clockintr, NULL,
+ bus_setup_intr(dev, irq1, INTR_TYPE_CLK, clockintr, NULL, NULL,
&ih1);
#if 0
- bus_setup_intr(dev, irq2, INTR_TYPE_CLK | INTR_FAST, statintr, NULL
+ bus_setup_intr(dev, irq2, INTR_TYPE_CLK, statintr, NULL, NULL,
,&ih2);
#endif
bus_space_write_4(saost_sc->sc_iot, saost_sc->sc_ioh, SAOST_SR, 0xf);
diff --git a/sys/arm/xscale/i80321/i80321_pci.c b/sys/arm/xscale/i80321/i80321_pci.c
index abda074d..aa4801d 100644
--- a/sys/arm/xscale/i80321/i80321_pci.c
+++ b/sys/arm/xscale/i80321/i80321_pci.c
@@ -346,11 +346,11 @@ i80321_pci_activate_resource(device_t bus, device_t child, int type, int rid,
static int
i80321_pci_setup_intr(device_t dev, device_t child,
- struct resource *ires, int flags, driver_intr_t *intr, void *arg,
- void **cookiep)
+ struct resource *ires, int flags, driver_filter_t *filt,
+ driver_intr_t *intr, void *arg, void **cookiep)
{
return (BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags,
- intr, arg, cookiep));
+ filt, intr, arg, cookiep));
}
static int
diff --git a/sys/arm/xscale/i80321/i80321_timer.c b/sys/arm/xscale/i80321/i80321_timer.c
index 8f9e4b9..1abfdaf 100644
--- a/sys/arm/xscale/i80321/i80321_timer.c
+++ b/sys/arm/xscale/i80321/i80321_timer.c
@@ -133,7 +133,7 @@ static devclass_t i80321_timer_devclass;
DRIVER_MODULE(itimer, iq, i80321_timer_driver, i80321_timer_devclass, 0, 0);
-void clockhandler(void *);
+int clockhandler(void *);
static __inline uint32_t
@@ -336,8 +336,8 @@ cpu_initclocks(void)
if (!irq)
panic("Unable to setup the clock irq handler.\n");
else
- bus_setup_intr(dev, irq, INTR_TYPE_CLK | INTR_FAST,
- clockhandler, NULL, &ihl);
+ bus_setup_intr(dev, irq, INTR_TYPE_CLK, clockhandler, NULL,
+ NULL, &ihl);
tmr0_write(0); /* stop timer */
tisr_write(TISR_TMR0); /* clear interrupt */
@@ -401,7 +401,7 @@ DELAY(int n)
*
* Handle the hardclock interrupt.
*/
-void
+int
clockhandler(void *arg)
{
struct trapframe *frame = arg;
@@ -412,7 +412,7 @@ clockhandler(void *arg)
if (i80321_hardclock_hook != NULL)
(*i80321_hardclock_hook)();
- return;
+ return (FILTER_HANDLED);
}
void
diff --git a/sys/arm/xscale/i80321/iq80321.c b/sys/arm/xscale/i80321/iq80321.c
index 13b5917..7f94879 100644
--- a/sys/arm/xscale/i80321/iq80321.c
+++ b/sys/arm/xscale/i80321/iq80321.c
@@ -351,11 +351,11 @@ iq80321_alloc_resource(device_t dev, device_t child, int type, int *rid,
static int
iq80321_setup_intr(device_t dev, device_t child,
- struct resource *ires, int flags, driver_intr_t *intr, void *arg,
- void **cookiep)
+ struct resource *ires, int flags, driver_filter_t *filt,
+ driver_intr_t *intr, void *arg, void **cookiep)
{
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, intr, arg,
- cookiep);
+ BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr,
+ arg, cookiep);
intr_enabled |= 1 << rman_get_start(ires);
i80321_set_intrmask();
diff --git a/sys/arm/xscale/ixp425/ixp425.c b/sys/arm/xscale/ixp425/ixp425.c
index f35db99..78155bc 100644
--- a/sys/arm/xscale/ixp425/ixp425.c
+++ b/sys/arm/xscale/ixp425/ixp425.c
@@ -310,8 +310,8 @@ ixp425_alloc_resource(device_t dev, device_t child, int type, int *rid,
static int
ixp425_setup_intr(device_t dev, device_t child,
- struct resource *ires, int flags, driver_intr_t *intr, void *arg,
- void **cookiep)
+ struct resource *ires, int flags, driver_filter_t *filt,
+ driver_intr_t *intr, void *arg, void **cookiep)
{
uint32_t mask;
int i;
@@ -324,8 +324,8 @@ ixp425_setup_intr(device_t dev, device_t child,
rman_set_start(ires, IXP425_INT_UART1);
rman_set_end(ires, rman_get_start(ires));
}
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, intr, arg,
- cookiep);
+ BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr,
+ arg, cookiep);
mask = 0;
for (i = rman_get_start(ires); i <= rman_get_end(ires); i++)
diff --git a/sys/arm/xscale/ixp425/ixp425_npe.c b/sys/arm/xscale/ixp425/ixp425_npe.c
index c3e9dbd..2d5680d 100644
--- a/sys/arm/xscale/ixp425/ixp425_npe.c
+++ b/sys/arm/xscale/ixp425/ixp425_npe.c
@@ -291,7 +291,7 @@ ixpnpe_attach(device_t dev)
panic("%s: Unable to allocate irq %u", device_get_name(dev), irq);
/* XXX could be a source of entropy */
bus_setup_intr(dev, sc->sc_irq, INTR_TYPE_NET | INTR_MPSAFE,
- ixpnpe_intr, sc, &sc->sc_ih);
+ NULL, ixpnpe_intr, sc, &sc->sc_ih);
/* enable output fifo interrupts (NB: must also set OFIFO Write Enable) */
npe_reg_write(sc, IX_NPECTL,
npe_reg_read(sc, IX_NPECTL) | (IX_NPECTL_OFE | IX_NPECTL_OFWE));
diff --git a/sys/arm/xscale/ixp425/ixp425_pci.c b/sys/arm/xscale/ixp425/ixp425_pci.c
index cadb088..ef29052 100644
--- a/sys/arm/xscale/ixp425/ixp425_pci.c
+++ b/sys/arm/xscale/ixp425/ixp425_pci.c
@@ -254,11 +254,11 @@ ixppcib_write_ivar(device_t dev, device_t child, int which, uintptr_t value)
static int
ixppcib_setup_intr(device_t dev, device_t child, struct resource *ires,
- int flags, driver_intr_t *intr, void *arg, void **cookiep)
+ int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg, void **cookiep)
{
return (BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags,
- intr, arg, cookiep));
+ filt, intr, arg, cookiep));
}
static int
diff --git a/sys/arm/xscale/ixp425/ixp425_timer.c b/sys/arm/xscale/ixp425/ixp425_timer.c
index 0fa9d1f..e7717d0 100644
--- a/sys/arm/xscale/ixp425/ixp425_timer.c
+++ b/sys/arm/xscale/ixp425/ixp425_timer.c
@@ -58,7 +58,7 @@ __FBSDID("$FreeBSD$");
static uint32_t counts_per_hz;
/* callback functions for intr_functions */
-void ixpclk_intr(void *);
+int ixpclk_intr(void *);
struct ixpclk_softc {
device_t sc_dev;
@@ -182,8 +182,8 @@ cpu_initclocks(void)
if (!irq)
panic("Unable to setup the clock irq handler.\n");
else
- bus_setup_intr(dev, irq, INTR_TYPE_CLK | INTR_FAST,
- ixpclk_intr, NULL, &ihl);
+ bus_setup_intr(dev, irq, INTR_TYPE_CLK, ixpclk_intr, NULL,
+ NULL, &ihl);
/* Set up the new clock parameters. */
@@ -244,7 +244,7 @@ DELAY(int n)
*
* Handle the hardclock interrupt.
*/
-void
+int
ixpclk_intr(void *arg)
{
struct ixpclk_softc* sc = ixpclk_sc;
@@ -254,6 +254,7 @@ ixpclk_intr(void *arg)
OST_TIM0_INT);
hardclock(TRAPF_USERMODE(frame), TRAPF_PC(frame));
+ return (FILTER_HANDLED);
}
void
OpenPOWER on IntegriCloud