On Wednesday 26 July 2006 19:27, Jeremy Fitzhardinge wrote: > static inline void raw_local_irq_restore(unsigned long f) > { > __asm__ __volatile__(paravirt_alt("pushl %%ecx; pushl %%edx\n\t" > "pushl %1; call *%0\n\t" > "popl %1; popl %%edx; popl %%ecx", > PARAVIRT_RESTORE_FLAGS) > : : "m" (paravirt_ops.restore_fl), "a"(f) > : "memory"); > } > > Wouldn't adding ecx/edx (and maybe eax, where it has no other use) to > the asm's clobber list be sufficient? It's even better because we currently can't annotate explicit push/pop for the dwarf2 stack unwinder, and it would cause fallbacks to the old inexact unwinder. -Andi