[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#353790: Progress



Hi,

I googled a bit, and that led me to what I think is the solution.

If you read the thread at
http://www.linuxquestions.org/questions/showthread.php?threadid=278603,
you find that there are known problems with Seagate and the Silicon
Image 3112a controller. 

"What you need to do is add your drive model (ex: ST3200822AS) to the
blacklist in sata_sil.c (<kernel source top
dir>/drivers/scsi/sata_sil.c). 
Look for the section with a listing of drives and MOD_15_QUIRK. Needless
to say, this involves recompiling the sata_sil kernel module."

This quirk flag is named  SIL_QUIRK_MOD15WRITE in current kernel
sources. It turns out that my disk, Seagate ST3200822AS, is already on
the blacklist with the correct quirk flag. However, the quirk fix isn't
applied for 3512 controllers, which is what I've got.

I changed sata_sil.c like this:

--- drivers/scsi/sata_sil.c.orig 2006-02-21 18:10:43.000000000 +0100
+++ drivers/scsi/sata_sil.c 2006-02-21 19:40:35.000000000 +0100
@@ -90,7 +90,7 @@
 static const struct pci_device_id sil_pci_tbl[] = {
 	{ 0x1095, 0x3112, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },
 	{ 0x1095, 0x0240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },
-	{ 0x1095, 0x3512, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112 },
+	{ 0x1095, 0x3512, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },
 	{ 0x1095, 0x3114, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3114 },
 	{ 0x1002, 0x436e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },
 	{ 0x1002, 0x4379, PCI_ANY_ID, PCI_ANY_ID, 0, 0, sil_3112_m15w },

I can see from the log that Seagate errata fix is enabled, and haven't
seen any more lockups.

This removes the last occurrence of sil_3112 in sil_pci_tbl.

Regards

Jon




Reply to: