aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2009-11-10 00:46:08 +0000
committerXin LI <delphij@FreeBSD.org>2009-11-10 00:46:08 +0000
commite868427534863e3d33cdde2bd8038514ddf469ce (patch)
tree83012f7d1f2b6695bc0d5acb157714a4be57db27
parent4df8d918662c9ece3f8b605c8fe8d4e43cda3edc (diff)
downloadsrc-e868427534863e3d33cdde2bd8038514ddf469ce.tar.gz
src-e868427534863e3d33cdde2bd8038514ddf469ce.zip
MFC revision 199069 (MF8 199120):
Initialize the whole message unit's DMA buffer to zero, this fixes a panic during boot when ARC1200 is being used with certain motherboard models. This commit brings the driver to the same state of vendor's 1.20.00.16 release. Many thanks to Areca for their continued support to FreeBSD. Reported by: Jirka Mikulas <jiri mikulas com> Submitted by: Erich Chen (Areca) Approved by: re (kensmith)
Notes
Notes: svn path=/releng/8.0/; revision=199122
-rw-r--r--sys/dev/arcmsr/arcmsr.c4
-rw-r--r--sys/dev/arcmsr/arcmsr.h2
2 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/arcmsr/arcmsr.c b/sys/dev/arcmsr/arcmsr.c
index 09bce1b9455f..0e6acbf190b2 100644
--- a/sys/dev/arcmsr/arcmsr.c
+++ b/sys/dev/arcmsr/arcmsr.c
@@ -55,6 +55,8 @@
** 1.20.00.14 02/05/2007 Erich Chen bug fix for incorrect ccb_h.status report
** and cause g_vfs_done() read write error
** 1.20.00.15 10/10/2007 Erich Chen support new RAID adapter type ARC120x
+** 1.20.00.16 10/10/2009 Erich Chen Bug fix for RAID adapter type ARC120x
+** bus_dmamem_alloc() with BUS_DMA_ZERO
******************************************************************************************
* $FreeBSD$
*/
@@ -2903,7 +2905,7 @@ static u_int32_t arcmsr_initialize(device_t dev)
}
/* Allocation for our srbs */
if(bus_dmamem_alloc(acb->srb_dmat, (void **)&acb->uncacheptr
- , BUS_DMA_WAITOK | BUS_DMA_COHERENT, &acb->srb_dmamap) != 0) {
+ , BUS_DMA_WAITOK | BUS_DMA_COHERENT | BUS_DMA_ZERO, &acb->srb_dmamap) != 0) {
bus_dma_tag_destroy(acb->srb_dmat);
bus_dma_tag_destroy(acb->dm_segs_dmat);
bus_dma_tag_destroy(acb->parent_dmat);
diff --git a/sys/dev/arcmsr/arcmsr.h b/sys/dev/arcmsr/arcmsr.h
index 0b573816a184..7d8e24bcbdd7 100644
--- a/sys/dev/arcmsr/arcmsr.h
+++ b/sys/dev/arcmsr/arcmsr.h
@@ -37,7 +37,7 @@
**************************************************************************
* $FreeBSD$
*/
-#define ARCMSR_DRIVER_VERSION "Driver Version 1.20.00.15 2007-10-07"
+#define ARCMSR_DRIVER_VERSION "Driver Version 1.20.00.16 2009-10-10"
#define ARCMSR_SCSI_INITIATOR_ID 255
#define ARCMSR_DEV_SECTOR_SIZE 512
#define ARCMSR_MAX_XFER_SECTORS 4096