Module Name: src
Committed By: riastradh
Date: Sat Feb 1 12:55:26 UTC 2020
Modified Files:
src/sys/arch/arm/pic: pic.c
Log Message:
Reduce some ifdefs.
To generate a diff of this commit:
cvs rdiff -u -r1.54 -r1.55 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.54 src/sys/arch/arm/pic/pic.c:1.55
--- src/sys/arch/arm/pic/pic.c:1.54 Sat Feb 1 12:55:13 2020
+++ src/sys/arch/arm/pic/pic.c Sat Feb 1 12:55:26 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: pic.c,v 1.54 2020/02/01 12:55:13 riastradh Exp $ */
+/* $NetBSD: pic.c,v 1.55 2020/02/01 12:55:26 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.54 2020/02/01 12:55:13 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pic.c,v 1.55 2020/02/01 12:55:26 riastradh Exp $");
#include <sys/param.h>
#include <sys/atomic.h>
@@ -81,8 +81,20 @@ static void
#ifdef MULTIPROCESSOR
percpu_t *pic_pending_percpu;
+static struct pic_pending *
+pic_pending_get(void)
+{
+ return percpu_getref(pic_pending_percpu);
+}
+static void
+pic_pending_put(struct pic_pending *pend)
+{
+ percpu_putref(pic_pending_percpu);
+}
#else
struct pic_pending pic_pending;
+#define pic_pending_get() (&pic_pending)
+#define pic_pending_put(pend) __nothing
#endif /* MULTIPROCESSOR */
#endif /* __HAVE_PIC_PENDING_INTRS */
@@ -244,16 +256,10 @@ pic_mark_pending_source(struct pic_softc
__BIT(is->is_irq & 0x1f));
atomic_or_32(&pic->pic_pending_ipls, ipl_mask);
-#ifdef MULTIPROCESSOR
- struct pic_pending *pend = percpu_getref(pic_pending_percpu);
-#else
- struct pic_pending *pend = &pic_pending;
-#endif
+ struct pic_pending *pend = pic_pending_get();
atomic_or_32(&pend->pending_ipls, ipl_mask);
atomic_or_32(&pend->pending_pics, __BIT(pic->pic_id));
-#ifdef MULTIPROCESSOR
- percpu_putref(pic_pending_percpu);
-#endif
+ pic_pending_put(pend);
}
void
@@ -296,16 +302,10 @@ pic_mark_pending_sources(struct pic_soft
}
atomic_or_32(&pic->pic_pending_ipls, ipl_mask);
-#ifdef MULTIPROCESSOR
- struct pic_pending *pend = percpu_getref(pic_pending_percpu);
-#else
- struct pic_pending *pend = &pic_pending;
-#endif
+ struct pic_pending *pend = pic_pending_get();
atomic_or_32(&pend->pending_ipls, ipl_mask);
atomic_or_32(&pend->pending_pics, __BIT(pic->pic_id));
-#ifdef MULTIPROCESSOR
- percpu_putref(pic_pending_percpu);
-#endif
+ pic_pending_put(pend);
return ipl_mask;
}
@@ -553,11 +553,7 @@ pic_do_pending_ints(register_t psw, int
return;
}
#if defined(__HAVE_PIC_PENDING_INTRS)
-#ifdef MULTIPROCESSOR
- struct pic_pending *pend = percpu_getref(pic_pending_percpu);
-#else
- struct pic_pending *pend = &pic_pending;
-#endif
+ struct pic_pending *pend = pic_pending_get();
while ((pend->pending_ipls & ~__BIT(newipl)) > __BIT(newipl)) {
KASSERT(pend->pending_ipls < __BIT(NIPL));
for (;;) {
@@ -571,9 +567,7 @@ pic_do_pending_ints(register_t psw, int
pic_list_unblock_irqs(pend);
}
}
-#ifdef MULTIPROCESSOR
- percpu_putref(pic_pending_percpu);
-#endif
+ pic_pending_put(pend);
#endif /* __HAVE_PIC_PENDING_INTRS */
#ifdef __HAVE_PREEMPTION
if (newipl == IPL_NONE && (ci->ci_astpending & __BIT(1))) {