From fc1e307871887e413d14b912d41747ba17543485 Mon Sep 17 00:00:00 2001 From: dillon Date: Mon, 23 Jul 2007 19:24:11 +0000 Subject: [PATCH] Incorporate the device DMA limitations into the request transfer size limit. Reported-by: "Max Herrgaard" --- sys/dev/disk/nata/atapi-cam.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/dev/disk/nata/atapi-cam.c b/sys/dev/disk/nata/atapi-cam.c index bc8d102f0d..f1a7ee3caf 100644 --- a/sys/dev/disk/nata/atapi-cam.c +++ b/sys/dev/disk/nata/atapi-cam.c @@ -26,7 +26,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * $FreeBSD: src/sys/dev/ata/atapi-cam.c,v 1.44 2006/03/31 08:09:05 sos Exp $ - * $DragonFly: src/sys/dev/disk/nata/atapi-cam.c,v 1.6 2007/06/03 04:48:29 dillon Exp $ + * $DragonFly: src/sys/dev/disk/nata/atapi-cam.c,v 1.7 2007/07/23 19:24:11 dillon Exp $ */ #include "opt_ata.h" @@ -588,7 +588,8 @@ atapi_action(struct cam_sim *sim, union ccb *ccb) request->driver = hcb; request->data = buf; request->bytecount = len; - request->transfersize = min(request->bytecount, 65534); + request->transfersize = min(request->bytecount, + min(softc->ata_ch->dma->max_iosize, 65534)); request->timeout = ccb_h->timeout / 1000; /* XXX lost granularity */ request->retries = 2; request->callback = &atapi_cb; -- 2.11.4.GIT