Alan wrote: > We want to be able to issue commands that fail silently some of the time > (set_features/xfer rate to CF 1.4 devices, perhaps some others such as > user SG_IO commands ought to be silent too as the error is for the app) > > This is a minimal implementation, we can extend it so the QUIET flag > isn't quiet about errors that are not command errors but indicate > infrastructre problems (CRC errors, HSM violation, DeviceFault) if need > be. > > Signed-off-by: Alan Cox <alan@xxxxxxxxxx> > > diff -u --new-file --recursive --exclude-from /usr/src/exclude linux.vanilla-2.6.20-rc6-mm3/drivers/ata/libata-eh.c linux-2.6.20-rc6-mm3/drivers/ata/libata-eh.c > --- linux.vanilla-2.6.20-rc6-mm3/drivers/ata/libata-eh.c 2007-01-31 14:20:39.000000000 +0000 > +++ linux-2.6.20-rc6-mm3/drivers/ata/libata-eh.c 2007-01-31 14:27:25.000000000 +0000 > @@ -1407,6 +1407,8 @@ > continue; > if (qc->flags & ATA_QCFLAG_SENSE_VALID && !qc->err_mask) > continue; > + if (qc->tf.flags & ATA_TFLAG_QUIET) > + continue; > > nr_failed++; > } > @@ -1446,6 +1448,8 @@ > > if (!(qc->flags & ATA_QCFLAG_FAILED) || !qc->err_mask) > continue; > + if (qc->tf.flags & ATA_TFLAG_QUIET) > + continue; > > ata_dev_printk(qc->dev, KERN_ERR, > "cmd %02x/%02x:%02x:%02x:%02x:%02x/%02x:%02x:%02x:%02x:%02x/%02x " I think the result can be a bit confusing if ehc->i.err_mask is set (port/dev exception message without failed command report). How about counting nr_quiet and doing if (nr_failed == nr_quiet) return right after the counting block? -- tejun - To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html