diff options
author | iwasaki <iwasaki@FreeBSD.org> | 2008-02-10 06:21:52 +0000 |
---|---|---|
committer | iwasaki <iwasaki@FreeBSD.org> | 2008-02-10 06:21:52 +0000 |
commit | 9b9b90a0134b9cabe0603cdf6ee962549d8c751d (patch) | |
tree | 2de14da947a87a32b5a8487774100ca822c75cf5 /sys/dev/ciss | |
parent | 7b35710fcea8edd0b867bd6230053c1ff7caeab0 (diff) | |
download | FreeBSD-src-9b9b90a0134b9cabe0603cdf6ee962549d8c751d.zip FreeBSD-src-9b9b90a0134b9cabe0603cdf6ee962549d8c751d.tar.gz |
Add `hw.ciss.nop_message_heartbeat' tunable (default disabled) for
NOP-message polling in ciss_periodic().
Note that setting the tunable to non-zero can be workaround only for
`ADAPTER HEARTBEAT FAILED' problem, and may freeze the system w/o
the problem.
Reviewed by: scottl
Reported by: Attila Nagy
MFC after: 3 days
Diffstat (limited to 'sys/dev/ciss')
-rw-r--r-- | sys/dev/ciss/ciss.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/ciss/ciss.c b/sys/dev/ciss/ciss.c index e33ff32..7369f8e 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; |