aic94xx: disable split completion timer/setting by default
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
Acked-by Alexis Bruemmer <[email protected]>
----------
drivers/scsi/aic94xx/aic94xx_hwi.c +15 -0
@@ -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
@@ -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
Quoted 5 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
please always put an email address in the Signed-off-by line...