PPC64: EEH Recovery (Revised)
Milton Miller
miltonm at bga.com
Fri Dec 3 16:46:24 EST 2004
Well, I was going to suggest you allocate the bars in the cnode that
you use to save the device tree
with, in the function eeh_save_bars. Then I realized that
eeh_save_bars doesn't do anything
except walk the tree allocating nodes, finding matching pci devices to
read and copy pci_dev->
is_bridge. The actuall save was done at eeh_late_init. Which means
eeh_save_bars is misnamed.
You walk the list in recursive decent, creating a node each time you
go. You restore the
bars in the same recursive decent order, only instead of walking
device_node you walk the
tree that you saved. Why can you not just alloate a struct list and a
"is_bridge" field,
do the same walk adding to the end of the list in save then restore by
walking the list
forwards with list_for_each_safe ? See, the restore code just became
linear.
milton
More information about the Linuxppc64-dev
mailing list