From: Kai G. <kai...@ui...> - 2002-03-13 20:39:44
|
On Wed, 13 Mar 2002, Patrick Mochel wrote: > I'm looking for a copy of the driver model code that had the > suspend/resume recursive walks in it. In the meantime, I'll wing it: [recursive walk skipped] There's another solution for this problem, i.e. at the time you register a device into the tree, put it into an appropriately ordered list as well. E.g. the PCI code did this (don't know if it still does), so you pci_for_each_dev() would basically just walk this list, instead of recursively walking the tree. You just have to insert the entries into the right place into the list to get depth-first or whatever ordering you would like. At some point I actually implemented this for the new driver model, if there is interest, I can certainly redo the patch. The nice thing is that all this recursive tree walking can then be replaced by some nice for_each_dev(dev, &device_root) { ...} macro. --Kai |