mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	The different architectures used their own (and different) declarations:
    extern __visible const void __nosave_begin, __nosave_end;
    extern const void __nosave_begin, __nosave_end;
    extern long __nosave_begin, __nosave_end;
Consolidate them using the first variant in <asm/sections.h>.
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
		
	
			
		
			
				
	
	
		
			43 lines
		
	
	
	
		
			859 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
	
		
			859 B
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Suspend support specific for mips.
 | 
						|
 *
 | 
						|
 * Licensed under the GPLv2
 | 
						|
 *
 | 
						|
 * Copyright (C) 2009 Lemote Inc.
 | 
						|
 * Author: Hu Hongbing <huhb@lemote.com>
 | 
						|
 *	   Wu Zhangjin <wuzhangjin@gmail.com>
 | 
						|
 */
 | 
						|
#include <asm/sections.h>
 | 
						|
#include <asm/fpu.h>
 | 
						|
#include <asm/dsp.h>
 | 
						|
 | 
						|
static u32 saved_status;
 | 
						|
struct pt_regs saved_regs;
 | 
						|
 | 
						|
void save_processor_state(void)
 | 
						|
{
 | 
						|
	saved_status = read_c0_status();
 | 
						|
 | 
						|
	if (is_fpu_owner())
 | 
						|
		save_fp(current);
 | 
						|
	if (cpu_has_dsp)
 | 
						|
		save_dsp(current);
 | 
						|
}
 | 
						|
 | 
						|
void restore_processor_state(void)
 | 
						|
{
 | 
						|
	write_c0_status(saved_status);
 | 
						|
 | 
						|
	if (is_fpu_owner())
 | 
						|
		restore_fp(current);
 | 
						|
	if (cpu_has_dsp)
 | 
						|
		restore_dsp(current);
 | 
						|
}
 | 
						|
 | 
						|
int pfn_is_nosave(unsigned long pfn)
 | 
						|
{
 | 
						|
	unsigned long nosave_begin_pfn = PFN_DOWN(__pa(&__nosave_begin));
 | 
						|
	unsigned long nosave_end_pfn = PFN_UP(__pa(&__nosave_end));
 | 
						|
 | 
						|
	return	(pfn >= nosave_begin_pfn) && (pfn < nosave_end_pfn);
 | 
						|
}
 |