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)
cpu_init();
smp_callin();
while (!cpu_isset(smp_processor_id(), smp_commenced_mask))
rep_nop();
cpu_relax();
smp_online();
......@@ -482,7 +482,7 @@ static void __init smp_callin(void)
/* Has the boot CPU finished it's STARTUP sequence ? */
if (cpu_isset(cpu_id, cpu_callout_map))
break;
rep_nop();
cpu_relax();
}
if (!time_before(jiffies, timeout)) {
......
#ifndef _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
* License. See the file "COPYING" in the main directory of this archive
* 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/config.h>
#include <asm/cache.h>
#include <asm/ptrace.h> /* pt_regs */
#include <asm/cachectl.h>
/*
* Default implementation of macro that returns current
* instruction pointer ("program counter").
......@@ -53,7 +48,7 @@ extern struct cpuinfo_m32r boot_cpu_data;
extern struct cpuinfo_m32r cpu_data[];
#define current_cpu_data cpu_data[smp_processor_id()]
#else
#define cpu_data &boot_cpu_data
#define cpu_data (&boot_cpu_data)
#define current_cpu_data boot_cpu_data
#endif
......@@ -141,17 +136,6 @@ unsigned long get_wchan(struct task_struct *p);
#define THREAD_SIZE (2*PAGE_SIZE)
/* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
static __inline__ void rep_nop(void)
{
__asm__ __volatile__(
"nop \n\t"
"nop \n\t"
:
:
: "memory");
}
#define cpu_relax() rep_nop()
#define cpu_relax() barrier()
#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