diff options
| author | Søren Schmidt <sos@FreeBSD.org> | 2000-01-07 12:01:01 +0000 |
|---|---|---|
| committer | Søren Schmidt <sos@FreeBSD.org> | 2000-01-07 12:01:01 +0000 |
| commit | af864373013ab3b09377e635860fdc56e6dec078 (patch) | |
| tree | f76c0e93ff4467da498991fdf97abff3dce9df06 /sys/dev | |
| parent | 3abe5082ad8931fab8e13194b9785e31408fed63 (diff) | |
Notes
Diffstat (limited to 'sys/dev')
| -rw-r--r-- | sys/dev/ata/ata-disk.c | 7 | ||||
| -rw-r--r-- | sys/dev/ata/atapi-cd.c | 2 | ||||
| -rw-r--r-- | sys/dev/ata/atapi-fd.c | 9 |
3 files changed, 16 insertions, 2 deletions
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c index 598d6dfa1220..619f1fed4a52 100644 --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.c @@ -301,6 +301,13 @@ adstrategy(struct buf *bp) struct ad_softc *adp = bp->b_dev->si_drv1; int32_t s; + /* if it's a null transfer, return immediatly. */ + if (bp->b_bcount == 0) { + bp->b_resid = 0; + biodone(bp); + return; + } + s = splbio(); bufqdisksort(&adp->queue, bp); ad_start(adp); diff --git a/sys/dev/ata/atapi-cd.c b/sys/dev/ata/atapi-cd.c index 40eb4b6296c8..50632f7b17a8 100644 --- a/sys/dev/ata/atapi-cd.c +++ b/sys/dev/ata/atapi-cd.c @@ -1030,7 +1030,7 @@ acdstrategy(struct buf *bp) return; } #endif - + /* if it's a null transfer, return immediatly. */ if (bp->b_bcount == 0) { bp->b_resid = 0; biodone(bp); diff --git a/sys/dev/ata/atapi-fd.c b/sys/dev/ata/atapi-fd.c index 6c45f6f9969b..f8e32917d671 100644 --- a/sys/dev/ata/atapi-fd.c +++ b/sys/dev/ata/atapi-fd.c @@ -254,6 +254,13 @@ afdstrategy(struct buf *bp) struct afd_softc *fdp = bp->b_dev->si_drv1; int32_t s; + /* if it's a null transfer, return immediatly. */ + if (bp->b_bcount == 0) { + bp->b_resid = 0; + biodone(bp); + return; + } + s = splbio(); bufq_insert_tail(&fdp->buf_queue, bp); afd_start(fdp); @@ -267,7 +274,7 @@ afd_start(struct afd_softc *fdp) u_int32_t lba, count; int8_t ccb[16]; int8_t *data_ptr; - + if (!bp) return; |
