On Fri, 25 Sep 2015, Sedat Dilek wrote: > >> $ egrep -nr 'save|restore|acquire|release' > >> objdump-Dr_kernel-workqueue_o_CLANG-3-7.txt | egrep 'irq|map' > >> 5718: 4601: R_X86_64_PC32 > >> _raw_spin_unlock_irqrestore-0x4 > >> 5766: 4699: R_X86_64_PC32 _raw_spin_lock_irqsave-0x4 > >> 6173: 4bd9: R_X86_64_PC32 _raw_spin_lock_irqsave-0x4 > >> 6265: 4d05: R_X86_64_PC32 > >> _raw_spin_unlock_irqrestore-0x4 > >> > >> ...this is what I have. > >> > >> Does that help? > > > > It doesn't. I am asking for disassembly of del_timer_sync() (that's in > > kernel/time/timer.o). > > > > See attached file.
The sequence looks correct. So I don't really see what call sequence could lead to calling flush_work() from __cancel_work_timer() with IRQs disabled (which is what your stacktrace is suggesting). The fact that this doesn't happen with GCC-compiled kernels is really suspicious. -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/