From d88a358c86cc5377237a923e56b3f450d643bd1f Mon Sep 17 00:00:00 2001 From: Luigi Rizzo Date: Sun, 18 Feb 2001 07:21:28 +0000 Subject: [PATCH] Add a check in the interrupt service routine to return quickly in case there is nothing to do. This happens normally when the card shares the interrupt line with other devices. This code saves a couple of microseconds per interrupt even on a fast CPU. You normally would not care, except under heavy tinygram traffic where you can have some 50-100.000 interrupts per second... On passing, correct a spelling error. --- sys/dev/dc/if_dc.c | 5 ++++- sys/pci/if_dc.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c index 7e57daeac0d..9cb794f0330 100644 --- a/sys/dev/dc/if_dc.c +++ b/sys/dev/dc/if_dc.c @@ -2716,7 +2716,10 @@ static void dc_intr(arg) DC_LOCK(sc); ifp = &sc->arpcom.ac_if; - /* Supress unwanted interrupts */ + if ( (CSR_READ_4(sc, DC_ISR) & DC_INTRS) == 0) + return ; + + /* Suppress unwanted interrupts */ if (!(ifp->if_flags & IFF_UP)) { if (CSR_READ_4(sc, DC_ISR) & DC_INTRS) dc_stop(sc); diff --git a/sys/pci/if_dc.c b/sys/pci/if_dc.c index 7e57daeac0d..9cb794f0330 100644 --- a/sys/pci/if_dc.c +++ b/sys/pci/if_dc.c @@ -2716,7 +2716,10 @@ static void dc_intr(arg) DC_LOCK(sc); ifp = &sc->arpcom.ac_if; - /* Supress unwanted interrupts */ + if ( (CSR_READ_4(sc, DC_ISR) & DC_INTRS) == 0) + return ; + + /* Suppress unwanted interrupts */ if (!(ifp->if_flags & IFF_UP)) { if (CSR_READ_4(sc, DC_ISR) & DC_INTRS) dc_stop(sc);