Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 23 May 2007 19:34:45 GMT
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 120273 for review
Message-ID:  <200705231934.l4NJYjYF094244@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=120273

Change 120273 by hselasky@hselasky_mini_itx on 2007/05/23 19:34:39

	When we are writing data to a Mass Storage Device,
	short write transfers should not be treated like
	errors.

Affected files ...

.. //depot/projects/usb/src/sys/dev/usb/umass.c#17 edit

Differences ...

==== //depot/projects/usb/src/sys/dev/usb/umass.c#17 (text+ko) ====

@@ -780,7 +780,7 @@
       .endpoint  = -1, /* any */
       .direction = UE_DIR_OUT,
       .bufsize   = UMASS_BULK_SIZE,
-      .flags     = USBD_USE_DMA,
+      .flags     = (USBD_USE_DMA|USBD_SHORT_XFER_OK),
       .callback  = &umass_t_bbb_data_write_callback,
       .timeout   = 0, /* overwritten later */
     },
@@ -875,7 +875,7 @@
       .endpoint  = -1, /* any */
       .direction = UE_DIR_OUT,
       .bufsize   = UMASS_BULK_SIZE,
-      .flags     = USBD_USE_DMA,
+      .flags     = (USBD_USE_DMA|USBD_SHORT_XFER_OK),
       .callback  = &umass_t_cbi_data_write_callback,
       .timeout   = 0, /* overwritten later */
     },
@@ -1635,6 +1635,11 @@
 	sc->sc_transfer.data_ptr += xfer->actlen;
 	sc->sc_transfer.actlen += xfer->actlen;
 
+	if (xfer->actlen < xfer->length) {
+	    /* short transfer */
+	    sc->sc_transfer.data_rem = 0;
+	}
+
  tr_setup:
 	DPRINTF(sc, UDMASS_BBB, "max_bulk=%d, data_rem=%d\n",
 		max_bulk, sc->sc_transfer.data_rem);
@@ -2134,6 +2139,11 @@
 	sc->sc_transfer.data_ptr += xfer->actlen;
 	sc->sc_transfer.actlen += xfer->actlen;
 
+	if (xfer->actlen < xfer->length) {
+	    /* short transfer */
+	    sc->sc_transfer.data_rem = 0;
+	}
+
  tr_setup:
 	DPRINTF(sc, UDMASS_CBI, "max_bulk=%d, data_rem=%d\n",
 		max_bulk, sc->sc_transfer.data_rem);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200705231934.l4NJYjYF094244>