Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 18 Jan 2005 14:23:24 -0500 (EST)
From:      "Ketrien I. Saihr-Kenchedra" <ketrien@error404.nls.net>
To:        John Baldwin <jhb@FreeBSD.org>
Cc:        current@FreeBSD.org
Subject:   Re: LOR in Jan16 -CUR, ACPI related possibly
Message-ID:  <20050118141527.B1832@bahre.achedra.org>
In-Reply-To: <200501181112.55266.jhb@FreeBSD.org>
References:  <20050116044737.B13189@bahre.achedra.org> <20050116163107.R13189@bahre.achedra.org> <200501181112.55266.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 18 Jan 2005, John Baldwin wrote:

> This is because the driver (pcn) in this case is holding a lock across
> bus_release_resoruce() when it probably should not be.  I get the same LOR
> with radeondrm because it holds the lock across bus_teardown_intr() (which is
> definitely wrong since that can sleep).

Indeed, this patch will fix it. I should've seen it, but I've been fighting
a timing issue in probe() on the Am79C975's.

*** if_pcn.c.orig       Tue Jan 18 14:17:54 2005
--- if_pcn.c    Tue Jan 18 14:18:26 2005
***************
*** 619,624 ****
--- 619,626 ----
                 pcn_stop(sc);
                 ether_ifdetach(ifp);
         }
+       PCN_UNLOCK(sc);
+
         if (sc->pcn_miibus)
                 device_delete_child(dev, sc->pcn_miibus);
         bus_generic_detach(dev);
***************
*** 634,640 ****
                 contigfree(sc->pcn_ldata, sizeof(struct pcn_list_data),
                     M_DEVBUF);
         }
-       PCN_UNLOCK(sc);

         mtx_destroy(&sc->pcn_mtx);

--- 636,641 ----

-Ketrien I. Saihr-Kenchedra



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050118141527.B1832>