While trying to work around spurious detection retries for
non-existent devices on slave links, commit
816ab89782ac139a8b65147cca990822bb7e8675 incorrectly added link
offline check logic before ata_eh_thaw() was called. This means that
if an occupied link goes down briefly at the time that offline check
was performed, device class will be cleared to ATA_DEV_NONE and libata
wouldn't retry thus failing detection of the device.
There is a commit related to link init failures in the final karmic kernel which may be relevant. So it may be worth testing with 2.6.31-14.46:
commit e827d71dd6d39b3 e28a519cb0bace9 634d42aa7d
Author: Tejun Heo <email address hidden>
Date: Tue Oct 6 17:08:40 2009 +0900
libata: fix incorrect link online check during probe
commit 3b761d3d437cffc af160a5d37eb6b3 b186e491d5 upstream.
While trying to work around spurious detection retries for c139a8b65147cca 990822bb7e8675 incorrectly added link
non-existent devices on slave links, commit
816ab89782a
offline check logic before ata_eh_thaw() was called. This means that
if an occupied link goes down briefly at the time that offline check
was performed, device class will be cleared to ATA_DEV_NONE and libata
wouldn't retry thus failing detection of the device.