Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Aug 2003 14:40:04 -0700 (PDT)
From:      Ted Unangst <tedu@stanford.edu>
To:        freebsd-hackers@freebsd.org
Subject:   Re: possible deadlocks?
Message-ID:  <Pine.GSO.4.44.0308111434150.19330-100000@saga8.Stanford.EDU>
In-Reply-To: <Pine.GSO.4.44.0308061506120.29218-100000@saga0.Stanford.EDU>

next in thread | previous in thread | raw e-mail | index | archive | help
one more.  This falls into the very improbable category.  Ordinarily, I
don't think this is possible because FreeBSD doesn't support hotplug PCI,
so sk attachment can't be raced.

However, assuming I had some hot plug sk card, it seems like running
ifconfig sk0 at just the wrong point during sk1 attach will deadlock.  If
it absolutely can not happen (for a reason other than sk is attached
before init runs) please explain.

sk.c:
  sk_attach_xmac()
    SK_LOCK(sc); /* grabs */
    ether_ifattach()
      ifattach()
        IFNET_WLOCK() /* waits for 2 */

in6_ifattach.c:
  in6_nigroup_attach()
    IFNET_RLOCK() /* grabs */
    in6_addmulti()
      if_addmulti()
        sk_ioctl()
	  SK_IF_LOCK();  /* waits for 1 */



-- 
"First, it was not a strip bar, it was an erotic club.  And second,
what can I say?  I'm a night owl."
      - M. Barry, Mayor of Washington, DC



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.44.0308111434150.19330-100000>