[ltp] head unload on a Seagate Momentus 5400.4

Mircea Gherzan linux-thinkpad@linux-thinkpad.org
Fri, 30 Jan 2009 02:37:55 +0200


Hi,

After double checking with a Vista installation that the hard drive on
my ThinkPad actually has HDAPS working, I verified again the CFSSE word
reported by the drive to the kernel. It is still 4000 in hex, so no
UNLOAD FEATURE according to the ATA spec.

However, reading and writing to /sys/block/sda/device/undload_heads
DOES NO generate an error! Even more, writing an integer value make the
drive park its heads (I can hear the sound), and reading the value
shortly afterwards behaves as specified in the documentation.

1. In /etc/default/hdapsd if have: FORCEENABLE="no"
2. Even more. I've added a printk() to the ata_scsi_park_store() call,
to see if there is any another process doing a force enable (i.e. echo
-1) of the feature. There is none.

The big question is: why is there no error (i.e. EOPNOTSUPP) when
reading or writing this device attribute in sysfs? Is this a kernel bug?
Might the kernel "accidentally" clear the ATA_DFLAG_NO_UNLOAD bit from
the device flags?

Regards,

-- 
Mircea