summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
authorsimokawa <simokawa@FreeBSD.org>2005-11-25 14:29:24 +0000
committersimokawa <simokawa@FreeBSD.org>2005-11-25 14:29:24 +0000
commit2f1243974b570861bdd383d3e2dbcee8716f39e1 (patch)
tree8dbfe8df4064e537fbd87253427c8e6a0d6a9a8b /sys/dev
parent268d463a3d0037950b457f8f9d2759ca1c4d016a (diff)
downloadFreeBSD-src-2f1243974b570861bdd383d3e2dbcee8716f39e1.zip
FreeBSD-src-2f1243974b570861bdd383d3e2dbcee8716f39e1.tar.gz
Fix panic when we cannot find self-id of probing nodes.
This shouldn't happen as far as the self-id buffer is vaild but some people have this problem. PR: kern/83999 Submitted by: Markus Wild <fbsd-lists@dudes.ch> MFC after: 3 days
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/firewire/firewire.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/dev/firewire/firewire.c b/sys/dev/firewire/firewire.c
index 9636b12..8dba5c2 100644
--- a/sys/dev/firewire/firewire.c
+++ b/sys/dev/firewire/firewire.c
@@ -1324,6 +1324,7 @@ fw_bus_explore(struct firewire_comm *fc )
uint32_t addr;
struct fw_xfer *xfer;
struct fw_pkt *fp;
+ union fw_self_id *fwsid;
if(fc->status != FWBUSEXPLORE)
return;
@@ -1336,7 +1337,8 @@ loop:
/* check link */
/* XXX we need to check phy_id first */
- if (!fw_find_self_id(fc, fc->ongonode)->p0.link_active) {
+ fwsid = fw_find_self_id(fc, fc->ongonode);
+ if (!fwsid || !fwsid->p0.link_active) {
if (firewire_debug)
printf("node%d: link down\n", fc->ongonode);
fc->ongonode++;
OpenPOWER on IntegriCloud