diff options
| author | Alexander Motin <mav@FreeBSD.org> | 2009-03-03 08:14:43 +0000 |
|---|---|---|
| committer | Alexander Motin <mav@FreeBSD.org> | 2009-03-03 08:14:43 +0000 |
| commit | 9e44359d2e725597e40fac0c7a13ae9bd10e7250 (patch) | |
| tree | 3dd3ce082344843efd5af63948191b7da8ad84af /sys/dev/ata | |
| parent | 31f9229deef12080e8e4a59b79abea355840ab1d (diff) | |
Notes
Diffstat (limited to 'sys/dev/ata')
| -rw-r--r-- | sys/dev/ata/ata-all.c | 7 | ||||
| -rw-r--r-- | sys/dev/ata/ata-all.h | 2 | ||||
| -rw-r--r-- | sys/dev/ata/ata-queue.c | 4 |
3 files changed, 7 insertions, 6 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c index 151414944e63..b94559f7126d 100644 --- a/sys/dev/ata/ata-all.c +++ b/sys/dev/ata/ata-all.c @@ -140,7 +140,7 @@ ata_attach(device_t dev) return ENXIO; } if ((error = bus_setup_intr(dev, ch->r_irq, ATA_INTR_FLAGS, NULL, - (driver_intr_t *)ata_interrupt, ch, &ch->ih))) { + ata_interrupt, ch, &ch->ih))) { device_printf(dev, "unable to setup interrupt\n"); return error; } @@ -312,7 +312,7 @@ ata_resume(device_t dev) return error; } -int +void ata_interrupt(void *data) { struct ata_channel *ch = (struct ata_channel *)data; @@ -347,11 +347,10 @@ ata_interrupt(void *data) mtx_unlock(&ch->state_mtx); ATA_LOCKING(ch->dev, ATA_LF_UNLOCK); ata_finish(request); - return 1; + return; } } while (0); mtx_unlock(&ch->state_mtx); - return 0; } /* diff --git a/sys/dev/ata/ata-all.h b/sys/dev/ata/ata-all.h index 55badd2aeb5c..cf0c9fc5dd85 100644 --- a/sys/dev/ata/ata-all.h +++ b/sys/dev/ata/ata-all.h @@ -534,7 +534,7 @@ int ata_detach(device_t dev); int ata_reinit(device_t dev); int ata_suspend(device_t dev); int ata_resume(device_t dev); -int ata_interrupt(void *data); +void ata_interrupt(void *data); int ata_device_ioctl(device_t dev, u_long cmd, caddr_t data); int ata_identify(device_t dev); void ata_default_registers(device_t dev); diff --git a/sys/dev/ata/ata-queue.c b/sys/dev/ata/ata-queue.c index 9849443219a7..dfbd3f20fa02 100644 --- a/sys/dev/ata/ata-queue.c +++ b/sys/dev/ata/ata-queue.c @@ -214,8 +214,10 @@ ata_start(device_t dev) if (dumping) { mtx_unlock(&ch->state_mtx); mtx_unlock(&ch->queue_mtx); - while (!ata_interrupt(ch)) + while (ch->running) { + ata_interrupt(ch); DELAY(10); + } return; } } |
