Module Name: src
Committed By: riastradh
Date: Sat Feb 1 12:55:03 UTC 2020
Modified Files:
src/sys/arch/arm/pic: pic.c
Log Message:
Switch arm pic allocation and initialization to percpu_create.
To generate a diff of this commit:
cvs rdiff -u -r1.52 -r1.53 src/sys/arch/arm/pic/pic.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/pic/pic.c
diff -u src/sys/arch/arm/pic/pic.c:1.52 src/sys/arch/arm/pic/pic.c:1.53
--- src/sys/arch/arm/pic/pic.c:1.52 Tue Dec 24 20:40:09 2019
+++ src/sys/arch/arm/pic/pic.c Sat Feb 1 12:55:02 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: pic.c,v 1.52 2019/12/24 20:40:09 skrll Exp $ */
+/* $NetBSD: pic.c,v 1.53 2020/02/01 12:55:02 riastradh Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
* All rights reserved.
@@ -33,7 +33,7 @@
#include "opt_multiprocessor.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pic.c,v 1.52 2019/12/24 20:40:09 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pic.c,v 1.53 2020/02/01 12:55:02 riastradh Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -647,12 +647,8 @@ pic_add(struct pic_softc *pic, int irqba
#if defined(__HAVE_PIC_PENDING_INTRS) && defined(MULTIPROCESSOR)
if (__predict_false(pic_pending_percpu == NULL)) {
- pic_pending_percpu = percpu_alloc(sizeof(struct pic_pending));
-
- /*
- * Now zero the per-cpu pending data.
- */
- percpu_foreach(pic_pending_percpu, pic_pending_zero, NULL);
+ pic_pending_percpu = percpu_create(sizeof(struct pic_pending),
+ pic_pending_zero, NULL, NULL);
}
#endif /* __HAVE_PIC_PENDING_INTRS && MULTIPROCESSOR */
@@ -702,12 +698,8 @@ pic_add(struct pic_softc *pic, int irqba
* corrupt the pointers in the evcnts themselves. Remember, any
* problem can be solved with sufficient indirection.
*/
- pic->pic_percpu = percpu_alloc(sizeof(struct pic_percpu));
-
- /*
- * Now allocate the per-cpu evcnts.
- */
- percpu_foreach(pic->pic_percpu, pic_percpu_allocate, pic);
+ pic->pic_percpu = percpu_create(sizeof(struct pic_percpu),
+ pic_percpu_allocate, NULL, pic);
pic->pic_sources = &pic_sources[sourcebase];
pic->pic_irqbase = irqbase;