Skip to contentSkip to conversation

aic94xx: disable split completion timer/setting by default

PATCH In review Alexis Bruemmer 2 participants 2 messages Jun 30, 2006 SCSI

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 aic94xx: disable split completion timer/setting by default

The aic94xx driver will lock up under heavy load with a split completion error. There is a split completion timer/setting which should be disabled by default but is not. This patch fixes this problem.

Signed-off-by Adaptec

----------

drivers/scsi/aic94xx/aic94xx_hwi.c +15 -0
Index: aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_hwi.c
===================================================================
@@ -604,11 +604,26 @@
 int asd_init_hw(struct asd_ha_struct *asd_ha)
 {
 	int err;
+	u32 v;
 
 	err = asd_init_sw(asd_ha);
 	if (err)
 		return err;
 
+	err = pci_read_config_dword(asd_ha->pcidev, PCIC_HSTPCIX_CNTRL, &v);
+	if (err) {
+		asd_printk("couldn't read PCIC_HSTPCIX_CNTRL of %s\n",
+			   pci_name(asd_ha->pcidev));
+		return err;
+	}
+	pci_write_config_dword(asd_ha->pcidev, PCIC_HSTPCIX_CNTRL,
+					v | SC_TMR_DIS);
+	if (err) {
+		asd_printk("couldn't disable split completion timer of %s\n",
+			   pci_name(asd_ha->pcidev));
+		return err;
+	}
+
 	err = asd_read_ocm(asd_ha);
 	if (err) {
 		asd_printk("couldn't read ocm(%d)\n", err);
drivers/scsi/aic94xx/aic94xx_reg_def.h +1 -0
Index: aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_reg_def.h
===================================================================
@@ -1787,6 +1787,7 @@
 #define PCIC_HSTPCIX_CNTRL	0xA0
 
 #define 	REWIND_DIS		0x0800
+#define		SC_TMR_DIS		0x04000000
 
 #define PCIC_MBAR0_MASK	0xA8
 #define		PCIC_MBAR0_SIZE_MASK 	0x1FFFE000
#1 lore raw
Quoted 6 lines · Alexis Bruemmer

The aic94xx driver will lock up under heavy load with a split completion error. There is a split completion timer/setting which should be disabled by default but is not. This patch fixes this problem.

Signed-off-by Adaptec

There are various aic94xx driver bits floating about, and I'm worried that it will stay forever outside the kernel.org tree.

Can you (a) make sure to CC [email protected] on all aic94xx patches, and (b) work with James Bottomley and the crew to get it working with the upstream tree?

Jeff