[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LNX.2.00.1509251438550.30132@pobox.suse.cz>
Date: Fri, 25 Sep 2015 14:40:38 +0200 (CEST)
From: Jiri Kosina <jikos@...nel.org>
To: Sedat Dilek <sedat.dilek@...il.com>
cc: Tejun Heo <tj@...nel.org>, LKML <linux-kernel@...r.kernel.org>,
Darren Hart <dvhart@...ux.intel.com>,
Lai Jiangshan <jiangshanlai@...il.com>
Subject: Re: [Linux v4.2] workqueue: llvmlinux: acpid: BUG: sleeping function
called from invalid context at kernel/workqueue.c:2680
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 majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists