| 
									
										
										
										
											2009-03-04 21:05:42 +09:00
										 |  |  | /******************************************************************************
 | 
					
						
							|  |  |  |  * Copyright (c) 2008 Isaku Yamahata <yamahata at valinux co jp> | 
					
						
							|  |  |  |  *                    VA Linux Systems Japan K.K. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or modify | 
					
						
							|  |  |  |  * it under the terms of the GNU General Public License as published by | 
					
						
							|  |  |  |  * the Free Software Foundation; either version 2 of the License, or | 
					
						
							|  |  |  |  * (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |  * along with this program; if not, write to the Free Software | 
					
						
							|  |  |  |  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <linux/bug.h>
 | 
					
						
							| 
									
										
										
											
												[IA64] Fix build error in paravirt_patchlist.c
Andrew cleaned up some #include tangles in:
commit 0d9c25dde878a636ee9a9b53923569171bf9a55b
  headers: move module_bug_finalize()/module_bug_cleanup() definitions into module.h
which resulted in this build error for ia64:
  CC      arch/ia64/kernel/paravirt_patchlist.o
arch/ia64/kernel/paravirt_patchlist.c:43: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__initdata'
arch/ia64/kernel/paravirt_patchlist.c:54: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'paravirt_get_gate_patchlist'
arch/ia64/kernel/paravirt_patchlist.c:76: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'paravirt_get_gate_section'
make[1]: *** [arch/ia64/kernel/paravirt_patchlist.o] Error 1
The problem was that paravirt_patchlist.c was relying on some of the
nested includes (specifically that linux/bug.h included linux/module.h
Signed-off-by: Jes Sorensen <jes@sgi.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
											
										 
											2009-06-17 09:04:40 -07:00
										 |  |  | #include <linux/init.h>
 | 
					
						
							|  |  |  | #include <linux/kernel.h>
 | 
					
						
							| 
									
										
										
										
											2009-03-04 21:05:42 +09:00
										 |  |  | #include <asm/paravirt.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define DECLARE(name)						\
 | 
					
						
							|  |  |  | 	extern unsigned long					\ | 
					
						
							|  |  |  | 		__ia64_native_start_gate_##name##_patchlist[];	\ | 
					
						
							|  |  |  | 	extern unsigned long					\ | 
					
						
							|  |  |  | 		__ia64_native_end_gate_##name##_patchlist[] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | DECLARE(fsyscall); | 
					
						
							|  |  |  | DECLARE(brl_fsys_bubble_down); | 
					
						
							|  |  |  | DECLARE(vtop); | 
					
						
							|  |  |  | DECLARE(mckinley_e9); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | extern unsigned long __start_gate_section[]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define ASSIGN(name)							    \
 | 
					
						
							|  |  |  | 	.start_##name##_patchlist =					    \ | 
					
						
							|  |  |  | 		(unsigned long)__ia64_native_start_gate_##name##_patchlist, \ | 
					
						
							|  |  |  | 	.end_##name##_patchlist =					    \ | 
					
						
							|  |  |  | 		(unsigned long)__ia64_native_end_gate_##name##_patchlist | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct pv_patchdata pv_patchdata __initdata = { | 
					
						
							|  |  |  | 	ASSIGN(fsyscall), | 
					
						
							|  |  |  | 	ASSIGN(brl_fsys_bubble_down), | 
					
						
							|  |  |  | 	ASSIGN(vtop), | 
					
						
							|  |  |  | 	ASSIGN(mckinley_e9), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	.gate_section = (void*)__start_gate_section, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | unsigned long __init | 
					
						
							|  |  |  | paravirt_get_gate_patchlist(enum pv_gate_patchlist type) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define CASE(NAME, name)					\
 | 
					
						
							|  |  |  | 	case PV_GATE_START_##NAME:				\ | 
					
						
							|  |  |  | 		return pv_patchdata.start_##name##_patchlist;	\ | 
					
						
							|  |  |  | 	case PV_GATE_END_##NAME:				\ | 
					
						
							|  |  |  | 		return pv_patchdata.end_##name##_patchlist;	\ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	switch (type) { | 
					
						
							|  |  |  | 		CASE(FSYSCALL, fsyscall); | 
					
						
							|  |  |  | 		CASE(BRL_FSYS_BUBBLE_DOWN, brl_fsys_bubble_down); | 
					
						
							|  |  |  | 		CASE(VTOP, vtop); | 
					
						
							|  |  |  | 		CASE(MCKINLEY_E9, mckinley_e9); | 
					
						
							|  |  |  | 	default: | 
					
						
							|  |  |  | 		BUG(); | 
					
						
							|  |  |  | 		break; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void * __init | 
					
						
							|  |  |  | paravirt_get_gate_section(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return pv_patchdata.gate_section; | 
					
						
							|  |  |  | } |