On Mon, 7 Mar 2016, Alan Stern wrote:

> >      319:       9c                      pushfq
> >      31a:       41 5c                   pop    %r12
> >      31c:       48 89 df                mov    %rbx,%rdi
> >      31f:       e8 00 00 00 00          callq  324 <usbhid_close+0x44>
> >      324:       41 54                   push   %r12
> >      326:       9d                      popfq
> 
> spin_unlock_irq(&usbhid->lock); while attempting to preserve the Z
> flag.  The problem is that this code sequence will also preserve the
> Interrupt Flag!

You are right Alan, thanks a lot, for reason I could not understand I 
completely missed the pushf/popf last time I was looking at the generated 
assembly!

OK, a little bit of googling revealed related discussion on LLVM 
mailinglist:

        http://lists.llvm.org/pipermail/llvm-dev/2015-July/088780.html

Seems like it has been reported already, but noone dared to fix it yet. 

This basically makes LLVM unusable for compiling the kernel.

-- 
Jiri Kosina
SUSE Labs

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to