Module Name: src Committed By: jdolecek Date: Fri Sep 29 20:05:07 UTC 2017
Modified Files: src/sys/dev/ata [jdolecek-ncq]: TODO.ncq ata.c atavar.h Log Message: introduce ATA_BSIZE and use it instead of DEV_BSIZE for get params and recovery, where they are by spec 512 bytes and not negotiable To generate a diff of this commit: cvs rdiff -u -r1.1.2.46 -r1.1.2.47 src/sys/dev/ata/TODO.ncq cvs rdiff -u -r1.132.8.38 -r1.132.8.39 src/sys/dev/ata/ata.c cvs rdiff -u -r1.92.8.28 -r1.92.8.29 src/sys/dev/ata/atavar.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/ata/TODO.ncq diff -u src/sys/dev/ata/TODO.ncq:1.1.2.46 src/sys/dev/ata/TODO.ncq:1.1.2.47 --- src/sys/dev/ata/TODO.ncq:1.1.2.46 Thu Sep 28 20:34:23 2017 +++ src/sys/dev/ata/TODO.ncq Fri Sep 29 20:05:07 2017 @@ -2,10 +2,6 @@ Bugs ---- test wd* at umass?, confirm the ata_channel kludge works -stop using DEV_BSIZE when really meaning ATA sector size and revert -<sys/param.h> inclusion in: -cvs rdiff -u -r1.2.30.1 -r1.2.30.2 src/sys/arch/amiga/dev/wdc_xsurf.c - Other random notes (do outside the NCQ branch): ----------------------------------------------------- do biodone() in wddone() starting the dump to not leak bufs when dumping from Index: src/sys/dev/ata/ata.c diff -u src/sys/dev/ata/ata.c:1.132.8.38 src/sys/dev/ata/ata.c:1.132.8.39 --- src/sys/dev/ata/ata.c:1.132.8.38 Wed Sep 27 19:05:57 2017 +++ src/sys/dev/ata/ata.c Fri Sep 29 20:05:07 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ata.c,v 1.132.8.38 2017/09/27 19:05:57 jdolecek Exp $ */ +/* $NetBSD: ata.c,v 1.132.8.39 2017/09/29 20:05:07 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Manuel Bouyer. All rights reserved. @@ -25,7 +25,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.132.8.38 2017/09/27 19:05:57 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.132.8.39 2017/09/29 20:05:07 jdolecek Exp $"); #include "opt_ata.h" @@ -961,7 +961,7 @@ ata_get_params(struct ata_drive_datas *d return CMD_AGAIN; } - tb = kmem_zalloc(DEV_BSIZE, KM_SLEEP); + tb = kmem_zalloc(ATA_BSIZE, KM_SLEEP); memset(prms, 0, sizeof(struct ataparams)); if (drvp->drive_type == ATA_DRIVET_ATA) { @@ -982,7 +982,7 @@ ata_get_params(struct ata_drive_datas *d } xfer->c_ata_c.flags = AT_READ | flags; xfer->c_ata_c.data = tb; - xfer->c_ata_c.bcount = DEV_BSIZE; + xfer->c_ata_c.bcount = ATA_BSIZE; if ((*atac->atac_bustype_ata->ata_exec_command)(drvp, xfer) != ATACMD_COMPLETE) { ATADEBUG_PRINT(("ata_get_parms: wdc_exec_command failed\n"), @@ -1044,7 +1044,7 @@ ata_get_params(struct ata_drive_datas *d rv = CMD_OK; out: - kmem_free(tb, DEV_BSIZE); + kmem_free(tb, ATA_BSIZE); ata_free_xfer(chp, xfer); return rv; } @@ -1110,7 +1110,7 @@ ata_read_log_ext_ncq(struct ata_drive_da xfer = ata_get_xfer_ext(chp, C_RECOVERY, 0); tb = drvp->recovery_blk; - memset(tb, 0, DEV_BSIZE); + memset(tb, 0, sizeof(drvp->recovery_blk)); /* * We could use READ LOG DMA EXT if drive supports it (i.e. @@ -1128,7 +1128,7 @@ ata_read_log_ext_ncq(struct ata_drive_da xfer->c_ata_c.flags = AT_READ | AT_LBA | AT_LBA48 | flags; xfer->c_ata_c.timeout = 1000; /* 1s */ xfer->c_ata_c.data = tb; - xfer->c_ata_c.bcount = DEV_BSIZE; + xfer->c_ata_c.bcount = sizeof(drvp->recovery_blk); if ((*atac->atac_bustype_ata->ata_exec_command)(drvp, xfer) != ATACMD_COMPLETE) { @@ -1141,7 +1141,7 @@ ata_read_log_ext_ncq(struct ata_drive_da } cksum = 0; - for (int i = 0; i < DEV_BSIZE; i++) + for (int i = 0; i < sizeof(drvp->recovery_blk); i++) cksum += tb[i]; if (cksum != 0) { aprint_error_dev(drvp->drv_softc, Index: src/sys/dev/ata/atavar.h diff -u src/sys/dev/ata/atavar.h:1.92.8.28 src/sys/dev/ata/atavar.h:1.92.8.29 --- src/sys/dev/ata/atavar.h:1.92.8.28 Wed Sep 27 19:05:57 2017 +++ src/sys/dev/ata/atavar.h Fri Sep 29 20:05:07 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: atavar.h,v 1.92.8.28 2017/09/27 19:05:57 jdolecek Exp $ */ +/* $NetBSD: atavar.h,v 1.92.8.29 2017/09/29 20:05:07 jdolecek Exp $ */ /* * Copyright (c) 1998, 2001 Manuel Bouyer. @@ -207,6 +207,8 @@ struct ata_xfer { #define ATA_MAX_OPENINGS 32 #define ATA_REAL_OPENINGS(op) ((op) > 1 ? (op) - 1 : 1) +#define ATA_BSIZE 512 /* Standard ATA block size (bytes) */ + /* Per-channel queue of ata_xfers */ #ifndef ATABUS_PRIVATE struct ata_queue; @@ -329,7 +331,7 @@ struct ata_drive_datas { daddr_t badsect[127]; /* 126 plus trailing -1 marker */ /* Recovery buffer */ - uint8_t recovery_blk[DEV_BSIZE]; + uint8_t recovery_blk[ATA_BSIZE]; }; /* User config flags that force (or disable) the use of a mode */