Re: [git patches] libata hibernation fixes

From: Rafael J. Wysocki
Date: Sun Jan 11 2009 - 07:45:31 EST


On Sunday 11 January 2009, Jeff Garzik wrote:
> Tejun Heo wrote:
> > Jeff Garzik wrote:
> >> This adds code at a late stage (heading towards -rc4), but does
> >> eliminate a particular spin-up overcycling behavior associated with
> >> hibernation.
> >>
> >> Rafael's extended description below... Separated to make it easier to
> >> pull-or-not, separate from the other libata fixes. There shouldn't be
> >> any merge trouble between the two.
> >>
> >> SATA: Blacklist systems that spin off disks during ACPI power off
> >
> > Jeff, I think this should be merged into 2.6.29 unless Linus still
> > objects. Linus, as discussed in this thread, this is workaround for a
> > hardware / firmware problem and vanilla windows also suffers the
> > problem, so as ugly as it is, we need this to prevent double spin down
> > on the machine.
>
> Oh, I forgot to reply to this... libata-2.6.git#hibern_regress no
> longer applies cleanly.

There is a name conflict with a change applied after this patchset had been
created. The appended patch fixes it for me.

> I'll try poking at it on Monday and get it cleaned up, as it is IMO a
> bug fix and still should go in.

Thanks!

Best,
Rafael

---
diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
index 9a81508..8f0f7c4 100644
--- a/drivers/firmware/dmi_scan.c
+++ b/drivers/firmware/dmi_scan.c
@@ -415,10 +415,10 @@ void __init dmi_scan_machine(void)
}

/**
- * dmi_match - check if dmi_system_id structure matches system DMI data
+ * dmi_matches - check if dmi_system_id structure matches system DMI data
* @dmi: pointer to the dmi_system_id structure to check
*/
-static bool dmi_match(const struct dmi_system_id *dmi)
+static bool dmi_matches(const struct dmi_system_id *dmi)
{
int i;

@@ -456,7 +456,7 @@ int dmi_check_system(const struct dmi_system_id *list)
const struct dmi_system_id *d;

for (d = list; d->ident; d++)
- if (dmi_match(d)) {
+ if (dmi_matches(d)) {
count++;
if (d->callback && d->callback(d))
break;
@@ -483,7 +483,7 @@ const struct dmi_system_id *dmi_first_match(const struct dmi_system_id *list)
const struct dmi_system_id *d;

for (d = list; d->ident; d++)
- if (dmi_match(d))
+ if (dmi_matches(d))
return d;

return NULL;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/