diff options
Diffstat (limited to 'sys/dev/ic/isp_openbsd.c')
-rw-r--r-- | sys/dev/ic/isp_openbsd.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/dev/ic/isp_openbsd.c b/sys/dev/ic/isp_openbsd.c index ece2a2aa439..252e1e2df90 100644 --- a/sys/dev/ic/isp_openbsd.c +++ b/sys/dev/ic/isp_openbsd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: isp_openbsd.c,v 1.28 2005/12/03 16:53:16 krw Exp $ */ +/* $OpenBSD: isp_openbsd.c,v 1.29 2006/11/28 23:59:45 dlg Exp $ */ /* * Platform (OpenBSD) dependent common attachment code for Qlogic adapters. * @@ -85,6 +85,7 @@ struct cfdriver isp_cd = { void isp_attach(struct ispsoftc *isp) { + struct scsibus_attach_args saa; struct scsi_link *lptr = &isp->isp_osinfo._link[0]; isp->isp_osinfo._adapter.scsi_minphys = ispminphys; @@ -158,13 +159,19 @@ isp_attach(struct ispsoftc *isp) ISP_UNLOCK(isp); lptr->adapter_target = defid; } + + bzero(&saa, sizeof(saa)); + saa.saa_sc_link = lptr; + /* * And attach children (if any). */ - config_found((void *)isp, lptr, scsiprint); + config_found((void *)isp, &saa, scsiprint); if (IS_DUALBUS(isp)) { lptr++; - config_found((void *)isp, lptr, scsiprint); + bzero(&saa, sizeof(saa)); + saa.saa_sc_link = lptr; + config_found((void *)isp, &saa, scsiprint); } } |