summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2008-05-28 18:40:21 +0000
committerkettenis <kettenis@openbsd.org>2008-05-28 18:40:21 +0000
commitc8a067b38a83234803d21e953fe133a01aa0d941 (patch)
tree61ed4633635fb5e8b2346a36e765fa1413b0cdd4
parentSpotted by jmc, I tested the device and it works, so put it in the right (diff)
downloadwireguard-openbsd-c8a067b38a83234803d21e953fe133a01aa0d941.tar.xz
wireguard-openbsd-c8a067b38a83234803d21e953fe133a01aa0d941.zip
Don't try reading the SXP_PINS_DIFF on the 10160 and 12160 SCSI controllers.
The registers seems to return 0 on my 12160 and there are some indications that it doesn't really exist. This may fix panics seen with the 10160 on sparc64 machines. ok krw@
-rw-r--r--sys/dev/ic/isp.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/sys/dev/ic/isp.c b/sys/dev/ic/isp.c
index bc1f4bdbb44..f523bc3a9c8 100644
--- a/sys/dev/ic/isp.c
+++ b/sys/dev/ic/isp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: isp.c,v 1.41 2008/01/21 20:00:33 sobrado Exp $ */
+/* $OpenBSD: isp.c,v 1.42 2008/05/28 18:40:21 kettenis Exp $ */
/*
* Machine and OS Independent (well, as best as possible)
* code for the QLogic ISP SCSI adapters.
@@ -273,6 +273,15 @@ isp_reset(struct ispsoftc *isp)
/*
* XXX: Should probably do some bus sensing.
*/
+ } else if (IS_ULTRA3(isp)) {
+ isp->isp_clock = 100;
+
+ if (IS_10160(isp))
+ btype = "10160";
+ else if (IS_12160(isp))
+ btype = "12160";
+ else
+ btype = "<UNKLVD>";
} else if (IS_ULTRA2(isp)) {
static const char m[] = "bus %d is in %s Mode";
u_int16_t l;
@@ -284,10 +293,6 @@ isp_reset(struct ispsoftc *isp)
btype = "1280";
else if (IS_1080(isp))
btype = "1080";
- else if (IS_10160(isp))
- btype = "10160";
- else if (IS_12160(isp))
- btype = "12160";
else
btype = "<UNKLVD>";