From patchwork Sat Nov 3 08:35:12 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ming Lei X-Patchwork-Id: 196807 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 5A9482C00D0 for ; Sat, 3 Nov 2012 19:37:05 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754103Ab2KCIgr (ORCPT ); Sat, 3 Nov 2012 04:36:47 -0400 Received: from mail-pa0-f46.google.com ([209.85.220.46]:37605 "EHLO mail-pa0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751134Ab2KCIgm (ORCPT ); Sat, 3 Nov 2012 04:36:42 -0400 Received: by mail-pa0-f46.google.com with SMTP id hz1so2928804pad.19 for ; Sat, 03 Nov 2012 01:36:42 -0700 (PDT) Received: by 10.66.85.10 with SMTP id d10mr12323335paz.52.1351931802320; Sat, 03 Nov 2012 01:36:42 -0700 (PDT) Received: from localhost ([58.60.1.16]) by mx.google.com with ESMTPS id us7sm7086848pbc.40.2012.11.03.01.36.28 (version=TLSv1/SSLv3 cipher=OTHER); Sat, 03 Nov 2012 01:36:41 -0700 (PDT) From: Ming Lei To: linux-kernel@vger.kernel.org Cc: Alan Stern , Oliver Neukum , Minchan Kim , Greg Kroah-Hartman , "Rafael J. Wysocki" , Jens Axboe , "David S. Miller" , Andrew Morton , netdev@vger.kernel.org, linux-usb@vger.kernel.org, linux-pm@vger.kernel.org, linux-mm@kvack.org, Ming Lei , Eric Dumazet , David Decotigny , Tom Herbert , Ingo Molnar Subject: [PATCH v4 4/6] net/core: apply pm_runtime_set_memalloc_noio on network devices Date: Sat, 3 Nov 2012 16:35:12 +0800 Message-Id: <1351931714-11689-5-git-send-email-ming.lei@canonical.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1351931714-11689-1-git-send-email-ming.lei@canonical.com> References: <1351931714-11689-1-git-send-email-ming.lei@canonical.com> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Deadlock might be caused by allocating memory with GFP_KERNEL in runtime_resume and runtime_suspend callback of network devices in iSCSI situation, so mark network devices and its ancestor as 'memalloc_noio' with the introduced pm_runtime_set_memalloc_noio(). Cc: "David S. Miller" Cc: Eric Dumazet Cc: David Decotigny Cc: Tom Herbert Cc: Ingo Molnar Signed-off-by: Ming Lei --- v4: - call pm_runtime_set_memalloc_noio(ddev, true) after device_add --- net/core/net-sysfs.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c index bcf02f6..a55d255 100644 --- a/net/core/net-sysfs.c +++ b/net/core/net-sysfs.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "net-sysfs.h" @@ -1386,6 +1387,8 @@ void netdev_unregister_kobject(struct net_device * net) remove_queue_kobjects(net); + pm_runtime_set_memalloc_noio(dev, false); + device_del(dev); } @@ -1421,6 +1424,8 @@ int netdev_register_kobject(struct net_device *net) return error; } + pm_runtime_set_memalloc_noio(dev, true); + return error; }