On Wed, 12 Mar 2003, John Baldwin wrote:
It's holding the lock across bus_setup_intr(). You can try the
following patch:
Index: if_tl.c
===
RCS file: /usr/cvs/src/sys/pci/if_tl.c,v
retrieving revision 1.74
diff -u -r1.74 if_tl.c
--- if_tl.c 19 Feb 2003 05:47:41 - 1.74
+++ if_tl.c 12 Mar 2003 15:20:47 -
@@ -1138,12 +1138,11 @@
if (t-tl_name == NULL) {
device_printf(dev, unknown device!?\n);
- goto fail;
device_printf(dev, unknown device!?\n);
- goto fail;
RCS file: /usr/cvs/src/sys/pci/if_tl.c,v
retrieving revision 1.74
diff -u -r1.74 if_tl.c
--- if_tl.c 19 Feb 2003 05:47:41 - 1.74
+++ if_tl.c 12 Mar 2003 15:20:47 -
@@ -1138,12 +1138,11 @@
if (t-tl_name == NULL) {
device_printf(dev, unknown device!?\n);
- goto fail;
+ return (ENXIO);
}
mtx_init(sc-tl_mtx, device_get_nameunit(dev), MTX_NETWORK_LOCK,
MTX_DEF | MTX_RECURSE);
- TL_LOCK(sc);
/*
* Map control/status registers.
@@ -1348,12 +1347,12 @@
/*
* Call MI attach routine.
*/
Thanks John --
This patch looks a little bit mangled to me. It has two sections talking
about line 1138 of if_tl.c (with two different changes) and a section
talking about line 1348 (with no changes).
I assumed cut and paste error and proceeded along the same lines with this
patch instead:
Index: if_tl.c
===
RCS file: /usr/src/cvs-repo/src/sys/pci/if_tl.c,v
retrieving revision 1.74
diff -u -r1.74 if_tl.c
--- if_tl.c 19 Feb 2003 05:47:41 - 1.74
+++ if_tl.c 13 Mar 2003 00:26:20 -
@@ -1138,12 +1138,11 @@
if (t-tl_name == NULL) {
device_printf(dev, unknown device!?\n);
- goto fail;
+ return (ENXIO);
}
mtx_init(sc-tl_mtx, device_get_nameunit(dev), MTX_NETWORK_LOCK,
MTX_DEF | MTX_RECURSE);
- TL_LOCK(sc);
/*
* Map control/status registers.
@@ -1349,11 +1348,9 @@
* Call MI attach routine.
*/
ether_ifattach(ifp, sc-arpcom.ac_enaddr);
- TL_UNLOCK(sc);
return(0);
fail:
- TL_UNLOCK(sc);
mtx_destroy(sc-tl_mtx);
return(error);
}
This has made the messages go away -- thanks for that! If this is a
correct fix, should I submit a PR to have it committed?
--
Tod McQuillin
To Unsubscribe: send mail to [EMAIL PROTECTED]
with unsubscribe freebsd-current in the body of the message