diff options
| -rw-r--r-- | share/man/man4/ciss.4 | 6 | ||||
| -rw-r--r-- | sys/dev/ciss/ciss.c | 5 |
2 files changed, 10 insertions, 1 deletions
diff --git a/share/man/man4/ciss.4 b/share/man/man4/ciss.4 index a896e4e61575..74e54e7b692d 100644 --- a/share/man/man4/ciss.4 +++ b/share/man/man4/ciss.4 @@ -84,6 +84,12 @@ drives) are only exposed as devices. Hot-insertion and removal of devices is supported but a bus rescan might be necessary. +.Pp +The problem which adapter freezes with the message +.Dq ADAPTER HEARTBEAT FAILED +might be solved by updating the firmware and/or setting the +.Va hw.ciss.nop_message_heartbeat +tunable to non-zero at boot time. .Sh HARDWARE Controllers supported by the .Nm diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c index 9c9214955a6e..c71d0d9b5600 100644 --- a/sys/dev/ciss/ciss.c +++ b/sys/dev/ciss/ciss.c @@ -247,6 +247,9 @@ static struct cdevsw ciss_cdevsw = { static unsigned int ciss_expose_hidden_physical = 0; TUNABLE_INT("hw.ciss.expose_hidden_physical", &ciss_expose_hidden_physical); +static unsigned int ciss_nop_message_heartbeat = 0; +TUNABLE_INT("hw.ciss.nop_message_heartbeat", &ciss_nop_message_heartbeat); + /************************************************************************ * CISS adapters amazingly don't have a defined programming interface * value. (One could say some very despairing things about PCI and @@ -3099,7 +3102,7 @@ ciss_periodic(void *arg) /* * Send the NOP message and wait for a response. */ - if ((error = ciss_get_request(sc, &cr)) == 0) { + if (ciss_nop_message_heartbeat != 0 && (error = ciss_get_request(sc, &cr)) == 0) { cc = CISS_FIND_COMMAND(cr); cr->cr_complete = ciss_nop_complete; cc->cdb.cdb_length = 1; |
