Re: [BUG] 2.6.14-rc5-mm1 build fails for non SMP systems

From: Andrew Morton
Date: Mon Oct 24 2005 - 20:52:02 EST


Peter Williams <pwil3058@xxxxxxxxxxxxxx> wrote:
>
> Further investigation reveals a number of similar warnings for
> __raw_write_unlock() and the following failure in the ipv4 code:

yup. Please use this:


From: Miklos Szeredi <miklos@xxxxxxxxxx>

The "inline spin_unlock..." patches don't compile on:

CONFIG_PREEMPT=n
CONFIG_DEBUG_SPINLOCK=n
CONFIG_SMP=n

Signed-off-by: Miklos Szeredi <miklos@xxxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

include/linux/spinlock.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN include/linux/spinlock.h~x86-inline-spin_unlock-if-not-config_debug_spinlock-and-not-config_preempt-fix include/linux/spinlock.h
--- 25/include/linux/spinlock.h~x86-inline-spin_unlock-if-not-config_debug_spinlock-and-not-config_preempt-fix Mon Oct 24 15:44:38 2005
+++ 25-akpm/include/linux/spinlock.h Mon Oct 24 15:44:38 2005
@@ -174,7 +174,7 @@ extern int __lockfunc generic__raw_read_
/*
* We inline the unlock functions in the nondebug case:
*/
-#if defined(CONFIG_DEBUG_SPINLOCK) || defined(CONFIG_PREEMPT)
+#if defined(CONFIG_DEBUG_SPINLOCK) || defined(CONFIG_PREEMPT) || !defined(CONFIG_SMP)
# define spin_unlock(lock) _spin_unlock(lock)
# define read_unlock(lock) _read_unlock(lock)
# define write_unlock(lock) _write_unlock(lock)
@@ -184,7 +184,7 @@ extern int __lockfunc generic__raw_read_
# define write_unlock(lock) __raw_write_unlock(&(lock)->raw_lock)
#endif

-#if defined(CONFIG_DEBUG_SPINLOCK) || defined(CONFIG_PREEMPT)
+#if defined(CONFIG_DEBUG_SPINLOCK) || defined(CONFIG_PREEMPT) || !defined(CONFIG_SMP)
# define spin_unlock_irq(lock) _spin_unlock_irq(lock)
# define read_unlock_irq(lock) _read_unlock_irq(lock)
# define write_unlock_irq(lock) _write_unlock_irq(lock)
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/