summaryrefslogtreecommitdiffstats
path: root/sys/dev/fdt/bcm2835_aux.c
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2020-07-17 08:07:33 +0000
committerpatrick <patrick@openbsd.org>2020-07-17 08:07:33 +0000
commit452daaedc6a44247dc76c56f4c33bc4131b7c50c (patch)
tree482245802e7d6304dfe90d749f5b8e7edac4f384 /sys/dev/fdt/bcm2835_aux.c
parentAdd powerpc64 support; straight copy from octeon. (diff)
downloadwireguard-openbsd-452daaedc6a44247dc76c56f4c33bc4131b7c50c.tar.xz
wireguard-openbsd-452daaedc6a44247dc76c56f4c33bc4131b7c50c.zip
Re-work intr_barrier(9) on arm64 to remove layer violation. So far we
have stored the struct cpu_info * in the wrapper around the interrupt handler cookie, but since we can have a few layers inbetween, this does not seem very nice. Instead have each and every interrupt controller provide a barrier function. This means that intr_barrier(9) will in the end be executed by the interrupt controller that actually wired the pin to a core. And that's the only place where the information is stored. ok kettenis@
Diffstat (limited to 'sys/dev/fdt/bcm2835_aux.c')
-rw-r--r--sys/dev/fdt/bcm2835_aux.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/dev/fdt/bcm2835_aux.c b/sys/dev/fdt/bcm2835_aux.c
index 47bc8e492dd..23f7e92e827 100644
--- a/sys/dev/fdt/bcm2835_aux.c
+++ b/sys/dev/fdt/bcm2835_aux.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: bcm2835_aux.c,v 1.5 2020/07/14 15:34:15 patrick Exp $ */
+/* $OpenBSD: bcm2835_aux.c,v 1.6 2020/07/17 08:07:34 patrick Exp $ */
/*
* Copyright (c) 2017 Mark Kettenis <kettenis@openbsd.org>
*
@@ -97,6 +97,7 @@ bcmaux_attach(struct device *parent, struct device *self, void *aux)
sc->sc_ic.ic_cookie = &sc->sc_ic;
sc->sc_ic.ic_establish = bcm_aux_intr_establish_fdt;
sc->sc_ic.ic_disestablish = fdt_intr_disestablish;
+ sc->sc_ic.ic_barrier = intr_barrier;
fdt_intr_register(&sc->sc_ic);
}