diff options
-rw-r--r-- | sys/dev/ata/ata-all.c | 3 | ||||
-rw-r--r-- | sys/kern/kern_intr.c | 3 |
2 files changed, 4 insertions, 2 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); diff --git a/sys/kern/kern_intr.c b/sys/kern/kern_intr.c index 75b0627..bd3d531 100644 --- a/sys/kern/kern_intr.c +++ b/sys/kern/kern_intr.c @@ -30,6 +30,7 @@ #include <sys/param.h> #include <sys/bus.h> +#include <sys/conf.h> #include <sys/rtprio.h> #include <sys/systm.h> #include <sys/interrupt.h> @@ -461,7 +462,7 @@ swi_sched(void *cookie, int flags) */ atomic_store_rel_int(&ih->ih_need, 1); if (!(flags & SWI_DELAY)) { - error = ithread_schedule(it, !cold); + error = ithread_schedule(it, !cold && !dumping); KASSERT(error == 0, ("stray software interrupt")); } } |