aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaku Izumi <izumi.taku@jp.fujitsu.com>2008-10-17 00:51:53 -0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2008-10-22 19:42:34 -0400
commitab20440c376ff0454cb93904a888212d874fbb6b (patch)
tree9fa9576287106ce99b582a89755f2ae627af2765
parentadf411b819adc9fa96e9b3e638c7480d5e71d270 (diff)
ACPI/PCI: Fix return value of acpi_cuery_osc()
If acpi_query_osc() returns other than AE_OK, __pci_osc_support_set() stops scanning ACPI objects to evaluate _OSC. This prevents subsequent _OSCs from being evaluated if some of root bridge doesn't have _OSC, for example. So acpi_query_osc() should return always AE_OK to evaluate all _OSC. Signed-off-by: Kenji Kaneshige <kaneshige.kenji@jp.fujitsu.com> Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-rw-r--r--drivers/pci/pci-acpi.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
index 981919d163a0..dfe7c8e1b185 100644
--- a/drivers/pci/pci-acpi.c
+++ b/drivers/pci/pci-acpi.c
@@ -149,20 +149,19 @@ static acpi_status acpi_query_osc(acpi_handle handle,
149 149
150 status = acpi_get_handle(handle, "_OSC", &tmp); 150 status = acpi_get_handle(handle, "_OSC", &tmp);
151 if (ACPI_FAILURE(status)) 151 if (ACPI_FAILURE(status))
152 return status; 152 return AE_OK;
153 153
154 mutex_lock(&pci_acpi_lock); 154 mutex_lock(&pci_acpi_lock);
155 osc_data = acpi_get_osc_data(handle); 155 osc_data = acpi_get_osc_data(handle);
156 if (!osc_data) { 156 if (!osc_data) {
157 printk(KERN_ERR "acpi osc data array is full\n"); 157 printk(KERN_ERR "acpi osc data array is full\n");
158 status = AE_ERROR;
159 goto out; 158 goto out;
160 } 159 }
161 160
162 status = __acpi_query_osc(flags, osc_data, &dummy); 161 __acpi_query_osc(flags, osc_data, &dummy);
163out: 162out:
164 mutex_unlock(&pci_acpi_lock); 163 mutex_unlock(&pci_acpi_lock);
165 return status; 164 return AE_OK;
166} 165}
167 166
168/** 167/**