Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Nov 2009 07:28:29 +0000 (UTC)
From:      Xin LI <delphij@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r199069 - head/sys/dev/arcmsr
Message-ID:  <200911090728.nA97STW8011960@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: delphij
Date: Mon Nov  9 07:28:29 2009
New Revision: 199069
URL: http://svn.freebsd.org/changeset/base/199069

Log:
  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)
  Obtained from:	ftp://ftp.areca.com.tw/RaidCards/AP_Drivers/FreeBSD/DRIVER/SourceCode/arcmsr-freebsd-1.20.00.16-91010.zip
  MFC after:	3 days

Modified:
  head/sys/dev/arcmsr/arcmsr.c
  head/sys/dev/arcmsr/arcmsr.h

Modified: head/sys/dev/arcmsr/arcmsr.c
==============================================================================
--- head/sys/dev/arcmsr/arcmsr.c	Mon Nov  9 07:19:25 2009	(r199068)
+++ head/sys/dev/arcmsr/arcmsr.c	Mon Nov  9 07:28:29 2009	(r199069)
@@ -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(devic
 	}
 	/* 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);

Modified: head/sys/dev/arcmsr/arcmsr.h
==============================================================================
--- head/sys/dev/arcmsr/arcmsr.h	Mon Nov  9 07:19:25 2009	(r199068)
+++ head/sys/dev/arcmsr/arcmsr.h	Mon Nov  9 07:28:29 2009	(r199069)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200911090728.nA97STW8011960>