summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2014-11-24 10:58:38 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2014-11-24 10:58:38 +0000
commit1c72c48003e4ee5bc8eeb93cd2fe1fc600e4927a (patch)
treea87bb1d746ecfbb032f351e667cc47d8199e3ef9
parentb999bee7415660762e25b184a67692aebfae7ab3 (diff)
Use the pointer to "struct intrhand" as the vintr cookie.
-rw-r--r--sys/arch/sparc64/dev/cbus.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/arch/sparc64/dev/cbus.c b/sys/arch/sparc64/dev/cbus.c
index baed0994573..bc22f018820 100644
--- a/sys/arch/sparc64/dev/cbus.c
+++ b/sys/arch/sparc64/dev/cbus.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: cbus.c,v 1.11 2013/07/16 19:45:37 kettenis Exp $ */
+/* $OpenBSD: cbus.c,v 1.12 2014/11/24 10:58:37 kettenis Exp $ */
/*
* Copyright (c) 2008 Mark Kettenis
*
@@ -124,17 +124,12 @@ cbus_intr_map(int node, int ino, uint64_t *sysino)
{
int parent;
int reg;
- int err;
parent = OF_parent(node);
if (OF_getprop(parent, "reg", &reg, sizeof(reg)) != sizeof(reg))
return (-1);
*sysino = CBUS_HANDLE(reg) | CBUS_INO(ino);
- err = hv_vintr_setcookie(reg, ino, *sysino);
- if (err != H_EOK)
- return (-1);
-
return (0);
}
@@ -186,6 +181,12 @@ cbus_intr_establish(bus_space_tag_t t, bus_space_tag_t t0, int ihandle,
return (NULL);
}
+ err = hv_vintr_setcookie(devhandle, devino, (vaddr_t)ih);
+ if (err != H_EOK) {
+ printf("hv_vintr_setcookie: %d\n", err);
+ return (NULL);
+ }
+
if (flags & BUS_INTR_ESTABLISH_MPSAFE)
ih->ih_mpsafe = 1;