summaryrefslogtreecommitdiffstats
path: root/sys/pc98/cbus
diff options
context:
space:
mode:
Diffstat (limited to 'sys/pc98/cbus')
-rw-r--r--sys/pc98/cbus/fdc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/pc98/cbus/fdc.c b/sys/pc98/cbus/fdc.c
index 8373f45..2947117 100644
--- a/sys/pc98/cbus/fdc.c
+++ b/sys/pc98/cbus/fdc.c
@@ -1499,7 +1499,9 @@ fdstrategy(struct bio *bp)
bioq_disksort(&fdc->head, bp);
untimeout(fd_turnoff, fd, fd->toffhandle); /* a good idea */
devstat_start_transaction_bio(fd->device_stats, bp);
+ newbus_xlock();
device_busy(fd->dev);
+ newbus_xunlock();
fdstart(fdc);
splx(s);
return;
@@ -2178,7 +2180,9 @@ fdstate(fdc_p fdc)
fd->skip = 0;
bp->bio_resid = 0;
fdc->bp = NULL;
+ newbus_xlock();
device_unbusy(fd->dev);
+ newbus_xunlock();
biofinish(bp, fd->device_stats, 0);
fdc->fd = (fd_p) 0;
fdc->fdu = -1;
@@ -2339,7 +2343,9 @@ retrier(struct fdc_data *fdc)
bp->bio_resid = 0;
fdc->bp = NULL;
fdc->fd->skip = 0;
+ newbus_xlock();
device_unbusy(fd->dev);
+ newbus_xunlock();
biofinish(bp, fdc->fd->device_stats, 0);
fdc->state = FINDWORK;
fdc->flags |= FDC_NEEDS_RESET;
OpenPOWER on IntegriCloud