Re: laptop reboots right after hibernation

From: Tejun Heo
Date: Wed Nov 28 2007 - 08:36:00 EST


[cc'ing libata people]

Hello,

Kjartan Maraas wrote:
> Here you go. It shows the error two times and then it gets it right and
> continues to boot. No other problems arise from this that I can see.

Cool, it proves even my code works from time to time if the moon and
stars are perfectly aligned.

> ata1.00: ACPI cmd b1/c1:00:00:00:00:a0 failed (Emask=0x1 Stat=0x51 Err=0x04)

Your BIOS wants to issue DEVICE CONFIGURATION FREEZE LOCK but the device
NACKs it probably because the drive doesn't support DCO feature set.

> ata1: failed to recover some devices, retrying in 5 secs
> ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> ata1.00: ACPI cmd b1/c1:00:00:00:00:a0 failed (Emask=0x1 Stat=0x51 Err=0x04)
> ata1.00: ACPI on devcfg failed the second time, disabling (errno=-5)

libata EH gives ACPI one more chance but it fails again, so ACPI is
turned off.

> ata1.00: revalidation failed (errno=1)
> ata1: failed to recover some devices, retrying in 5 secs
> ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> ata1.00: configured for UDMA/100

Device is now configured properly.

Your BIOS is probably trying to issue DCO freeze lock to all drives. I
don't have the faintest idea why it does but it does. I think there are
several choices here.

1. Ignore device errors for _GTF commands. Report the failure with
KERN_DEBUG priority and just keep processing. ISTR there was a patch to
do this. Anyone knows what happened to it.

2. Filter out certain commands from ACPI. I definitely don't like BIOS
locking up random features via _GTF commands. It makes debugging difficult.

3. Look at opcode on failure and ignore error for certain operations.

My favorite is #2 but #1 should be fine too. Any thoughts?

Thanks.

--
tejun
-
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/