All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Maxim Levitsky <maximlevitsky@gmail.com>
Cc: linux-mmc <linux-mmc@vger.kernel.org>,
	"Rafael J. Wysocki" <rjw@sisk.pl>,
	linux-pm <linux-pm@lists.linux-foundation.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Philip Langdale <philipl@overt.org>
Subject: Re: [PATCH v2] MMC: fix all hangs related to mmc/sd card insert/removal during suspend/resume.
Date: Mon, 14 Jun 2010 16:01:06 -0700	[thread overview]
Message-ID: <20100614160106.bcd92997.akpm@linux-foundation.org> (raw)
In-Reply-To: <1276283995-10812-1-git-send-email-maximlevitsky@gmail.com>

On Fri, 11 Jun 2010 22:19:55 +0300
Maxim Levitsky <maximlevitsky@gmail.com> wrote:

> If you don't use CONFIG_MMC_UNSAFE_RESUME, card will now be removed
> in pm notified while userspace is still running.
> Thus it will be possible to sync it propely.
> 
> Card detect workqueue is now freezeable, therefore a card insert/removal event will
> wait till userspace is unfrozen.
> 
> Tested with and without CONFIG_MMC_UNSAFE_RESUME with suspend and hibernate.
> 
>
> ...
>
> @@ -158,6 +162,8 @@ void mmc_remove_host(struct mmc_host *host)
>  	device_del(&host->class_dev);
>  
>  	led_trigger_unregister_simple(host->led);
> +
> +	unregister_pm_notifier(&host->pm_notify);
>  }

This looks a little risky.  There's a window where the pm notifier
remains registered after we've done the device_del() and the
led_trigger_unregister_simple().

I don't know if the code's really buggy, nor if it might become buggy
in the future as things evolve.  But as register_pm_notifier() is the
last thing we do before mmc_start_host(), I'd have though that
unregister_pm_notifier() should be the first thing we do after
mmc_stop_host()?

>
> ...
>
> --- a/include/linux/mmc/host.h
> +++ b/include/linux/mmc/host.h
> @@ -124,6 +124,7 @@ struct mmc_host {
>  	unsigned int		f_min;
>  	unsigned int		f_max;
>  	u32			ocr_avail;
> +	struct notifier_block	pm_notify;
>  
>  #define MMC_VDD_165_195		0x00000080	/* VDD voltage 1.65 - 1.95 */
>  #define MMC_VDD_20_21		0x00000100	/* VDD voltage 2.0 ~ 2.1 */
> @@ -257,6 +258,8 @@ int mmc_card_can_sleep(struct mmc_host *host);
>  int mmc_host_enable(struct mmc_host *host);
>  int mmc_host_disable(struct mmc_host *host);
>  int mmc_host_lazy_disable(struct mmc_host *host);
> +int mmc_pm_notify(struct notifier_block *notify_block, unsigned long, void *);

It's unusual to provide names for some of the arguments and to leave
them out for others.


  parent reply	other threads:[~2010-06-14 23:01 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-11 19:00 [PATCH] Fix the outstanding issue with hangs on insert/removal of mmc cards Maxim Levitsky
2010-06-11 19:16 ` Maxim Levitsky
2010-06-11 19:16 ` Maxim Levitsky
2010-06-11 19:19   ` [PATCH v2] MMC: fix all hangs related to mmc/sd card insert/removal during suspend/resume Maxim Levitsky
2010-06-13 11:27     ` Maxim Levitsky
2010-06-13 11:27     ` Maxim Levitsky
2010-06-14 22:51     ` Andrew Morton
2010-06-14 23:48       ` Maxim Levitsky
2010-06-14 23:48       ` Maxim Levitsky
2010-06-14 22:51     ` Andrew Morton
2010-06-14 23:01     ` Andrew Morton [this message]
2010-06-14 23:18       ` Maxim Levitsky
2010-06-14 23:18       ` Maxim Levitsky
2010-06-14 23:01     ` Andrew Morton
2010-06-11 19:19   ` Maxim Levitsky
2010-06-11 19:42 ` [PATCH] Fix the outstanding issue with hangs on insert/removal of mmc cards David Brownell
2010-06-11 19:42 ` [linux-pm] " David Brownell
2010-06-11 21:00 ` Alan Stern
2010-06-11 21:00 ` [linux-pm] " Alan Stern
2010-06-11 21:03   ` Maxim Levitsky
2010-06-11 21:03   ` Maxim Levitsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100614160106.bcd92997.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-pm@lists.linux-foundation.org \
    --cc=maximlevitsky@gmail.com \
    --cc=philipl@overt.org \
    --cc=rjw@sisk.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.