Re: [PATCH] usbhid: Fix lockdep unannotated irqs-off warning

From: Steven Rostedt
Date: Wed Mar 02 2016 - 11:35:47 EST


On Wed, 2 Mar 2016 17:24:12 +0100
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> On Wed, Mar 02, 2016 at 04:53:36PM +0100, Sedat Dilek wrote:
> > ffffffff8110f570 <del_timer_sync>:
> > ffffffff8110f570: 55 push %rbp
> > ffffffff8110f571: 48 89 e5 mov %rsp,%rbp
> > ffffffff8110f574: 41 57 push %r15
> > ffffffff8110f576: 41 56 push %r14
> > ffffffff8110f578: 53 push %rbx
> > ffffffff8110f579: 48 83 ec 28 sub $0x28,%rsp
>
> stack offset is 0x28 bytes [*]

Actually, isn't it really 0x40 bytes? The stack pushed 3 words (8 bytes
each) before doing the subtract. 0x28 == 40 bytes, 3 * 8 = 24,
40 + 24 = 64 == 0x40.

>
> > ffffffff8110f57d: 48 89 fb mov %rdi,%rbx
> > ffffffff8110f580: e8 6b 6e 80 00 callq ffffffff819163f0 <mcount>
> > ffffffff8110f585: e8 66 6e 80 00 callq ffffffff819163f0 <mcount>
> > ffffffff8110f58a: e8 61 6e 80 00 callq ffffffff819163f0 <mcount>
> > ffffffff8110f58f: e8 5c 6e 80 00 callq ffffffff819163f0 <mcount>
>
> Your compiler is on drugs!

Totally agree!


[..]

>
> > ffffffff8110f5fd: 4c 89 75 d0 mov %r14,-0x30(%rbp)
> > ffffffff8110f601: ff 75 d0 pushq -0x30(%rbp)
> > ffffffff8110f604: 9d popfq
>
> put r14 into -0x30(rbp) and pushes/pops that, see [*] this is 8 bytes
> over stack ?!

But from rbp, the stack is 0x40 bytes. This may be fine.

-- Steve