 69c60c88ee
			
		
	
	
	69c60c88ee
	
	
	
		
			
			These files were implicitly getting EXPORT_SYMBOL via device.h which was including module.h, but that will be fixed up shortly. By fixing these now, we can avoid seeing things like: arch/x86/kernel/rtc.c:29: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’ arch/x86/kernel/pci-dma.c:20: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’ arch/x86/kernel/e820.c:69: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL_GPL’ [ with input from Randy Dunlap <rdunlap@xenotime.net> and also from Stephen Rothwell <sfr@canb.auug.org.au> ] Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
		
			
				
	
	
		
			83 lines
		
	
	
	
		
			2.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			2.2 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Populate sysfs with topology information
 | |
|  *
 | |
|  * Written by: Matthew Dobson, IBM Corporation
 | |
|  * Original Code: Paul Dorwin, IBM Corporation, Patrick Mochel, OSDL
 | |
|  *
 | |
|  * Copyright (C) 2002, IBM Corp.
 | |
|  *
 | |
|  * All rights reserved.
 | |
|  *
 | |
|  * 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, GOOD TITLE or
 | |
|  * NON INFRINGEMENT.  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., 675 Mass Ave, Cambridge, MA 02139, USA.
 | |
|  *
 | |
|  * Send feedback to <colpatch@us.ibm.com>
 | |
|  */
 | |
| #include <linux/nodemask.h>
 | |
| #include <linux/export.h>
 | |
| #include <linux/mmzone.h>
 | |
| #include <linux/init.h>
 | |
| #include <linux/smp.h>
 | |
| #include <asm/cpu.h>
 | |
| 
 | |
| static DEFINE_PER_CPU(struct x86_cpu, cpu_devices);
 | |
| 
 | |
| #ifdef CONFIG_HOTPLUG_CPU
 | |
| int __ref arch_register_cpu(int num)
 | |
| {
 | |
| 	/*
 | |
| 	 * CPU0 cannot be offlined due to several
 | |
| 	 * restrictions and assumptions in kernel. This basically
 | |
| 	 * doesn't add a control file, one cannot attempt to offline
 | |
| 	 * BSP.
 | |
| 	 *
 | |
| 	 * Also certain PCI quirks require not to enable hotplug control
 | |
| 	 * for all CPU's.
 | |
| 	 */
 | |
| 	if (num)
 | |
| 		per_cpu(cpu_devices, num).cpu.hotpluggable = 1;
 | |
| 
 | |
| 	return register_cpu(&per_cpu(cpu_devices, num).cpu, num);
 | |
| }
 | |
| EXPORT_SYMBOL(arch_register_cpu);
 | |
| 
 | |
| void arch_unregister_cpu(int num)
 | |
| {
 | |
| 	unregister_cpu(&per_cpu(cpu_devices, num).cpu);
 | |
| }
 | |
| EXPORT_SYMBOL(arch_unregister_cpu);
 | |
| #else /* CONFIG_HOTPLUG_CPU */
 | |
| 
 | |
| static int __init arch_register_cpu(int num)
 | |
| {
 | |
| 	return register_cpu(&per_cpu(cpu_devices, num).cpu, num);
 | |
| }
 | |
| #endif /* CONFIG_HOTPLUG_CPU */
 | |
| 
 | |
| static int __init topology_init(void)
 | |
| {
 | |
| 	int i;
 | |
| 
 | |
| #ifdef CONFIG_NUMA
 | |
| 	for_each_online_node(i)
 | |
| 		register_one_node(i);
 | |
| #endif
 | |
| 
 | |
| 	for_each_present_cpu(i)
 | |
| 		arch_register_cpu(i);
 | |
| 
 | |
| 	return 0;
 | |
| }
 | |
| subsys_initcall(topology_init);
 |