summaryrefslogtreecommitdiffstats
path: root/drivers/ide
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-03-24 23:22:41 +0100
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-03-24 23:22:41 +0100
commit8b803bd184e3f6892284d4b50801b9ec85cd9b96 (patch)
treec7727ccfeba7e187aeca3ccdc8049269d368e564 /drivers/ide
parentide: add ide_for_each_present_dev() iterator (diff)
downloadlinux-8b803bd184e3f6892284d4b50801b9ec85cd9b96.tar.xz
linux-8b803bd184e3f6892284d4b50801b9ec85cd9b96.zip
ide: sanitize ACPI initialization
* ide_acpi_init() -> ide_acpi_init_port() * ide_acpi_blacklist() -> ide_acpi_init() * Call ide_acpi_init() only once (do it during IDE core initialization) and cleanup the function accordingly. Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide')
-rw-r--r--drivers/ide/ide-acpi.c12
-rw-r--r--drivers/ide/ide-probe.c2
-rw-r--r--drivers/ide/ide.c2
3 files changed, 6 insertions, 10 deletions
diff --git a/drivers/ide/ide-acpi.c b/drivers/ide/ide-acpi.c
index 8d6d31fcbfba..ba5932d7b1bb 100644
--- a/drivers/ide/ide-acpi.c
+++ b/drivers/ide/ide-acpi.c
@@ -89,12 +89,8 @@ static const struct dmi_system_id ide_acpi_dmi_table[] = {
{ } /* terminate list */
};
-static int ide_acpi_blacklist(void)
+int ide_acpi_init(void)
{
- static int done;
- if (done)
- return 0;
- done = 1;
dmi_check_system(ide_acpi_dmi_table);
return 0;
}
@@ -624,7 +620,7 @@ void ide_acpi_set_state(ide_hwif_t *hwif, int on)
}
/**
- * ide_acpi_init - initialize the ACPI link for an IDE interface
+ * ide_acpi_init_port - initialize the ACPI link for an IDE interface
* @hwif: target IDE interface (channel)
*
* The ACPI spec is not quite clear when the drive identify buffer
@@ -634,10 +630,8 @@ void ide_acpi_set_state(ide_hwif_t *hwif, int on)
* So we get the information during startup; but this means that
* any changes during run-time will be lost after resume.
*/
-void ide_acpi_init(ide_hwif_t *hwif)
+void ide_acpi_init_port(ide_hwif_t *hwif)
{
- ide_acpi_blacklist();
-
hwif->acpidata = kzalloc(sizeof(struct ide_acpi_hwif_link), GFP_KERNEL);
if (!hwif->acpidata)
return;
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index eb0a38cd83ce..a51ad2bd62b4 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -1543,7 +1543,7 @@ int ide_host_register(struct ide_host *host, const struct ide_port_info *d,
j++;
- ide_acpi_init(hwif);
+ ide_acpi_init_port(hwif);
if (hwif->present)
ide_acpi_port_init_devices(hwif);
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 0920e3b0c962..c779aa24dbe6 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -527,6 +527,8 @@ static int __init ide_init(void)
goto out_port_class;
}
+ ide_acpi_init();
+
proc_ide_create();
return 0;