[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20101118094342.GA10382@elte.hu>
Date: Thu, 18 Nov 2010 10:43:42 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Randy Dunlap <randy.dunlap@...cle.com>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
Arnd Bergmann <arnd@...db.de>
Subject: [build failure] Re: BKL: remove extraneous #include <smp_lock.h>
* Linus Torvalds <torvalds@...ux-foundation.org> wrote:
> On Wed, Nov 17, 2010 at 2:05 PM, Randy Dunlap <randy.dunlap@...cle.com> wrote:
> >
> > smp_lock.h was removed from hardirq.h. smp_lock.h provided the function prototype
> > for kernel_locked(). Should source files now #include <linux/smp_lock.h> ?
> > even when not being built for SMP?
>
> Hmm. I think that part was a mistake, but I suspect the simplest fix
> for it is to simply get rid of "kernel_locked()". It has no other
> users than the hardirq.h one, so let's just move it there.
>
> Something like the attached?
>
> NOTE! The reason I _only_ take the CONFIG_LOCK_KERNEL version from
> smp_lock.h is because:
>
> - LOCK_KERNEL is defined by init/Kconfig as "(SMP || PREEMPT) && BKL"
>
> - inside hardirq.h we only use "kernel_locked()" inside "PREEMPT && BKL"
>
> - so "PREEMPT && BKL" implies "LOCK_KERNEL"
>
> - so the !LOCK_KERNEL kernel_locked() case is irrelevant.
>
> unless I did a thinko somewhere.
>
> Does this work in all configurations? TOTALLY UNTESTED! Caveat emptor.
Latest -git fails to build in some circumstances:
drivers/net/irda/sir_dev.c: In function ‘sirdev_schedule_request’:
drivers/net/irda/sir_dev.c:292:244: error: dereferencing pointer to incomplete type
Caused by these patches:
0a5b871ea4c6: hardirq.h: remove now-empty #ifdef/#endif pair
7957f0a85775: Fix build failure due to hwirq.h needing smp_lock.h
460781b54253: BKL: remove references to lock_kernel from comments
451a3c24b013: BKL: remove extraneous #include <smp_lock.h>
I've attached the .config.
It's a problem with one of these:
if (in_interrupt() || in_atomic() || irqs_disabled()) {
(Havent checked it yet what the problem is.)
Thanks,
Ingo
View attachment "config" of type "text/plain" (72848 bytes)
Powered by blists - more mailing lists