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/

Reply via email to