On Mon, Mar 7, 2016 at 6:05 PM, Jiri Kosina <jikos@xxxxxxxxxx> wrote: > 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. > OK, OK. Did someone look at the next/follow-ups in this thread? For example: D6629 "x86: Emit LAHF/SAHF instead of PUSHF/POPF" [2]? - Sedat - [1] http://lists.llvm.org/pipermail/llvm-dev/2015-July/088874.html [2] http://reviews.llvm.org/D6629 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html