From: Kai Makisara Date: Fri, 5 Oct 2007 19:54:58 +0000 (-0400) Subject: [SCSI] sym53c8xx: Work around 53c896 erratum X-Git-Tag: v2.6.24-rc1~19^2~24 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=34996acc5571e64be7f3dba3adced1f7221a8d07;p=linux-2.6 [SCSI] sym53c8xx: Work around 53c896 erratum Prevent DMA transfers from crossing the 16MB limit for early 53c896 chips. Signed-off-by: Matthew Wilcox Signed-off-by: James Bottomley --- diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c index db03c4c8ec..44169390c4 100644 --- a/drivers/scsi/sym53c8xx_2/sym_glue.c +++ b/drivers/scsi/sym53c8xx_2/sym_glue.c @@ -1531,6 +1531,10 @@ static struct Scsi_Host * __devinit sym_attach(struct scsi_host_template *tpnt, BUG_ON(sym2_transport_template == NULL); instance->transportt = sym2_transport_template; + /* 53c896 rev 1 errata: DMA may not cross 16MB boundary */ + if (pdev->device == PCI_DEVICE_ID_NCR_53C896 && np->revision_id < 2) + instance->dma_boundary = 0xFFFFFF; + spin_unlock_irqrestore(instance->host_lock, flags); return instance;