summaryrefslogtreecommitdiffstats
path: root/sys/dev/ciss/ciss.c
diff options
context:
space:
mode:
authoriwasaki <iwasaki@FreeBSD.org>2008-02-10 06:21:52 +0000
committeriwasaki <iwasaki@FreeBSD.org>2008-02-10 06:21:52 +0000
commit9b9b90a0134b9cabe0603cdf6ee962549d8c751d (patch)
tree2de14da947a87a32b5a8487774100ca822c75cf5 /sys/dev/ciss/ciss.c
parent7b35710fcea8edd0b867bd6230053c1ff7caeab0 (diff)
downloadFreeBSD-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/ciss.c')
-rw-r--r--sys/dev/ciss/ciss.c5
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;
OpenPOWER on IntegriCloud