summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormjacob <mjacob@FreeBSD.org>2001-04-09 05:41:41 +0000
committermjacob <mjacob@FreeBSD.org>2001-04-09 05:41:41 +0000
commit49215b31ce7c8fde1ce23ddfb2ee853697f480bc (patch)
tree1dea544eeea4c6a8fab42996bbc932d793c0ab36
parentc86966a7ca5f846bfa38b786d8ab834afab5c2b7 (diff)
downloadFreeBSD-src-49215b31ce7c8fde1ce23ddfb2ee853697f480bc.zip
FreeBSD-src-49215b31ce7c8fde1ce23ddfb2ee853697f480bc.tar.gz
Correctly initialize free_ccbq so that if we fail to attach (as is
possible for some systems where the device is there, but the BIOS hasn't allocated memory resources for it), we don't panic. Submitted by: Gerard Roudier
-rw-r--r--sys/dev/sym/sym_hipd.c17
1 files changed, 8 insertions, 9 deletions
diff --git a/sys/dev/sym/sym_hipd.c b/sys/dev/sym/sym_hipd.c
index eebd097..60957de 100644
--- a/sys/dev/sym/sym_hipd.c
+++ b/sys/dev/sym/sym_hipd.c
@@ -9137,6 +9137,14 @@ sym_pci_attach2(pcici_t pci_tag, int unit)
snprintf(np->inst_name, sizeof(np->inst_name), "sym%d", np->unit);
/*
+ * Initialyze the CCB free and busy queues.
+ */
+ sym_que_init(&np->free_ccbq);
+ sym_que_init(&np->busy_ccbq);
+ sym_que_init(&np->comp_ccbq);
+ sym_que_init(&np->cam_ccbq);
+
+ /*
* Allocate a tag for the DMA of user data.
*/
#ifdef FreeBSD_Bus_Dma_Abstraction
@@ -9371,21 +9379,12 @@ sym_pci_attach2(pcici_t pci_tag, int unit)
goto attach_failed;
/*
- * Initialyze the CCB free and busy queues.
* Allocate some CCB. We need at least ONE.
*/
- sym_que_init(&np->free_ccbq);
- sym_que_init(&np->busy_ccbq);
- sym_que_init(&np->comp_ccbq);
if (!sym_alloc_ccb(np))
goto attach_failed;
/*
- * Initialyze the CAM CCB pending queue.
- */
- sym_que_init(&np->cam_ccbq);
-
- /*
* Calculate BUS addresses where we are going
* to load the SCRIPTS.
*/
OpenPOWER on IntegriCloud