lkml.org 
[lkml]   [2015]   [Sep]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [Linux v4.2] workqueue: llvmlinux: acpid: BUG: sleeping function called from invalid context at kernel/workqueue.c:2680
From
On Fri, Sep 25, 2015 at 2:40 PM, Jiri Kosina <jikos@kernel.org> wrote:
> 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.
>

Hm, and now?

Shall I try a different OptLevel than default -O2?

CONFIG_LOCKDEP=n ?

- Sedat -


\
 
 \ /
  Last update: 2015-09-25 15:21    [W:0.055 / U:1.316 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site