Re: Help needed, Re: [Bug #14334] pcmcia suspend regression from2.6.31.1 to 2.6.31.2 - Dell Inspiron 600m

From: Linus Torvalds
Date: Fri Oct 30 2009 - 15:48:15 EST




On Fri, 30 Oct 2009, Rafael J. Wysocki wrote:
>
>
> 1) Resume works if pcmcia_socket_dev_resume(dev) is moved to the "regular"
> resume phase, after resume_device_irqs().

Hmm. We really probably shouldn't call pcmcia_socket_dev_resume() in
early_resume. It takes mutexes etc, and it calls "socket_resume()", which
sleeps etc. That per se should be ok these days (since we don't actualyl
disable CPU irq's, just device irqs), but it also does that whole card
insertion events etc. And _that_ code I wouldn't trust at all.

The PCMCIA code is better than it used to be a long time ago, but some of
it is still pretty crazy.

I get the feeling that we should just revert that commit 0c570cdeb, and
instead always do PCMCIA suspend as a "eject" event. That way we have no
driver behind it to resume at resume time - and we'll see any plugged-in
device as just a new insertion.

Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/