aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/neta/if_mvneta.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/neta/if_mvneta.c')
-rw-r--r--sys/dev/neta/if_mvneta.c21
1 files changed, 5 insertions, 16 deletions
diff --git a/sys/dev/neta/if_mvneta.c b/sys/dev/neta/if_mvneta.c
index 8a2c2ec8512c..1c6247adb56b 100644
--- a/sys/dev/neta/if_mvneta.c
+++ b/sys/dev/neta/if_mvneta.c
@@ -612,11 +612,6 @@ mvneta_attach(device_t self)
/* Allocate network interface */
ifp = sc->ifp = if_alloc(IFT_ETHER);
- if (ifp == NULL) {
- device_printf(self, "if_alloc() failed\n");
- mvneta_detach(self);
- return (ENOMEM);
- }
if_initname(ifp, device_get_name(self), device_get_unit(self));
/*
@@ -806,14 +801,14 @@ mvneta_attach(device_t self)
if (mvneta_has_switch(self)) {
if (bootverbose)
device_printf(self, "This device is attached to a switch\n");
- child = device_add_child(sc->dev, "mdio", -1);
+ child = device_add_child(sc->dev, "mdio", DEVICE_UNIT_ANY);
if (child == NULL) {
ether_ifdetach(sc->ifp);
mvneta_detach(self);
return (ENXIO);
}
- bus_generic_attach(sc->dev);
- bus_generic_attach(child);
+ bus_attach_children(sc->dev);
+ bus_attach_children(child);
}
/* Configure MAC media */
@@ -848,7 +843,7 @@ mvneta_detach(device_t dev)
for (q = 0; q < MVNETA_TX_QNUM_MAX; q++)
mvneta_ring_dealloc_tx_queue(sc, q);
- device_delete_children(dev);
+ bus_generic_detach(dev);
if (sc->ih_cookie[0] != NULL)
bus_teardown_intr(dev, sc->res[1], sc->ih_cookie[0]);
@@ -3005,8 +3000,6 @@ mvneta_rx_queue(struct mvneta_softc *sc, int q, int npkt)
struct mvneta_rx_desc *r;
struct mvneta_buf *rxbuf;
struct mbuf *m;
- struct lro_ctrl *lro;
- struct lro_entry *queued;
void *pktbuf;
int i, pktlen, processed, ndma;
@@ -3120,11 +3113,7 @@ rx_lro:
/*
* Flush any outstanding LRO work
*/
- lro = &rx->lro;
- while (__predict_false((queued = LIST_FIRST(&lro->lro_active)) != NULL)) {
- LIST_REMOVE(LIST_FIRST((&lro->lro_active)), next);
- tcp_lro_flush(lro, queued);
- }
+ tcp_lro_flush_all(&rx->lro);
}
STATIC void