Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934949Ab2JaDFg (ORCPT ); Tue, 30 Oct 2012 23:05:36 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:50937 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934913Ab2JaDFe (ORCPT ); Tue, 30 Oct 2012 23:05:34 -0400 MIME-Version: 1.0 In-Reply-To: References: <2504263.kbM6W9JoH9@linux-lqwf.site> Date: Wed, 31 Oct 2012 11:05:33 +0800 Message-ID: Subject: Re: [PATCH v3 2/6] PM / Runtime: introduce pm_runtime_set[get]_memalloc_noio() From: Ming Lei To: Oliver Neukum Cc: Alan Stern , linux-kernel@vger.kernel.org, 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 Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1107 Lines: 27 On Wed, Oct 31, 2012 at 10:08 AM, Ming Lei wrote: >> I am afraid it is, because a disk may just have been probed as the deviceis being reset. > > Yes, it is probable, and sounds like similar with 'root_wait' problem, see > prepare_namespace(): init/do_mounts.c, so looks no good solution > for the problem, and maybe we have to set the flag always before resetting > usb device. The below idea may help the problem which 'memalloc_noio' flag isn't set during usb_reset_device(). - for usb mass storage device, call pm_runtime_set_memalloc_noio(true) inside usb_stor_probe2() and uas_probe(), and call pm_runtime_set_memalloc_noio(false) inside uas_disconnect() and usb_stor_disconnect(). - for usb network device, register_netdev() is always called inside usb interface's probe(), looks no such problem. Thanks, -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/