Hi, Here is a new version of the irq_work / smp_call_function integration / cleanup.
I'm thinking the first (5?) patches should be ready to go in, all the dependents (i915, block) landed this merge window. The rest attempts to 'fix' smp_call_function_single_async() while migrating a number of performance sensitive users over to a new (fairly crap by requirements) interface. But by getting 'rid' of those smp_call_function_single_async() users, we can 'fix' that interface. I'm still not entirely happy with the end result. Suggestions?

