From: Rommer <rommer@active.by>
To: jgarzik@pobox.com
Cc: linux-ide@vger.kernel.org
Subject: sata_sil.c bugfix
Date: Sat, 23 Apr 2005 02:12:19 +0300 [thread overview]
Message-ID: <426984D3.3080204@active.by> (raw)
Hello,
I have some troubles with my Adapdec AAC-1210SA;
Configuration:
Adaptec AAC-1210SA SATA controller,
2 HDD Seagate Barracuda 7 120G (ST3120827AS)
Fedora Core 3, kernel 2.6.11.7 without any patches
During about month all works fine, but now I created Software RAID1:
md0 (sd[ab]1) - /boot, md1 (sd[ab]2) - /
When I ran
mkadm /dev/md1 --fail /dev/sda3
mkadm /dev/md1 --remove /dev/sda3
all was ok, but after
mkadm /dev/md1 --add /dev/sda3
(when /dev/sda3 adding to /dev/md1 at speed ~ 50-60 Mb/sec)
I got these errors:
ata1: status=0x51 { DriveReady SeekComplete Error }
ata1: error=0x04 { DriveStatusError }
and sometimes also
ata1: command 0x35 timeout, stat 0xd9 host_stat 0x1
ata1: status=0xd9 { Busy }
Current sda: sense key Recovered Error
ASC=86 ASCQ=42
ATA: abnormal status 0xD9 on port 0x4281A087
ATA: abnormal status 0xD9 on port 0x4281A087
ATA: abnormal status 0xD9 on port 0x4281A087
...
But sda3 works fine, because
mke2fs -j /dev/sda3
e2fsck -cv /dev/sda3
reported no bad sectors
When I remove sdb3 from md1, and after add it to md1, I have the same errors
for ata2 or sdb.
I found in sata_sil.c code:
/* TODO firmware versions should be added - eric */
struct sil_drivelist {
const char * product;
unsigned int quirk;
} sil_blacklist [] = {
{ "ST320012AS", SIL_QUIRK_MOD15WRITE },
{ "ST330013AS", SIL_QUIRK_MOD15WRITE },
{ "ST340017AS", SIL_QUIRK_MOD15WRITE },
{ "ST360015AS", SIL_QUIRK_MOD15WRITE },
{ "ST380013AS", SIL_QUIRK_MOD15WRITE },
{ "ST380023AS", SIL_QUIRK_MOD15WRITE },
{ "ST3120023AS", SIL_QUIRK_MOD15WRITE },
{ "ST3160023AS", SIL_QUIRK_MOD15WRITE },
{ "ST3120026AS", SIL_QUIRK_MOD15WRITE },
{ "ST3200822AS", SIL_QUIRK_MOD15WRITE },
{ "ST340014ASL", SIL_QUIRK_MOD15WRITE },
{ "ST360014ASL", SIL_QUIRK_MOD15WRITE },
{ "ST380011ASL", SIL_QUIRK_MOD15WRITE },
{ "ST3120022ASL", SIL_QUIRK_MOD15WRITE },
{ "ST3160021ASL", SIL_QUIRK_MOD15WRITE },
{ "Maxtor 4D060H3", SIL_QUIRK_UDMA5MAX },
{ }
};
I added my ST3120827AS as { "ST3120827AS", SIL_QUIRK_MOD15WRITE },
rebuilt kernel and made reboot.
With new kernel raid1 reconstruction works at speed ~ 15-20 Mb/sec with load
average ~2, but without errors. May be ST3120827AS must be blacklisted too?
Also I found this code in siimage.c (old driver for AAC-1210SA):
static int is_dev_seagate_sata(ide_drive_t *drive)
{
const char *s = &drive->id->model[0];
unsigned len;
if (!drive->present)
return 0;
len = strnlen(s, sizeof(drive->id->model));
if ((len > 4) && (!memcmp(s, "ST", 2))) {
if ((!memcmp(s + len - 2, "AS", 2)) ||
(!memcmp(s + len - 3, "ASL", 3))) {
printk(KERN_INFO "%s: applying pessimistic Seagate "
"errata fix\n", drive->name);
return 1;
}
}
return 0;
}
May be all Seagate SATA hard drives must be blacklisted in sata_sil.c ?
--
Roman Shishnev,
Active.BY support
----------------------------------
http://www.active.by/
phone +375(29)7785132, ICQ: 372800
reply other threads:[~2005-04-22 23:11 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=426984D3.3080204@active.by \
--to=rommer@active.by \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.