Removing an SDHC card causes a kernel panic on -current
Kenneth D. Merry
ken at freebsd.org
Wed Jun 27 02:29:16 UTC 2012
On Tue, Jun 26, 2012 at 19:41:07 -0400, Benjamin Kaduk wrote:
> On Tue, 26 Jun 2012, Michael Butler wrote:
>
> >As follows, in "g_disk_providergone", a NULL pointer reference?:
>
> g_disk_providergone() is new in r237518 (by ken); ken cc'd.
Can you try the attached patch to sys/geom/geom_disk.c?
Also, do you have full dmesg information for when the panic happened?
It looks like disk_destroy() has already been called in this case, and I
suppose that's likely to happen for any of the users of the GEOM disk class
that haven't been updated with the reference count changes I made in da(4).
(i.e. all of the rest of them.)
Let me know whether this works for you.
Thanks,
Ken
--
Kenneth Merry
ken at FreeBSD.ORG
-------------- next part --------------
==== //depot/users/kenm/FreeBSD-test2/sys/geom/geom_disk.c#7 - /usr/home/kenm/perforce4/kenm/FreeBSD-test2/sys/geom/geom_disk.c ====
*** /tmp/tmp.75357.20 Tue Jun 26 20:25:44 2012
--- /usr/home/kenm/perforce4/kenm/FreeBSD-test2/sys/geom/geom_disk.c Tue Jun 26 20:25:29 2012
***************
*** 502,507 ****
--- 502,515 ----
struct g_disk_softc *sc;
sc = (struct g_disk_softc *)pp->geom->softc;
+
+ /*
+ * If the softc is already NULL, then we've probably been through
+ * g_disk_destroy already; there is nothing for us to do anyway.
+ */
+ if (sc == NULL)
+ return;
+
dp = sc->dp;
if (dp->d_gone != NULL)
More information about the freebsd-current
mailing list