[Midnightbsd-cvs] src [7670] trunk/sys/dev/ahci/ahci.c: do not zero out all 64 bytes as we only use 16

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Sat Aug 6 21:32:29 EDT 2016


Revision: 7670
          http://svnweb.midnightbsd.org/src/?rev=7670
Author:   laffer1
Date:     2016-08-06 21:32:28 -0400 (Sat, 06 Aug 2016)
Log Message:
-----------
do not zero out all 64 bytes as we  only use 16

Modified Paths:
--------------
    trunk/sys/dev/ahci/ahci.c

Modified: trunk/sys/dev/ahci/ahci.c
===================================================================
--- trunk/sys/dev/ahci/ahci.c	2016-08-07 01:26:42 UTC (rev 7669)
+++ trunk/sys/dev/ahci/ahci.c	2016-08-07 01:32:28 UTC (rev 7670)
@@ -1335,8 +1335,8 @@
 	    NULL, NULL, AHCI_WORK_SIZE, 1, AHCI_WORK_SIZE,
 	    0, NULL, NULL, &ch->dma.work_tag))
 		goto error;
-	if (bus_dmamem_alloc(ch->dma.work_tag, (void **)&ch->dma.work, 0,
-	    &ch->dma.work_map))
+	if (bus_dmamem_alloc(ch->dma.work_tag, (void **)&ch->dma.work, 
+	    BUS_DMA_ZERO, &ch->dma.work_map))
 		goto error;
 	if (bus_dmamap_load(ch->dma.work_tag, ch->dma.work_map, ch->dma.work,
 	    AHCI_WORK_SIZE, ahci_dmasetupc_cb, &dcba, 0) || dcba.error) {
@@ -2746,7 +2746,7 @@
 	struct ahci_channel *ch = device_get_softc(dev);
 	u_int8_t *fis = &ctp->cfis[0];
 
-	bzero(ctp->cfis, 64);
+	bzero(ctp->cfis, 16);
 	fis[0] = 0x27;  		/* host to device */
 	fis[1] = (ccb->ccb_h.target_id & 0x0f);
 	if (ccb->ccb_h.func_code == XPT_SCSI_IO) {
@@ -2761,10 +2761,10 @@
 		}
 		fis[7] = ATA_D_LBA;
 		fis[15] = ATA_A_4BIT;
-		bzero(ctp->acmd, 32);
 		bcopy((ccb->ccb_h.flags & CAM_CDB_POINTER) ?
 		    ccb->csio.cdb_io.cdb_ptr : ccb->csio.cdb_io.cdb_bytes,
 		    ctp->acmd, ccb->csio.cdb_len);
+		bzero(ctp->acmd + ccb->csio.cdb_len, 32 - ccb->csio.cdb_len);
 	} else if ((ccb->ataio.cmd.flags & CAM_ATAIO_CONTROL) == 0) {
 		fis[1] |= 0x80;
 		fis[2] = ccb->ataio.cmd.command;



More information about the Midnightbsd-cvs mailing list