summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Bergamini <damien@cvs.openbsd.org>2008-12-22 18:42:05 +0000
committerDamien Bergamini <damien@cvs.openbsd.org>2008-12-22 18:42:05 +0000
commit935b74c67da6cf60dd2c6d7ae0a2059eb5eb1fe4 (patch)
tree2353a16f5297a162093537800cf33618d777ba33
parentd07bbd167d1f3a10b4a4131f9dfb9668746e5c3d (diff)
do not leak an AMRR USB xfer at each ifconfig down/up.
-rw-r--r--sys/dev/usb/if_rum.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/dev/usb/if_rum.c b/sys/dev/usb/if_rum.c
index 718b75bb360..3c467a00211 100644
--- a/sys/dev/usb/if_rum.c
+++ b/sys/dev/usb/if_rum.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_rum.c,v 1.80 2008/12/10 18:10:14 deraadt Exp $ */
+/* $OpenBSD: if_rum.c,v 1.81 2008/12/22 18:42:04 damien Exp $ */
/*-
* Copyright (c) 2005-2007 Damien Bergamini <damien.bergamini@free.fr>
@@ -2121,6 +2121,10 @@ rum_stop(struct ifnet *ifp, int disable)
rum_write(sc, RT2573_MAC_CSR1, 3);
rum_write(sc, RT2573_MAC_CSR1, 0);
+ if (sc->amrr_xfer != NULL) {
+ usbd_free_xfer(sc->amrr_xfer);
+ sc->amrr_xfer = NULL;
+ }
if (sc->sc_rx_pipeh != NULL) {
usbd_abort_pipe(sc->sc_rx_pipeh);
usbd_close_pipe(sc->sc_rx_pipeh);