On Fri, Jul 28, 2017 at 01:25:27PM +0200, Arnd Bergmann wrote: > Hi Josh, > > I ran into two more warnings with the two patches you sent me in private, > using gcc-7.1.1: > > lib/ubsan.o: warning: objtool: val_to_string.constprop.7()+0x97: leave > instruction with modified stack frame > .config: https://pastebin.com/dl/g04Dwdwx > > fs/fs_pin.o: warning: objtool: pin_kill()+0x139: stack state mismatch: > cfa1=7+88 cfa2=7+96 > .config: https://pastebin.com/dl/6gK6MadB > > I assume you are faster at analysing than me, so I have not tried to get > to the bottom of these at all. Let me know if you need help reproducing > the warnings. It's also possible that they are fixed by some other patches > that you already sent but that are not in linux-next yet.
Thanks. The first one is a relatively easy fix in objtool's drap register handling. I have a working patch for it. The second one is a little trickier. Instead of: lea 0x8(%rsp), %rsp GCC is doing: lea 0x8(%rsp), %rcx mov %rcx, %rsp I don't see why GCC would do that. We should probably ask some GCC folks. Objtool isn't built to track register values, so it may be a little tricky to deal with that pattern correctly if we can't convince GCC to fix it. Anyway, I'm going to be on vacation next week, but I'll investigate further when I get back. -- Josh