summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authoralfred <alfred@FreeBSD.org>2003-02-14 13:10:40 +0000
committeralfred <alfred@FreeBSD.org>2003-02-14 13:10:40 +0000
commit268bc18ef22d1e8576dc27bfd457db03cc8f64a1 (patch)
tree3d097cb02213bb33ea65e44a51a5c671d8b7d12d /sys/dev
parent6c48c14c4929b75deeaa10e0726ebea8d04c85ef (diff)
downloadFreeBSD-src-268bc18ef22d1e8576dc27bfd457db03cc8f64a1.zip
FreeBSD-src-268bc18ef22d1e8576dc27bfd457db03cc8f64a1.tar.gz
Fix crash dumps on ata and scsi.
To fix scsi, don't wait for ithreads if we're dumping, it makes the debugger sad. To fix ata, use what appears to be a polling method if we're dumping, I stole this from tmm but added code to ensure that this change is only in effect while dumping. Tested by: des
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/ata/ata-all.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/ata/ata-all.c b/sys/dev/ata/ata-all.c
index e9c020c..9fb6aa5 100644
--- a/sys/dev/ata/ata-all.c
+++ b/sys/dev/ata/ata-all.c
@@ -486,7 +486,8 @@ ata_getparam(struct ata_device *atadev, u_int8_t command)
/* apparently some devices needs this repeated */
do {
- if (ata_command(atadev, command, 0, 0, 0, ATA_WAIT_INTR)) {
+ if (ata_command(atadev, command, 0, 0, 0,
+ dumping ? ATA_WAIT_READY : ATA_WAIT_INTR)) {
ata_prtdev(atadev, "%s identify failed\n",
command == ATA_C_ATAPI_IDENTIFY ? "ATAPI" : "ATA");
free(ata_parm, M_ATA);
OpenPOWER on IntegriCloud