Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756275Ab0BOVDM (ORCPT ); Mon, 15 Feb 2010 16:03:12 -0500 Received: from ogre.sisk.pl ([217.79.144.158]:36501 "EHLO ogre.sisk.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752468Ab0BOVDK (ORCPT ); Mon, 15 Feb 2010 16:03:10 -0500 From: "Rafael J. Wysocki" To: Maxim Levitsky Subject: Re: Is it supposed to be ok to call del_gendisk while userspace is frozen? Date: Mon, 15 Feb 2010 22:04:04 +0100 User-Agent: KMail/1.12.4 (Linux/2.6.33-rc8-rjw; KDE/4.3.5; x86_64; ; ) Cc: "linux-kernel" , "linux-pm" , Andrew Morton , Jens Axboe References: <1266067746.16937.7.camel@maxim-laptop> <1266249634.10662.6.camel@maxim-laptop> In-Reply-To: <1266249634.10662.6.camel@maxim-laptop> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <201002152204.04148.rjw@sisk.pl> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2328 Lines: 52 On Monday 15 February 2010, Maxim Levitsky wrote: > On Sat, 2010-02-13 at 15:29 +0200, Maxim Levitsky wrote: > > I noticed that currently calling del_gendisk leads to sure deadlock if > > attemped from .suspend or .resume functions. Well, it shouldn't be called from there, then. > > Something like that: > > > > [] ? prepare_to_wait+0x2a/0x90 > > [] ? trace_hardirqs_on+0xd/0x10 > > [] ? _raw_spin_unlock_irqrestore+0x42/0x80 > > [] ? bdi_sched_wait+0x0/0x20 > > [] bdi_sched_wait+0xe/0x20 > > [] __wait_on_bit+0x5f/0x90 > > [] ? bdi_sched_wait+0x0/0x20 > > [] out_of_line_wait_on_bit+0x78/0x90 > > [] ? wake_bit_function+0x0/0x40 > > [] ? bdi_queue_work+0xa3/0xe0 > > [] bdi_sync_writeback+0x6f/0x80 > > [] sync_inodes_sb+0x22/0x120 > > [] __sync_filesystem+0x82/0x90 > > [] sync_filesystem+0x4b/0x70 > > [] fsync_bdev+0x2e/0x60 > > [] invalidate_partition+0x2e/0x50 > > [] del_gendisk+0x3f/0x140 > > [] mmc_blk_remove+0x33/0x60 [mmc_block] > > [] mmc_bus_remove+0x17/0x20 > > [] __device_release_driver+0x66/0xc0 > > [] device_release_driver+0x2d/0x40 > > [] bus_remove_device+0xb5/0x120 > > [] device_del+0x12f/0x1a0 > > [] mmc_remove_card+0x5b/0x90 > > [] mmc_sd_remove+0x27/0x50 > > [] mmc_resume_host+0x10c/0x140 > > [] sdhci_resume_host+0x69/0xa0 [sdhci] > > [] sdhci_pci_resume+0x8e/0xb0 [sdhci_pci] > > > > bdi_queue_work seems to be the problem. > > > > Some device drivers need to remove their cards logically in .suspend, > > because the card is removable, and can be changed while system is > > suspended. I don't know how to resolve this right now. Rafael -- 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/