From 05d3cc414dbf9657a394738fd5b7cea36f08c8ca Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Mon, 22 Apr 2013 18:50:29 +0200 Subject: [PATCH] ether8169: fix deadlock in allocation error case for attach. (thanks erik) typo in error case, should qunlock() instead of qlock(). --- sys/src/9/pc/ether8169.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sys/src/9/pc/ether8169.c b/sys/src/9/pc/ether8169.c index c17d0a51e..6c9a610ec 100644 --- a/sys/src/9/pc/ether8169.c +++ b/sys/src/9/pc/ether8169.c @@ -765,11 +765,13 @@ rtl8169attach(Ether* edev) ctlr->rd = nil; free(ctlr->dtcc); ctlr->dtcc = nil; - qlock(&ctlr->alock); + qunlock(&ctlr->alock); error(Enomem); } ctlr->init = 1; kproc("rtl8169", rtl8169reseter, edev); + + /* rtl8169reseter() does qunlock(&ctlr->alock) when complete */ qlock(&ctlr->alock); } qunlock(&ctlr->alock);