On Tuesday, August 03, 2010, Kenji Kaneshige wrote:
(2010/08/03 6:53), Rafael J. Wysocki wrote:
quoted
From: Rafael J. Wysocki<redacted>
<snip.>
quoted
+ mutex_lock(&osc_lock);
+ status = acpi_pci_query_osc(root, root->osc_support_set, ctrl_mask);
+ mutex_unlock(&osc_lock);
+
One more comment here.
I think we can skip acpi_pci_query_osc() if all of queried controls are
already granted to OS. Please see below
mutex_lock(&osc_lock);
if ((root->osc_control_set & *ctrl_mask) == *ctrl_mask) {
*ctrl_mask = root->osc_control_set;
goto out;
}
status = acpi_pci_query_osc(root, root->osc_support_set, ctrl_mask);
mutex_unlock(&osc_lock);
out:
Well I guess you mean:
mutex_lock(&osc_lock);
if ((root->osc_control_set & *ctrl_mask) != *ctrl_mask)
status = acpi_pci_query_osc(root, root->osc_support_set, ctrl_mask);
mutex_unlock(&osc_lock);
Otherwise we would return with the mutex held. :-)
Thanks,
Rafael