Pull fluff into release branch

Conflicts:

	arch/x86_64/pci/mmconfig.c
	drivers/acpi/bay.c

Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
Len Brown
2007-02-16 22:10:32 -05:00
38 changed files with 109 additions and 128 deletions

View File

@ -169,40 +169,40 @@ void acpi_table_print_madt_entry(struct acpi_subtable_header * header)
int __init
acpi_table_parse_madt_family(char *id,
unsigned long madt_size,
acpi_table_parse_entries(char *id,
unsigned long table_size,
int entry_id,
acpi_madt_entry_handler handler,
acpi_table_entry_handler handler,
unsigned int max_entries)
{
struct acpi_table_header *madt = NULL;
struct acpi_table_header *table_header = NULL;
struct acpi_subtable_header *entry;
unsigned int count = 0;
unsigned long madt_end;
unsigned long table_end;
if (!handler)
return -EINVAL;
/* Locate the MADT (if exists). There should only be one. */
acpi_get_table(id, 0, &madt);
/* Locate the table (if exists). There should only be one. */
acpi_get_table(id, 0, &table_header);
if (!madt) {
if (!table_header) {
printk(KERN_WARNING PREFIX "%4.4s not present\n", id);
return -ENODEV;
}
madt_end = (unsigned long)madt + madt->length;
table_end = (unsigned long)table_header + table_header->length;
/* Parse all entries looking for a match. */
entry = (struct acpi_subtable_header *)
((unsigned long)madt + madt_size);
((unsigned long)table_header + table_size);
while (((unsigned long)entry) + sizeof(struct acpi_subtable_header) <
madt_end) {
table_end) {
if (entry->type == entry_id
&& (!max_entries || count++ < max_entries))
if (handler(entry, madt_end))
if (handler(entry, table_end))
return -EINVAL;
entry = (struct acpi_subtable_header *)
@ -218,13 +218,22 @@ acpi_table_parse_madt_family(char *id,
int __init
acpi_table_parse_madt(enum acpi_madt_type id,
acpi_madt_entry_handler handler, unsigned int max_entries)
acpi_table_entry_handler handler, unsigned int max_entries)
{
return acpi_table_parse_madt_family(ACPI_SIG_MADT,
return acpi_table_parse_entries(ACPI_SIG_MADT,
sizeof(struct acpi_table_madt), id,
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)
{
struct acpi_table_header *table = NULL;
@ -234,9 +243,9 @@ int __init acpi_table_parse(char *id, acpi_table_handler handler)
acpi_get_table(id, 0, &table);
if (table) {
handler(table);
return 1;
} else
return 0;
} else
return 1;
}
/*