Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/usb Set up the USB xfer for every transfer, not just...



details:   https://anonhg.NetBSD.org/src/rev/1614220fd59a
branches:  trunk
changeset: 1011849:1614220fd59a
user:      simonb <simonb%NetBSD.org@localhost>
date:      Mon Jul 13 13:53:04 2020 +0000

description:
Set up the USB xfer for every transfer, not just once in the attach
function.  Caught by DIAGNOSTIC on a similar driver.  Thanks to phone@
for USB xfer clue and martin@ for testing.

diffstat:

 sys/dev/usb/ualea.c |  14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diffs (42 lines):

diff -r 9282f9d735c9 -r 1614220fd59a sys/dev/usb/ualea.c
--- a/sys/dev/usb/ualea.c       Mon Jul 13 13:42:51 2020 +0000
+++ b/sys/dev/usb/ualea.c       Mon Jul 13 13:53:04 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ualea.c,v 1.11 2020/04/30 03:40:53 riastradh Exp $     */
+/*     $NetBSD: ualea.c,v 1.12 2020/07/13 13:53:04 simonb Exp $        */
 
 /*-
  * Copyright (c) 2017 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ualea.c,v 1.11 2020/04/30 03:40:53 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ualea.c,v 1.12 2020/07/13 13:53:04 simonb Exp $");
 
 #include <sys/types.h>
 #include <sys/atomic.h>
@@ -139,11 +139,6 @@
                return;
        }
 
-       /* Setup the xfer to call ualea_xfer_done with sc.  */
-       usbd_setup_xfer(sc->sc_xfer, sc, usbd_get_buffer(sc->sc_xfer),
-           sc->sc_maxpktsize, USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
-           ualea_xfer_done);
-
        /* Success!  We are ready to run.  */
        sc->sc_attached = true;
        rndsource_setcb(&sc->sc_rnd, ualea_get, sc);
@@ -188,6 +183,11 @@
        if (sc->sc_needed == 0)
                return;
 
+       /* Setup the xfer to call ualea_xfer_done with sc.  */
+       usbd_setup_xfer(sc->sc_xfer, sc, usbd_get_buffer(sc->sc_xfer),
+           sc->sc_maxpktsize, USBD_SHORT_XFER_OK, USBD_NO_TIMEOUT,
+           ualea_xfer_done);
+
        /* Issue xfer or complain if we can't.  */
        status = usbd_transfer(sc->sc_xfer);
        KASSERT(status != USBD_NORMAL_COMPLETION); /* asynchronous xfer */



Home | Main Index | Thread Index | Old Index