Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Apr 2011 21:59:13 -0400
From:      dieterbsd@engineer.com
To:        freebsd-hackers@freebsd.org, freebsd-drivers@freebsd.org
Subject:   Need an alternative to DELAY()
Message-ID:  <8CDC60330838A41-18FC-694F@web-mmc-m02.sysops.aol.com>

next in thread | raw e-mail | index | archive | help

FreeBSD 8.2  amd64  uniprocessor

kernel: siisch1: DISCONNECT requested
kernel: siisch1: SIIS reset...
kernel: siisch1: siis_sata_connect() calling DELAY(1000)
last message repeated 59 times
kernel: siisch1: SATA connect time=60ms status=00000123
kernel: siisch1: SIIS reset done: devices=00000001
kernel: siisch1: DISCONNECT requested
kernel: siisch1: SIIS reset...
kernel: siisch1: siis_sata_connect() calling DELAY(1000)
last message repeated 58 times
kernel: siisch1: SATA connect time=59ms status=00000123
...
kernel: siisch0: siis_wait_ready() calling DELAY(1000)
last message repeated 1300 times
kernel: siisch0: port is not ready (timeout 10000ms) status = 001f2000

Meanwhile, *everything* comes to a screeching halt.  Device
drivers are locked out, and thus incoming data is lost.
Losing incoming data is unacceptable.

Need an alternative to DELAY() that does not lock out
other device drivers.  There must be a way to reset one
bit of hardware without locking down the entire machine.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8CDC60330838A41-18FC-694F>