david, just keep in mind you can use coccinnelle to 'strip mine' data structures and turn struct members to global variables (as well as all uses), change function parameters, delete functions you don't want, etc. Do the maximum possible amount of changing with coccinnelle and you have a more repeatable process.
You can see all my scripts in i915tool, and they could do much more.
ron