public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] aic94xx: disable split completion timer/setting by default
@ 2006-06-30 21:10 Alexis Bruemmer
  2006-06-30 21:17 ` Jeff Garzik
  0 siblings, 1 reply; 2+ messages in thread
From: Alexis Bruemmer @ 2006-06-30 21:10 UTC (permalink / raw)
  To: linux-kernel

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
Acked-by: Alexis Bruemmer <alexisb@us.ibm.com>

----------

Index: aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_hwi.c
===================================================================
--- aic94xx-sas-2.6-patched.orig/drivers/scsi/aic94xx/aic94xx_hwi.c	2006-06-23 11:12:01.000000000 -0700
+++ aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_hwi.c	2006-06-29 12:10:08.000000000 -0700
@@ -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);
Index: aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_reg_def.h
===================================================================
--- aic94xx-sas-2.6-patched.orig/drivers/scsi/aic94xx/aic94xx_reg_def.h	2006-06-23 11:12:01.000000000 -0700
+++ aic94xx-sas-2.6-patched/drivers/scsi/aic94xx/aic94xx_reg_def.h	2006-06-29 11:57:49.000000000 -0700
@@ -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



^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] aic94xx: disable split completion timer/setting by default
  2006-06-30 21:10 [PATCH] aic94xx: disable split completion timer/setting by default Alexis Bruemmer
@ 2006-06-30 21:17 ` Jeff Garzik
  0 siblings, 0 replies; 2+ messages in thread
From: Jeff Garzik @ 2006-06-30 21:17 UTC (permalink / raw)
  To: Alexis Bruemmer; +Cc: linux-kernel, SCSI Mailing List

Alexis Bruemmer wrote:
> 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
> Acked-by: Alexis Bruemmer <alexisb@us.ibm.com>

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 linux-scsi@vger.kernel.org on all aic94xx 
patches, and (b) work with James Bottomley and the crew to get it 
working with the upstream tree?

	Jeff




^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-06-30 21:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-06-30 21:10 [PATCH] aic94xx: disable split completion timer/setting by default Alexis Bruemmer
2006-06-30 21:17 ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox