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=3D60ms status=3D00000123
kernel: siisch1: SIIS reset done: devices=3D00000001
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=3D59ms status=3D00000123
...
kernel: siisch0: siis_wait_ready() calling DELAY(1000)
last message repeated 1300 times
kernel: siisch0: port is not ready (timeout 10000ms) status =3D 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>