Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755553Ab0BMNgl (ORCPT ); Sat, 13 Feb 2010 08:36:41 -0500 Received: from mail-bw0-f216.google.com ([209.85.218.216]:50302 "EHLO mail-bw0-f216.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754755Ab0BMNgj (ORCPT ); Sat, 13 Feb 2010 08:36:39 -0500 X-Greylist: delayed 448 seconds by postgrey-1.27 at vger.kernel.org; Sat, 13 Feb 2010 08:36:39 EST DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:cc:content-type:date:message-id:mime-version :x-mailer:content-transfer-encoding; b=nEPZg5wpTEs6Tyz07ZjdBFYCFnIE7UhMuSyH+MMjRMx8hXSUGp9JzRwtb1mTZJsMjD hnJbkOTNqEqFbB6L41R8yeGyUzdbji5At8lhZXX/E+/miEz9Ifv2bPyWHlvWqQ1XMbgp 22B1OG8yIOs+Pt3R7XyZRDPCDq9htBBv4uLjQ= Subject: Is it supposed to be ok to call del_gendisk while userspace is frozen? From: Maxim Levitsky To: linux-kernel Cc: linux-pm , "Rafael J. Wysocki" , Andrew Morton Content-Type: text/plain; charset="UTF-8" Date: Sat, 13 Feb 2010 15:29:06 +0200 Message-ID: <1266067746.16937.7.camel@maxim-laptop> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1996 Lines: 48 I noticed that currently calling del_gendisk leads to sure deadlock if attemped from .suspend or .resume functions. 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. Best regards, Maxim Levitsky -- 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/