summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2009-05-30 18:39:22 +0000
committerattilio <attilio@FreeBSD.org>2009-05-30 18:39:22 +0000
commit30dba4157fd4e14bd76a371789fdabd94da83190 (patch)
tree572753829028fcef2ee5dff0b310268eab636ae6
parent2c8e83d6b627484f401973d5611f8f1d6e8bc544 (diff)
downloadFreeBSD-src-30dba4157fd4e14bd76a371789fdabd94da83190.zip
FreeBSD-src-30dba4157fd4e14bd76a371789fdabd94da83190.tar.gz
Unbreak build.
Pointy hat to: attilio
-rw-r--r--sys/dev/lmc/if_lmc.c3
-rw-r--r--sys/dev/lmc/if_lmc.h2
-rw-r--r--sys/dev/nge/if_nge.c19
3 files changed, 15 insertions, 9 deletions
diff --git a/sys/dev/lmc/if_lmc.c b/sys/dev/lmc/if_lmc.c
index 1df51ad..e03f33c 100644
--- a/sys/dev/lmc/if_lmc.c
+++ b/sys/dev/lmc/if_lmc.c
@@ -3976,12 +3976,13 @@ fbsd_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
{
/* Last call -- reenable card interrupts. */
WRITE_CSR(TLP_INT_ENBL, TLP_INT_TXRX);
- return;
+ return 0;
}
#endif
sc->quota = count;
core_interrupt(sc, (cmd==POLL_AND_CHECK_STATUS));
+ return 0;
}
# endif /* (__FreeBSD__ && DEVICE_POLLING) */
diff --git a/sys/dev/lmc/if_lmc.h b/sys/dev/lmc/if_lmc.h
index 10308e1..fb34e03 100644
--- a/sys/dev/lmc/if_lmc.h
+++ b/sys/dev/lmc/if_lmc.h
@@ -1571,7 +1571,7 @@ static void core_interrupt(void *, int);
static void user_interrupt(softc_t *, int);
#if BSD
# if (defined(__FreeBSD__) && defined(DEVICE_POLLING))
-static void fbsd_poll(struct ifnet *, enum poll_cmd, int);
+static int fbsd_poll(struct ifnet *, enum poll_cmd, int);
# endif
static intr_return_t bsd_interrupt(void *);
#endif /* BSD */
diff --git a/sys/dev/nge/if_nge.c b/sys/dev/nge/if_nge.c
index 1e929b0..7917331 100644
--- a/sys/dev/nge/if_nge.c
+++ b/sys/dev/nge/if_nge.c
@@ -157,7 +157,7 @@ static int nge_encap(struct nge_softc *, struct mbuf **);
#ifndef __NO_STRICT_ALIGNMENT
static __inline void nge_fixup_rx(struct mbuf *);
#endif
-static void nge_rxeof(struct nge_softc *);
+static int nge_rxeof(struct nge_softc *);
static void nge_txeof(struct nge_softc *);
static void nge_intr(void *);
static void nge_tick(void *);
@@ -1575,20 +1575,21 @@ nge_fixup_rx(struct mbuf *m)
* A frame has been uploaded: pass the resulting mbuf chain up to
* the higher level protocols.
*/
-static void
+static int
nge_rxeof(struct nge_softc *sc)
{
struct mbuf *m;
struct ifnet *ifp;
struct nge_desc *cur_rx;
struct nge_rxdesc *rxd;
- int cons, prog, total_len;
+ int cons, prog, rx_npkts, total_len;
uint32_t cmdsts, extsts;
NGE_LOCK_ASSERT(sc);
ifp = sc->nge_ifp;
cons = sc->nge_cdata.nge_rx_cons;
+ rx_npkts = 0;
bus_dmamap_sync(sc->nge_cdata.nge_rx_ring_tag,
sc->nge_cdata.nge_rx_ring_map,
@@ -1734,6 +1735,7 @@ nge_rxeof(struct nge_softc *sc)
NGE_UNLOCK(sc);
(*ifp->if_input)(ifp, m);
NGE_LOCK(sc);
+ rx_npkts++;
}
if (prog > 0) {
@@ -1742,6 +1744,7 @@ nge_rxeof(struct nge_softc *sc)
sc->nge_cdata.nge_rx_ring_map,
BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE);
}
+ return (rx_npkts);
}
/*
@@ -1888,17 +1891,18 @@ nge_stats_update(struct nge_softc *sc)
#ifdef DEVICE_POLLING
static poll_handler_t nge_poll;
-static void
+static int
nge_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
{
struct nge_softc *sc;
+ int rx_npkts = 0;
sc = ifp->if_softc;
NGE_LOCK(sc);
if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
NGE_UNLOCK(sc);
- return;
+ return (rx_npkts);
}
/*
@@ -1909,7 +1913,7 @@ nge_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
* and then call the interrupt routine.
*/
sc->rxcycles = count;
- nge_rxeof(sc);
+ rx_npkts = nge_rxeof(sc);
nge_txeof(sc);
if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
nge_start_locked(ifp);
@@ -1921,7 +1925,7 @@ nge_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
status = CSR_READ_4(sc, NGE_ISR);
if ((status & (NGE_ISR_RX_ERR|NGE_ISR_RX_OFLOW)) != 0)
- nge_rxeof(sc);
+ rx_npkts += nge_rxeof(sc);
if ((status & NGE_ISR_RX_IDLE) != 0)
NGE_SETBIT(sc, NGE_CSR, NGE_CSR_RX_ENABLE);
@@ -1932,6 +1936,7 @@ nge_poll(struct ifnet *ifp, enum poll_cmd cmd, int count)
}
}
NGE_UNLOCK(sc);
+ return (rx_npkts);
}
#endif /* DEVICE_POLLING */
OpenPOWER on IntegriCloud