forked from mirrors/linux
		
	ACPI: acpi_table_parse() now returns success/fail, not count
Returning count for tables that are supposed to be unique was useless and confusing. Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
		
							parent
							
								
									7cda93e008
								
							
						
					
					
						commit
						7f8f97c3cc
					
				
					 5 changed files with 21 additions and 11 deletions
				
			
		|  | @ -865,10 +865,9 @@ static inline int acpi_parse_madt_ioapic_entries(void) | ||||||
| static void __init acpi_process_madt(void) | static void __init acpi_process_madt(void) | ||||||
| { | { | ||||||
| #ifdef CONFIG_X86_LOCAL_APIC | #ifdef CONFIG_X86_LOCAL_APIC | ||||||
| 	int count, error; | 	int error; | ||||||
| 
 | 
 | ||||||
| 	count = acpi_table_parse(ACPI_SIG_MADT, acpi_parse_madt); | 	if (!acpi_table_parse(ACPI_SIG_MADT, acpi_parse_madt)) { | ||||||
| 	if (count >= 1) { |  | ||||||
| 
 | 
 | ||||||
| 		/*
 | 		/*
 | ||||||
| 		 * Parse MADT LAPIC entries | 		 * Parse MADT LAPIC entries | ||||||
|  |  | ||||||
|  | @ -53,7 +53,9 @@ static void nvidia_bugs(void) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	nvidia_hpet_detected = 0; | 	nvidia_hpet_detected = 0; | ||||||
| 	acpi_table_parse(ACPI_SIG_HPET, nvidia_hpet_check); | 	if (acpi_table_parse(ACPI_SIG_HPET, nvidia_hpet_check)) | ||||||
|  | 		return; | ||||||
|  | 
 | ||||||
| 	if (nvidia_hpet_detected == 0) { | 	if (nvidia_hpet_detected == 0) { | ||||||
| 		acpi_skip_timer_override = 1; | 		acpi_skip_timer_override = 1; | ||||||
| 		printk(KERN_INFO "Nvidia board " | 		printk(KERN_INFO "Nvidia board " | ||||||
|  |  | ||||||
|  | @ -170,7 +170,9 @@ void __init pci_mmcfg_init(int type) | ||||||
| 	if ((pci_probe & PCI_PROBE_MMCONF) == 0) | 	if ((pci_probe & PCI_PROBE_MMCONF) == 0) | ||||||
| 		return; | 		return; | ||||||
| 
 | 
 | ||||||
| 	acpi_table_parse(ACPI_SIG_MCFG, acpi_parse_mcfg); | 	if (acpi_table_parse(ACPI_SIG_MCFG, acpi_parse_mcfg)) | ||||||
|  | 		return; | ||||||
|  | 
 | ||||||
| 	if ((pci_mmcfg_config_num == 0) || | 	if ((pci_mmcfg_config_num == 0) || | ||||||
| 	    (pci_mmcfg_config == NULL) || | 	    (pci_mmcfg_config == NULL) || | ||||||
| 	    (pci_mmcfg_config[0].address == 0)) | 	    (pci_mmcfg_config[0].address == 0)) | ||||||
|  |  | ||||||
|  | @ -220,9 +220,7 @@ int __init acpi_numa_init(void) | ||||||
| 	int result; | 	int result; | ||||||
| 
 | 
 | ||||||
| 	/* SRAT: Static Resource Affinity Table */ | 	/* SRAT: Static Resource Affinity Table */ | ||||||
| 	result = acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat); | 	if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { | ||||||
| 
 |  | ||||||
| 	if (result > 0) { |  | ||||||
| 		result = acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY, | 		result = acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY, | ||||||
| 					       acpi_parse_processor_affinity, | 					       acpi_parse_processor_affinity, | ||||||
| 					       NR_CPUS); | 					       NR_CPUS); | ||||||
|  | @ -230,7 +228,7 @@ int __init acpi_numa_init(void) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/* SLIT: System Locality Information Table */ | 	/* SLIT: System Locality Information Table */ | ||||||
| 	result = acpi_table_parse(ACPI_SIG_SLIT, acpi_parse_slit); | 	acpi_table_parse(ACPI_SIG_SLIT, acpi_parse_slit); | ||||||
| 
 | 
 | ||||||
| 	acpi_numa_arch_fixup(); | 	acpi_numa_arch_fixup(); | ||||||
| 	return 0; | 	return 0; | ||||||
|  |  | ||||||
|  | @ -226,6 +226,15 @@ acpi_table_parse_madt(enum acpi_madt_type id, | ||||||
| 					    handler, max_entries); | 					    handler, max_entries); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | /**
 | ||||||
|  |  * acpi_table_parse - find table with @id, run @handler on it | ||||||
|  |  * | ||||||
|  |  * @id: table id to find | ||||||
|  |  * @handler: handler to run | ||||||
|  |  * | ||||||
|  |  * Scan the ACPI System Descriptor Table (STD) for a table matching @id, | ||||||
|  |  * run @handler on it.  Return 0 if table found, return on if not. | ||||||
|  |  */ | ||||||
| int __init acpi_table_parse(char *id, acpi_table_handler handler) | int __init acpi_table_parse(char *id, acpi_table_handler handler) | ||||||
| { | { | ||||||
| 	struct acpi_table_header *table = NULL; | 	struct acpi_table_header *table = NULL; | ||||||
|  | @ -235,9 +244,9 @@ int __init acpi_table_parse(char *id, acpi_table_handler handler) | ||||||
| 	acpi_get_table(id, 0, &table); | 	acpi_get_table(id, 0, &table); | ||||||
| 	if (table) { | 	if (table) { | ||||||
| 		handler(table); | 		handler(table); | ||||||
| 		return 1; |  | ||||||
| 	} else |  | ||||||
| 		return 0; | 		return 0; | ||||||
|  | 	} else | ||||||
|  | 		return 1; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Len Brown
						Len Brown