Module Name:    src
Committed By:   maxv
Date:           Sun Mar 17 06:36:22 UTC 2019

Modified Files:
        src/sys/arch/arm/xscale: iopaau.c iopaaureg.h

Log Message:
Hard-align the fields of the structures with __aligned(32), and pass ioff=0
in the pool cache.


To generate a diff of this commit:
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/arm/xscale/iopaau.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/xscale/iopaaureg.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/arm/xscale/iopaau.c
diff -u src/sys/arch/arm/xscale/iopaau.c:1.17 src/sys/arch/arm/xscale/iopaau.c:1.18
--- src/sys/arch/arm/xscale/iopaau.c:1.17	Sun Feb 12 16:31:01 2012
+++ src/sys/arch/arm/xscale/iopaau.c	Sun Mar 17 06:36:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: iopaau.c,v 1.17 2012/02/12 16:31:01 matt Exp $	*/
+/*	$NetBSD: iopaau.c,v 1.18 2019/03/17 06:36:22 maxv Exp $	*/
 
 /*
  * Copyright (c) 2002 Wasabi Systems, Inc.
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: iopaau.c,v 1.17 2012/02/12 16:31:01 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: iopaau.c,v 1.18 2019/03/17 06:36:22 maxv Exp $");
 
 #include <sys/param.h>
 #include <sys/pool.h>
@@ -647,13 +647,13 @@ iopaau_attach(struct iopaau_softc *sc)
 
 	/*
 	 * Initialize global resources.  Ok to do here, since there's
-	 * only one AAU.
+	 * only one AAU.  The structures are 32-byte aligned.
 	 */
 	iopaau_desc_4_cache = pool_cache_init(sizeof(struct aau_desc_4),
-	    8 * 4, offsetof(struct aau_desc_4, d_nda), 0, "aaud4pl",
+	    8 * 4, 0, 0, "aaud4pl",
 	    NULL, IPL_VM, iopaau_desc_ctor, NULL, NULL);
 	iopaau_desc_8_cache = pool_cache_init(sizeof(struct aau_desc_8),
-	    8 * 4, offsetof(struct aau_desc_8, d_nda), 0, "aaud8pl",
+	    8 * 4, 0, 0, "aaud8pl",
 	    NULL, IPL_VM, iopaau_desc_ctor, NULL, NULL);
 
 	/* Register us with dmover. */

Index: src/sys/arch/arm/xscale/iopaaureg.h
diff -u src/sys/arch/arm/xscale/iopaaureg.h:1.3 src/sys/arch/arm/xscale/iopaaureg.h:1.4
--- src/sys/arch/arm/xscale/iopaaureg.h:1.3	Sat Aug  3 21:58:56 2002
+++ src/sys/arch/arm/xscale/iopaaureg.h	Sun Mar 17 06:36:22 2019
@@ -1,4 +1,4 @@
-/*	$NetBSD: iopaaureg.h,v 1.3 2002/08/03 21:58:56 thorpej Exp $	*/
+/*	$NetBSD: iopaaureg.h,v 1.4 2019/03/17 06:36:22 maxv Exp $	*/
 
 /*
  * Copyright (c) 2002 Wasabi Systems, Inc.
@@ -61,7 +61,7 @@ struct aau_desc_4 {
 	uint32_t d_pa;			/* our physical address */
 
 	/* Hardware portion -- must be 32-byte aligned. */
-	uint32_t	d_nda;		/* next descriptor address */
+	uint32_t	d_nda __aligned(32); /* next descriptor address */
 	uint32_t	d_sar[4];	/* source address */
 	uint32_t	d_dar;		/* destination address */
 	uint32_t	d_bc;		/* byte count */
@@ -73,7 +73,7 @@ struct aau_desc_8 {
 	uint32_t d_pa;			/* our physical address */
 
 	/* Hardware portion -- must be 32-byte aligned. */
-	uint32_t	d_nda;		/* next descriptor address */
+	uint32_t	d_nda __aligned(32); /* next descriptor address */
 	uint32_t	d_sar[4];	/* source address */
 	uint32_t	d_dar;		/* destination address */
 	uint32_t	d_bc;		/* byte count */
@@ -87,7 +87,7 @@ struct aau_desc_16 {
 	uint32_t d_pa;			/* our physical address */
 
 	/* Hardware portion -- must be 32-byte aligned. */
-	uint32_t	d_nda;		/* next descriptor address */
+	uint32_t	d_nda __aligned(32); /* next descriptor address */
 	uint32_t	d_sar[4];	/* source address */
 	uint32_t	d_dar;		/* destination address */
 	uint32_t	d_bc;		/* byte count */
@@ -104,7 +104,7 @@ struct aau_desc_32 {
 	uint32_t d_pa;			/* our physical address */
 
 	/* Hardware portion -- must be 32-byte aligned. */
-	uint32_t	d_nda;		/* next descriptor address */
+	uint32_t	d_nda __aligned(32); /* next descriptor address */
 	uint32_t	d_sar[4];	/* source address */
 	uint32_t	d_dar;		/* destination address */
 	uint32_t	d_bc;		/* byte count */

Reply via email to