From: Jun'ichi Nomura \(NEC\) Date: Thu, 12 Feb 2015 01:26:24 +0000 (+0000) Subject: tg3: Hold tp->lock before calling tg3_halt() from tg3_init_one() X-Git-Tag: fixes-v4.0-rc1~68^2~15 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d0af71a3573f1217b140c60b66f1a9b335fb058b;p=pandora-kernel.git tg3: Hold tp->lock before calling tg3_halt() from tg3_init_one() tg3_init_one() calls tg3_halt() without tp->lock despite its assumption and causes deadlock. If lockdep is enabled, a warning like this shows up before the stall: [ BUG: bad unlock balance detected! ] 3.19.0test #3 Tainted: G E ------------------------------------- insmod/369 is trying to release lock (&(&tp->lock)->rlock) at: [] tg3_chip_reset+0x14d/0x780 [tg3] but there are no more locks to release! tg3_init_one() doesn't call tg3_halt() under normal situation but during kexec kdump I hit this problem. Fixes: 932f19de ("tg3: Release tp->lock before invoking synchronize_irq()") Signed-off-by: Jun'ichi Nomura Signed-off-by: David S. Miller --- Reading git-diff-tree failed