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
This commit is contained in:
parent
cf27101909
commit
5a3c4d694e
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user