From 546eb2b18e4cae31a32e5bf6522d3fe82b846514 Mon Sep 17 00:00:00 2001 From: Warner Losh Date: Sat, 19 Aug 2000 05:01:07 +0000 Subject: [PATCH] Call bus_generic_detach on pcic before deleting the children. This has the side effect of detaching the children before I delete them. When I put the last commits in a loop for loop it died after 5 or so iterations. After this change, I lasted 50 before I stopped the test. --- sys/dev/pcic/i82365.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/dev/pcic/i82365.c b/sys/dev/pcic/i82365.c index 5204e94e733..8e0ac341d96 100644 --- a/sys/dev/pcic/i82365.c +++ b/sys/dev/pcic/i82365.c @@ -1523,6 +1523,9 @@ pcic_detach(device_t dev) int i; int ret; + ret = bus_generic_detach(dev); + if (ret != 0) + return (ret); device_get_children(dev, &kids, &nkids); for (i = 0; i < nkids; i++) { if ((ret = device_delete_child(pccarddev, kids[i])) != 0) @@ -1530,7 +1533,7 @@ pcic_detach(device_t dev) device_get_nameunit(kids[i]), ret); } free(kids, M_TEMP); - return (bus_generic_detach(dev)); + return 0; } SYSINIT(pcic, SI_SUB_KTHREAD_IDLE, SI_ORDER_ANY, pcic_start_threads, 0);