summaryrefslogtreecommitdiffstats
path: root/isys/silo.c
diff options
context:
space:
mode:
authorjakub <jakub>1999-10-07 08:02:46 +0000
committerjakub <jakub>1999-10-07 08:02:46 +0000
commit1acde06f575984241e7845ca012d506bde14b253 (patch)
treeaedc8f487aa51f21214df88598027edbbb684783 /isys/silo.c
parent8df20fe1195cacbc1d23998e9354ded74a4ad85e (diff)
downloadanaconda-1acde06f575984241e7845ca012d506bde14b253.tar.gz
anaconda-1acde06f575984241e7845ca012d506bde14b253.tar.xz
anaconda-1acde06f575984241e7845ca012d506bde14b253.zip
Fix SIGSEGV seen on bart.
Diffstat (limited to 'isys/silo.c')
-rw-r--r--isys/silo.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/isys/silo.c b/isys/silo.c
index a300b1058..09082b093 100644
--- a/isys/silo.c
+++ b/isys/silo.c
@@ -281,13 +281,17 @@ scan_walk_callback(int node) {
sprintf (prop, "sd(%d,%d,", v0ctrl, hd[disk].mid);
break;
case SDSK_TYPE_PLN:
+ prop = ((struct openpromio *)buf)->oprom_array;
sprintf (prop, "/SUNW,pln@%x,%x/SUNW,ssd@%d,%d",
hd[disk].lo & 0xf0000000, hd[disk].lo & 0xffffff,
hd[disk].hi, hd[disk].mid);
break;
case SDSK_TYPE_FC:
+ prop = ((struct openpromio *)buf)->oprom_array;
sprintf (prop, "/sf@0,0/ssd@w%08x%08x,%d", hd[disk].hi, hd[disk].mid, hd[disk].lo);
break;
+ default:
+ continue;
}
hd[disk].prom_name = malloc (strlen (prom_path) + strlen(prop) + 3);
if (!hd[disk].prom_name)
@@ -483,7 +487,7 @@ scan_scsi(void) {
}
if (q == NULL) {
for (disk = 0; disk < sdlen; disk++)
- if (sd[disk].host == host) {
+ if (sd[disk].host == host && sd[disk].type) {
sd[disk].prom_node = prom_node;
if (p[1] == 'e') {
sd[disk].type = SDSK_TYPE_PLN;