diff --git a/sys/dev/raid/dpt/dpt_scsi.c b/sys/dev/raid/dpt/dpt_scsi.c index ebc9e1a..8e566ea 100644 --- a/sys/dev/raid/dpt/dpt_scsi.c +++ b/sys/dev/raid/dpt/dpt_scsi.c @@ -1563,7 +1563,13 @@ dpt_intr(void *arg) kprintf("dpt%d: >>---->> This is incomplete, " "fix me.... <<----<<", dpt->unit); - panic("DPT Rebooted"); + /* The just-reset signature is read straight from HBA + * registers. A rebooting (or hostile) controller must not + * be able to panic the kernel: clear the interrupt, keep + * draining, and let dpttimeout()/CAM time out and requeue + * the in-flight commands. */ + status = dpt_inb(dpt, HA_RSTATUS); + continue; } }