Fix a memory leak which was introduced by the previous commit.
authormglocker <mglocker@openbsd.org>
Sun, 18 Sep 2022 21:12:19 +0000 (21:12 +0000)
committermglocker <mglocker@openbsd.org>
Sun, 18 Sep 2022 21:12:19 +0000 (21:12 +0000)
The issue was reported by Stephan Somogyi - Thanks!

sys/dev/usb/dwc2/dwc2.c
sys/dev/usb/dwc2/dwc2_hcd.c

index cc19484..d1b65d4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: dwc2.c,v 1.67 2022/09/10 08:13:16 mglocker Exp $      */
+/*     $OpenBSD: dwc2.c,v 1.68 2022/09/18 21:12:19 mglocker Exp $      */
 /*     $NetBSD: dwc2.c,v 1.32 2014/09/02 23:26:20 macallan Exp $       */
 
 /*-
@@ -242,7 +242,6 @@ dwc2_allocx(struct usbd_bus *bus)
 void
 dwc2_freex(struct usbd_bus *bus, struct usbd_xfer *xfer)
 {
-       struct dwc2_xfer *dxfer = DWC2_XFER2DXFER(xfer);
        struct dwc2_softc *sc = DWC2_BUS2SC(bus);
 
        DPRINTFN(10, "\n");
@@ -255,7 +254,6 @@ dwc2_freex(struct usbd_bus *bus, struct usbd_xfer *xfer)
        xfer->busy_free = XFER_FREE;
 #endif
        DWC2_EVCNT_INCR(sc->sc_ev_xferpoolput);
-       dwc2_hcd_urb_free(sc->sc_hsotg, dxfer->urb, xfer->nframes);
        pool_put(&sc->sc_xferpool, xfer);
 }
 
index 57bb209..b3a54df 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: dwc2_hcd.c,v 1.28 2022/09/09 21:16:54 mglocker Exp $  */
+/*     $OpenBSD: dwc2_hcd.c,v 1.29 2022/09/18 21:12:19 mglocker Exp $  */
 /*     $NetBSD: dwc2_hcd.c,v 1.15 2014/11/24 10:14:14 skrll Exp $      */
 
 /*
@@ -4312,6 +4312,7 @@ void dwc2_host_complete(struct dwc2_hsotg *hsotg, struct dwc2_qtd *qtd,
                                        xfer);
        }
 
+       dwc2_hcd_urb_free(sc->sc_hsotg, dxfer->urb, xfer->nframes);
        qtd->urb = NULL;
        timeout_del(&xfer->timeout_handle);
        usb_rem_task(xfer->device, &xfer->abort_task);