summaryrefslogtreecommitdiff
path: root/sys/dev/ata
diff options
context:
space:
mode:
authorAlexander Motin <mav@FreeBSD.org>2009-03-03 08:14:43 +0000
committerAlexander Motin <mav@FreeBSD.org>2009-03-03 08:14:43 +0000
commit9e44359d2e725597e40fac0c7a13ae9bd10e7250 (patch)
tree3dd3ce082344843efd5af63948191b7da8ad84af /sys/dev/ata
parent31f9229deef12080e8e4a59b79abea355840ab1d (diff)
Notes
Diffstat (limited to 'sys/dev/ata')
-rw-r--r--sys/dev/ata/ata-all.c7
-rw-r--r--sys/dev/ata/ata-all.h2
-rw-r--r--sys/dev/ata/ata-queue.c4
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;
}
}