From patchwork Mon Aug 3 03:36:26 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jia-Ju Bai X-Patchwork-Id: 502987 X-Patchwork-Delegate: jeffrey.t.kirsher@intel.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ozlabs.org (Postfix) with ESMTP id 66837140157 for ; Mon, 3 Aug 2015 13:52:14 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=163.com header.i=@163.com header.b=XOf2xX+R; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 67C3BA2780; Mon, 3 Aug 2015 03:52:13 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id t3wMXE68KmJX; Mon, 3 Aug 2015 03:52:13 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 16851A266D; Mon, 3 Aug 2015 03:52:13 +0000 (UTC) X-Original-To: intel-wired-lan@lists.osuosl.org Delivered-To: intel-wired-lan@lists.osuosl.org Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by ash.osuosl.org (Postfix) with ESMTP id EE4521C1F8C for ; Mon, 3 Aug 2015 03:52:11 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id E7E0FA277D for ; Mon, 3 Aug 2015 03:52:11 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wID_BWxncbMS for ; Mon, 3 Aug 2015 03:52:10 +0000 (UTC) X-Greylist: delayed 00:15:21 by SQLgrey-1.7.6 Received: from m50-138.163.com (m50-138.163.com [123.125.50.138]) by fraxinus.osuosl.org (Postfix) with ESMTP id C3F97A266D for ; Mon, 3 Aug 2015 03:52:09 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id; bh=KmQtpG4nAtLQQaM/1z cVjc0ZbYqeSFGzxxhKbrHf6jE=; b=XOf2xX+RTAeShAFnq0BrQWmMqvooH/YZSP 7agr4YoooiC9548p3h06g/vP+f/X8d1LSnjQrzOSeEgxaC/6tdpJjO7FvMuexXuL qyxnyoHEguOYSfYzNuHowaaxs0Stq7kHbmdp//1iAA8Qyo1tel+Q8WDrQZl8JqPg DOAYZ51TU= Received: from bai-oslab.tsinghua.edu.cn (unknown [173.252.200.40]) by smtp1 (Coremail) with SMTP id C9GowAAnX7e94b5VuXt4AQ--.31568S2; Mon, 03 Aug 2015 11:36:42 +0800 (CST) From: Jia-Ju Bai To: jeffrey.t.kirsher@intel.com, jesse.brandeburg@intel.com Date: Mon, 3 Aug 2015 11:36:26 +0800 Message-Id: <1438572986-32708-1-git-send-email-baijiaju1990@163.com> X-Mailer: git-send-email 1.7.9.5 X-CM-TRANSID: C9GowAAnX7e94b5VuXt4AQ--.31568S2 X-Coremail-Antispam: 1Uf129KBjvdXoWrZF17KF45Ww4fZr4UXF4xWFg_yoWfJrc_Gr nrZFWrXr45Kr1Fkr40yr4av3yq9ryvqry8Cw4ftrWa9F17Cr13Gw1DXr93WFWkW34fCa4D CrnIqF1Iyw1jkjkaLaAFLSUrUUUUUb8apTn2vfkv8UJUUUU8Yxn0WfASr-VFAUDa7-sFnT 9fnUUvcSsGvfC2KfnxnUUI43ZEXa7IUntKItUUUUU== X-Originating-IP: [173.252.200.40] X-CM-SenderInfo: xedlyx5dmximizq6il2tof0z/1tbiZQtLelWBK9elSgAAsY Cc: netdev@vger.kernel.org, Jia-Ju Bai , intel-wired-lan@lists.osuosl.org, linux-kernel@vger.kernel.org Subject: [Intel-wired-lan] [PATCH] igb: Fix a deadlock in igb_sriov_reinit X-BeenThere: intel-wired-lan@lists.osuosl.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: Intel Wired Ethernet Linux Kernel Driver Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: intel-wired-lan-bounces@lists.osuosl.org Sender: "Intel-wired-lan" When igb_init_interrupt_scheme in igb_sriov_reinit is failed, the lock acquired by rtnl_lock() is not released, which causes a deadlock. This patch adds rtnl_unlock() in error handling to fix it. Signed-off-by: Jia-Ju Bai Tested-by: Aaron Brown --- drivers/net/ethernet/intel/igb/igb_main.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 2f70a9b..311d1ca 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -7539,6 +7539,7 @@ static int igb_sriov_reinit(struct pci_dev *dev) if (igb_init_interrupt_scheme(adapter, true)) { dev_err(&pdev->dev, "Unable to allocate memory for queues\n"); + rtnl_unlock(); return -ENOMEM; }