Re: [stable] pcmcia resume 60 second hang. Re: [patch 00/69] -stable review

2007-05-28 Thread Greg KH
On Mon, May 28, 2007 at 09:53:50AM -0700, Linus Torvalds wrote:
> 
> Before we suspend a device, we call the subsystem that that device has 
> been registered with. Ie, we have code like this:
> 
>   if (dev->class && dev->class->suspend)
>   error = dev->class->suspend(dev, state);
> 
> which was very much designed so that individual devices wouldn't have to 
> always know - if the upper layer devices for that class can handle these 
> things, they should.
> 
> Do people actually _do_ this, right now? No. But we do actually have the 
> infrastructure, and I think we have one or two classes that actually do 
> use it (at least the "rfkill_class" has a suspend member, dunno how well 
> this model actually works).
> 
> I think Greg had some patches to make network drivers use this, for 
> example. Network drivers right now all end up doing stuff that really 
> doesn't belong in the driver at all when they suspend, and the 
> infrastructure _should_ just do it for them (ie do all the _network_ 
> related stuff, as opposed to the actual hardware-related stuff).

Yes, I started to work on it, as it is the correct thing to do, but got
sidetracked, sorry :(

> (Examples of things that we probably _should_ do for network devices on a 
> class level:
> 
>   suspend:
>   netif_poll_disable()
>   if (netif_running(dev))
>   dev->stop(dev);
> 
>   resume:
>   if (netif_running(dev))
>   dev->start(dev);
>   netif_poll_enable(dev);
> 
> or something similar).

I'll try to hack something together later this week along this line and
see how it works...

thanks,

greg k-h
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [stable] pcmcia resume 60 second hang. Re: [patch 00/69] -stable review

2007-05-28 Thread Greg KH
On Mon, May 28, 2007 at 09:53:50AM -0700, Linus Torvalds wrote:
 
 Before we suspend a device, we call the subsystem that that device has 
 been registered with. Ie, we have code like this:
 
   if (dev-class  dev-class-suspend)
   error = dev-class-suspend(dev, state);
 
 which was very much designed so that individual devices wouldn't have to 
 always know - if the upper layer devices for that class can handle these 
 things, they should.
 
 Do people actually _do_ this, right now? No. But we do actually have the 
 infrastructure, and I think we have one or two classes that actually do 
 use it (at least the rfkill_class has a suspend member, dunno how well 
 this model actually works).
 
 I think Greg had some patches to make network drivers use this, for 
 example. Network drivers right now all end up doing stuff that really 
 doesn't belong in the driver at all when they suspend, and the 
 infrastructure _should_ just do it for them (ie do all the _network_ 
 related stuff, as opposed to the actual hardware-related stuff).

Yes, I started to work on it, as it is the correct thing to do, but got
sidetracked, sorry :(

 (Examples of things that we probably _should_ do for network devices on a 
 class level:
 
   suspend:
   netif_poll_disable()
   if (netif_running(dev))
   dev-stop(dev);
 
   resume:
   if (netif_running(dev))
   dev-start(dev);
   netif_poll_enable(dev);
 
 or something similar).

I'll try to hack something together later this week along this line and
see how it works...

thanks,

greg k-h
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/