On Fri, May 13, 2016 at 10:03:26AM -0700, Linus Torvalds wrote: > I think your fix is wrong. Your fix adds the pointless push/pop that > doesn't help any, since you might as well just force the temporary > back to %edx. But if we do this, then everything using the slow path call_rwsem_down_write_failed et al, which then calls {save,restore}_common_regs, would have to remember to use %edx as temporary because {save,restore}_common_regs won't protect it and gcc might clobber it. OTOH, the 64-bit versions {save,restore}_common_regs don't stash away %rdx either so I guess that mechanism was supposed to not save the ABI return registers rAX and rDX. The only thing that needs to be corrected then is the misleading comment above the 32-bit version "... Save the C-clobbered registers (%eax, %edx and %ecx) .." - the 64-bit version comment is correct AFAICT. -- Regards/Gruss, Boris. SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg) -- -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html