Commit a6771dce authored by Hirokazu Takata's avatar Hirokazu Takata Committed by Linus Torvalds

[PATCH] m32r: remove rep_nop()

Remove rep_nop() from include/asm-m32r/processor.h, because REP NOP (PAUSE)
is a x86 specific instuction.

Instead of rep_nop(), barrier() should be used for cpu_relax()
as well as other architecuture.

	* include/asm-m32r/processor.h:
	- Change not to include "cachectl.h".
	- Remove rep_nop() and redefine cpu_relax() as barrier().

	* arch/m32r/kernel/smpboot.h:
	- Use cpu_relax() instead of rep_nop().
Signed-off-by: default avatarHirokazu Takata <takata@linux-m32r.org>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 593acef8
...@@ -433,7 +433,7 @@ int __init start_secondary(void *unused) ...@@ -433,7 +433,7 @@ int __init start_secondary(void *unused)
cpu_init(); cpu_init();
smp_callin(); smp_callin();
while (!cpu_isset(smp_processor_id(), smp_commenced_mask)) while (!cpu_isset(smp_processor_id(), smp_commenced_mask))
rep_nop(); cpu_relax();
smp_online(); smp_online();
...@@ -482,7 +482,7 @@ static void __init smp_callin(void) ...@@ -482,7 +482,7 @@ static void __init smp_callin(void)
/* Has the boot CPU finished it's STARTUP sequence ? */ /* Has the boot CPU finished it's STARTUP sequence ? */
if (cpu_isset(cpu_id, cpu_callout_map)) if (cpu_isset(cpu_id, cpu_callout_map))
break; break;
rep_nop(); cpu_relax();
} }
if (!time_before(jiffies, timeout)) { if (!time_before(jiffies, timeout)) {
......
#ifndef _ASM_M32R_PROCESSOR_H #ifndef _ASM_M32R_PROCESSOR_H
#define _ASM_M32R_PROCESSOR_H #define _ASM_M32R_PROCESSOR_H
/* $Id$ */
/* /*
* include/asm-m32r/processor.h
*
* This file is subject to the terms and conditions of the GNU General Public * This file is subject to the terms and conditions of the GNU General Public
* License. See the file "COPYING" in the main directory of this archive * License. See the file "COPYING" in the main directory of this archive
* for more details. * for more details.
* *
* Copyright (C) 2001 by Hiroyuki Kondo, Hirokazu Takata, and Hitoshi Yamamoto * Copyright (C) 1994 Linus Torvalds
* Copyright (C) 2001 Hiroyuki Kondo, Hirokazu Takata, and Hitoshi Yamamoto
* Copyright (C) 2004 Hirokazu Takata <takata at linux-m32r.org>
*/ */
/*
* include/asm-m32r/processor.h
*
* Copyright (C) 1994 Linus Torvalds
*/
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/config.h> #include <linux/config.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/ptrace.h> /* pt_regs */ #include <asm/ptrace.h> /* pt_regs */
#include <asm/cachectl.h>
/* /*
* Default implementation of macro that returns current * Default implementation of macro that returns current
* instruction pointer ("program counter"). * instruction pointer ("program counter").
...@@ -53,7 +48,7 @@ extern struct cpuinfo_m32r boot_cpu_data; ...@@ -53,7 +48,7 @@ extern struct cpuinfo_m32r boot_cpu_data;
extern struct cpuinfo_m32r cpu_data[]; extern struct cpuinfo_m32r cpu_data[];
#define current_cpu_data cpu_data[smp_processor_id()] #define current_cpu_data cpu_data[smp_processor_id()]
#else #else
#define cpu_data &boot_cpu_data #define cpu_data (&boot_cpu_data)
#define current_cpu_data boot_cpu_data #define current_cpu_data boot_cpu_data
#endif #endif
...@@ -141,17 +136,6 @@ unsigned long get_wchan(struct task_struct *p); ...@@ -141,17 +136,6 @@ unsigned long get_wchan(struct task_struct *p);
#define THREAD_SIZE (2*PAGE_SIZE) #define THREAD_SIZE (2*PAGE_SIZE)
/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */ #define cpu_relax() barrier()
static __inline__ void rep_nop(void)
{
__asm__ __volatile__(
"nop \n\t"
"nop \n\t"
:
:
: "memory");
}
#define cpu_relax() rep_nop()
#endif /* _ASM_M32R_PROCESSOR_H */ #endif /* _ASM_M32R_PROCESSOR_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment