aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/dpaa/portals_common.c
diff options
context:
space:
mode:
authorBrandon Bergren <bdragon@FreeBSD.org>2020-02-25 03:35:52 +0000
committerBrandon Bergren <bdragon@FreeBSD.org>2020-02-25 03:35:52 +0000
commitb9931c0786d717ff5665ec22cce026375c2d759e (patch)
treec78bc906b761ba0424dace67feaf15a3755d5808 /sys/dev/dpaa/portals_common.c
parentd029e3b3f7ca49e4ba1e66d00d5230f532cdb1f1 (diff)
downloadsrc-b9931c0786d717ff5665ec22cce026375c2d759e.tar.gz
src-b9931c0786d717ff5665ec22cce026375c2d759e.zip
[PowerPC] [Book-E] Fix dpaa interrupt binding.
After the network epoch was added, we lost the ability to migrate the ithread in the middle of dispatch, as being in the network epoch will pin the current thread (for safety reasons.) Luckily, we don't actually have to do this workaround in the first place, as we can just bind it to the correct cpu when we preallocate it. Pass dev through to XX_PreallocAndBindIntr() and actually bind it to the cpu like it was supposed to in the first place, instad of leaving it floating and moving it to the correct cpu the first time it fires. This fixes panics while bringing up dtsec on my X5000. Reviewed by: jhibbits Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D23826
Notes
Notes: svn path=/head/; revision=358307
Diffstat (limited to 'sys/dev/dpaa/portals_common.c')
-rw-r--r--sys/dev/dpaa/portals_common.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/dev/dpaa/portals_common.c b/sys/dev/dpaa/portals_common.c
index 02729f2fcb7d..971dd5793972 100644
--- a/sys/dev/dpaa/portals_common.c
+++ b/sys/dev/dpaa/portals_common.c
@@ -120,8 +120,7 @@ dpaa_portal_alloc_res(device_t dev, struct dpaa_portals_devinfo *di, int cpu)
device_printf(dev, "Could not allocate irq.\n");
return (ENXIO);
}
-
- err = XX_PreallocAndBindIntr((uintptr_t)sc->sc_dp[cpu].dp_ires, cpu);
+ err = XX_PreallocAndBindIntr(dev, (uintptr_t)sc->sc_dp[cpu].dp_ires, cpu);
if (err != E_OK) {
device_printf(dev, "Could not prealloc and bind interrupt\n");