> call_data is neither local nor static to the function, so the modification > of the storage location would seem to be mandatory for the compiler > before the call to core_send_ipi(), Ah, yes. call_data is static but is scoped in the file, not the function. And if you add OOO to the mix, I guess that the wb() becomes necessary. > I take it that you've observed a problem with this on your system?: No. I had a bug that was freezing one of my cpus, so the other one was eventually getting stuck in an endless loop in smp_call_function(). I added a little debugging so it prink()ed when that happens, and then I got to thinking about how smp_call_function() worked... Personally, I think the kernel ought to not go into endless loops without saying something useful on the console. Hanging in smp_call_function() is always the symptom, not the bug, but still, it's nice to print what is known instead of being silent. Unfortunately, I see quite a few opportunities for endless loops in device drivers (grrr). Makes you wonder how Windows works at all with all those shitty but closed-source drivers. -- greg