diff options
author | Warner Losh <imp@FreeBSD.org> | 2014-08-30 02:13:09 +0000 |
---|---|---|
committer | Warner Losh <imp@FreeBSD.org> | 2014-08-30 02:13:09 +0000 |
commit | 0375d6f5f9f27448298624c52d5ae94c6b40ec80 (patch) | |
tree | 2ffd51ea7dc3c8c798a20d72b79b4bf90e99775b /sys/dev/ahci/ahci.c | |
parent | 2da8d262e01eca7dc4cb58fc30aa8016106d8e1f (diff) | |
download | src-0375d6f5f9f27448298624c52d5ae94c6b40ec80.tar.gz src-0375d6f5f9f27448298624c52d5ae94c6b40ec80.zip |
We were returning 20 bytes as the FIS size to send, but only
initializing 16. Initialize all 20 so we don't send garbage in the
Auxiliary register. The SATA standard mandates a 5 dword length for
the Host to Device FIS.
Sponsored by: Netflix
Notes
Notes:
svn path=/head/; revision=270833
Diffstat (limited to 'sys/dev/ahci/ahci.c')
-rw-r--r-- | sys/dev/ahci/ahci.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c index 0691b77489fd..b2148339e5b1 100644 --- a/sys/dev/ahci/ahci.c +++ b/sys/dev/ahci/ahci.c @@ -2764,7 +2764,7 @@ ahci_setup_fis(device_t dev, struct ahci_cmd_tab *ctp, union ccb *ccb, int tag) struct ahci_channel *ch = device_get_softc(dev); u_int8_t *fis = &ctp->cfis[0]; - bzero(ctp->cfis, 16); + bzero(fis, 20); fis[0] = 0x27; /* host to device */ fis[1] = (ccb->ccb_h.target_id & 0x0f); if (ccb->ccb_h.func_code == XPT_SCSI_IO) { |