Re: [PATCH 2/2] Fix console handling during suspend/resume

Linus Torvalds
2006-06-29T00:48:36Z

On Wed, 28 Jun 2006, Greg KH wrote:
>
> I now have a patch in my quilt tree for the network core that moves all
> network devices to be class_devices. With this (2 small driver core
> patches are needed to get this to build and work properly, look in the
> tree if you're really interested), when we walk the devices, the
> subsystem devices get called on the list before the "real" devices (that
> are attached to a bus.)
>
> For example, on my box, I now have:
> $ tree /sys/class/net/
> /sys/class/net/
> |-- eth0 -> ../../devices/pci0000:00/0000:00:02.0/0000:01:00.2/0000:03:0e.0/eth0
> |-- eth1 -> ../../devices/pci0000:00/0000:00:02.0/0000:01:00.2/0000:03:0c.0/eth1
> `-- lo -> ../../devices/lo

Ok, that looks good.

> Now the network subsystem can stop the queue, or do whatever it wanted
> to do with no extra headaches or special cases by the driver core at
> all.
>
> Which is what I think you are really wanting here, subsystems doing the
> work for their class of devices, which makes it much easier on all of
> the individual drivers.

Yes, that is definitely going to help.

I still want the individual drivers be able to split up their high-level
functions ("device discovery/recovery behind this bus device") from their
low-level functions ("power on the bus device"), exactly so that we can
suspend/resume the actual motherboard devices as a totally separate pass
of suspending/resuming the "rest of the system".

That's what the dpm_active <-> dpm_off <-> dpm_off_irq transitions give
us in my patch - clearly separate stages for what happens "early", and
what happens "late".

Linus