Page MenuHomeFreeBSD

D59260.diff
No OneTemporary

D59260.diff

diff --git a/sys/powerpc/pseries/xics.c b/sys/powerpc/pseries/xics.c
--- a/sys/powerpc/pseries/xics.c
+++ b/sys/powerpc/pseries/xics.c
@@ -75,8 +75,7 @@
static void xicp_unmask(device_t, u_int, void *priv);
#ifdef POWERNV
-extern void (*powernv_smp_ap_extra_init)(void);
-static void xicp_smp_cpu_startup(void);
+static void xicp_ap_init(device_t);
#endif
static device_method_t xicp_methods[] = {
@@ -92,6 +91,9 @@
DEVMETHOD(pic_ipi, xicp_ipi),
DEVMETHOD(pic_mask, xicp_mask),
DEVMETHOD(pic_unmask, xicp_unmask),
+#ifdef POWERNV
+ DEVMETHOD(pic_ap_init, xicp_ap_init),
+#endif
DEVMETHOD_END
};
@@ -275,11 +277,6 @@
1 /* Number of IPIs */, FALSE);
root_pic = dev;
-#ifdef POWERNV
- if (sc->xics_emu)
- powernv_smp_ap_extra_init = xicp_smp_cpu_startup;
-#endif
-
return (0);
}
@@ -554,14 +551,14 @@
}
#ifdef POWERNV
-/* This is only used on POWER9 systems with the XIVE's XICS emulation. */
+/* Only meaningful on POWER9 systems using the XIVE's XICS-emulation mode. */
static void
-xicp_smp_cpu_startup(void)
+xicp_ap_init(device_t dev)
{
struct xicp_softc *sc;
if (mfmsr() & PSL_HV) {
- sc = device_get_softc(root_pic);
+ sc = device_get_softc(dev);
if (sc->xics_emu)
opal_call(OPAL_INT_SET_CPPR, 0xff);

File Metadata

Mime Type
text/plain
Expires
Tue, Sep 29, 8:11 AM (3 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37562451
Default Alt Text
D59260.diff (1 KB)

Event Timeline