On Mon, 7 Mar 2016 11:41:37 -0500 (EST) Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > It's hard to call this a compiler bug, but perhaps it is -- I don't > know how programmers are supposed to tell CLANG that a subroutine > modifies the Interrupt Flag in a way that the compiler shouldn't mess > up. Really! This is what's is happening?? Clang takes this: if (!--hid->open) { spin_unlock_irq(X); do_something(); } else { spin_unlock_irq(X); } Thus it's basically doing: FLAG = !--hid->open; push flags; spin_unlock_irq(X) pop flags; if (FLAG zero set) { do_something(); } OUCH!!! There's gotta be a way to turn that off, otherwise Clang can not be used to compile the kernel. Nice detective work. -- Steve -- 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