[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.1.10.0809040151080.3452@nehalem.linux-foundation.org>
Date: Thu, 4 Sep 2008 02:03:21 -0700 (PDT)
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Andrew Morton <akpm@...ux-foundation.org>
cc: Stephen Rothwell <sfr@...b.auug.org.au>,
linux-next@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>,
Yinghai Lu <yhlu.kernel@...il.com>,
Jesse Barnes <jbarnes@...tuousgeek.org>
Subject: Re: linux-next: Tree for September 3
On Thu, 4 Sep 2008, Andrew Morton wrote:
>
> ooh look, I fixed something:
>
> --- a/drivers/pcmcia/cs.c~a
> +++ a/drivers/pcmcia/cs.c
> @@ -477,6 +477,8 @@ static int socket_setup(struct pcmcia_so
> */
> msleep(vcc_settle * 10);
>
> + msleep(100);
> +
Heh. I'm hoping that it would help to just change vcc_settle to 50
instead?
> skt->ops->get_status(skt, &status);
> if (!(status & SS_POWERON)) {
> cs_err(skt, "unable to apply power.\n");
> _
>
> we seem not to be giving that card enough settling time. Or is it
> a characteristic of the controller?
No, I think it's mainly the card.
> It's a module option, but google(linux "unable to apply power") gets
> 859 hits. Maybe the default is too short..
I certainly don't think it would be wrong to change it to a longer
timeout. Although I also suspect that we should in that case try to exit
early too, ie change it to something like
for (i = 0; i < vcc_settle; i++) {
msleep(10);
skt->ops->get_status(skt, &status);
if (status & SS_POWERON)
break;
}
or similar. But if changing it to 50 fixes it for you, that's probably a
good minimal change for now.
> btw, do we really need to spew all this?
>
> pccard: card ejected from slot 0
> 3c59x 0000:07:00.0: restoring config space at offset 0xf (was 0xffffffff, writing 0x50a0115)
> 3c59x 0000:07:00.0: restoring config space at offset 0xe (was 0xffffffff, writing 0x0)
...
No.
Although it's really a KERN_DEBUG(), so most people shouldn't even notice.
I do wonder why somebody does pci_restore_state() when the card is
ejected..
Oh. It's literally drivers/net/3c59x.c: vortex_remove_one(). So it's not
the PCI or Cardbus layer, it's the driver itself doing odd things. I don't
think it's worth worrying about. It's trying to restore the state and
disable the device that was unplugged and no longer exists ;)
(Which can definitely be a useful thing if the remove_one is done because
of some user-initiated driver removal. So I do understand why the driver
has that code, it just doesn't make sense when the removal is due to the
hardware itself going away).
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists