diff options
| author | Mitsuru IWASAKI <iwasaki@FreeBSD.org> | 2008-02-15 13:55:23 +0000 |
|---|---|---|
| committer | Mitsuru IWASAKI <iwasaki@FreeBSD.org> | 2008-02-15 13:55:23 +0000 |
| commit | e06244ec031ff9edb03af579cb1a89eafb1130be (patch) | |
| tree | a6a18109da5ba35b9d71f92a2da570b5f92086c1 | |
| parent | 765537c6f57d32afb7886b4758f805f7975a4676 (diff) | |
Notes
| -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; |
