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