Page MenuHomeFreeBSD

D22962.id66126.diff
No OneTemporary

D22962.id66126.diff

Index: sys/powerpc/include/pcpu.h
===================================================================
--- sys/powerpc/include/pcpu.h
+++ sys/powerpc/include/pcpu.h
@@ -68,7 +68,8 @@
uint8_t slbstack[1024]; \
struct pvo_entry *qmap_pvo; \
struct mtx qmap_lock; \
- char __pad[1345];
+ uint64_t opal_hmi_flags; \
+ char __pad[1337];
#ifdef __powerpc64__
#define PCPU_MD_AIM_FIELDS PCPU_MD_AIM64_FIELDS
Index: sys/powerpc/powernv/opal_hmi.c
===================================================================
--- sys/powerpc/powernv/opal_hmi.c
+++ sys/powerpc/powernv/opal_hmi.c
@@ -84,13 +84,17 @@
static int
opal_hmi_handler2(struct trapframe *frame)
{
- uint64_t flags;
+ /*
+ * Use DMAP preallocated pcpu memory to handle
+ * the phys flags pointer.
+ */
+ uint64_t *flags = PCPU_PTR(aim.opal_hmi_flags);
int err;
- flags = 0;
- err = opal_call(OPAL_HANDLE_HMI2, vtophys(&flags));
+ *flags = 0;
+ err = opal_call(OPAL_HANDLE_HMI2, flags);
- if (flags & OPAL_HMI_FLAGS_TOD_TB_FAIL)
+ if (*flags & OPAL_HMI_FLAGS_TOD_TB_FAIL)
panic("TOD/TB recovery failure");
if (err == OPAL_SUCCESS)

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 15, 11:31 PM (1 h, 35 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31561489
Default Alt Text
D22962.id66126.diff (1 KB)

Event Timeline