Module Name:    src
Committed By:   jmcneill
Date:           Wed Nov 21 11:44:26 UTC 2018

Modified Files:
        src/sys/arch/arm/cortex: gicv3.c gicv3_its.c

Log Message:
kcpuset_ffs returns the cpu number plus one, so make sure to subtract it


To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/arm/cortex/gicv3.c
cvs rdiff -u -r1.3 -r1.4 src/sys/arch/arm/cortex/gicv3_its.c

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/cortex/gicv3.c
diff -u src/sys/arch/arm/cortex/gicv3.c:1.11 src/sys/arch/arm/cortex/gicv3.c:1.12
--- src/sys/arch/arm/cortex/gicv3.c:1.11	Sat Nov 17 00:17:54 2018
+++ src/sys/arch/arm/cortex/gicv3.c	Wed Nov 21 11:44:26 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: gicv3.c,v 1.11 2018/11/17 00:17:54 jmcneill Exp $ */
+/* $NetBSD: gicv3.c,v 1.12 2018/11/21 11:44:26 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2018 Jared McNeill <jmcne...@invisible.ca>
@@ -31,7 +31,7 @@
 #define	_INTR_PRIVATE
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gicv3.c,v 1.11 2018/11/17 00:17:54 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gicv3.c,v 1.12 2018/11/21 11:44:26 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -489,7 +489,7 @@ gicv3_set_affinity(struct pic_softc *pic
 	if (set == ncpu)
 		irouter = GICD_IROUTER_Interrupt_Routing_mode;
 	else if (set == 1)
-		irouter = sc->sc_irouter[kcpuset_ffs(affinity)];
+		irouter = sc->sc_irouter[kcpuset_ffs(affinity) - 1];
 	else
 		return EINVAL;
 

Index: src/sys/arch/arm/cortex/gicv3_its.c
diff -u src/sys/arch/arm/cortex/gicv3_its.c:1.3 src/sys/arch/arm/cortex/gicv3_its.c:1.4
--- src/sys/arch/arm/cortex/gicv3_its.c:1.3	Fri Nov 16 15:06:21 2018
+++ src/sys/arch/arm/cortex/gicv3_its.c	Wed Nov 21 11:44:26 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: gicv3_its.c,v 1.3 2018/11/16 15:06:21 jmcneill Exp $ */
+/* $NetBSD: gicv3_its.c,v 1.4 2018/11/21 11:44:26 jmcneill Exp $ */
 
 /*-
  * Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -32,7 +32,7 @@
 #define _INTR_PRIVATE
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gicv3_its.c,v 1.3 2018/11/16 15:06:21 jmcneill Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gicv3_its.c,v 1.4 2018/11/21 11:44:26 jmcneill Exp $");
 
 #include <sys/param.h>
 #include <sys/kmem.h>
@@ -713,7 +713,7 @@ gicv3_its_set_affinity(void *priv, size_
 	if (pa == NULL)
 		return EINVAL;
 
-	ci = cpu_lookup(kcpuset_ffs(affinity));
+	ci = cpu_lookup(kcpuset_ffs(affinity) - 1);
 
 	const uint32_t devid = gicv3_its_devid(pa->pa_pc, pa->pa_tag);
 	gits_command_movi(its, devid, devid, cpu_index(ci));

Reply via email to