HomeFreeBSD

[PowerPC] Fix panic when attempting to handle an HMI from an idle thread

Description

[PowerPC] Fix panic when attempting to handle an HMI from an idle thread

In IRC, sfs_ finally managed to get a good trace of a kernel panic that was
happening when attempting to use webengine.

As it turns out, we were using vtophys() from interrupt context on an idle
thread in opal_hmi_handler2().

Since this involves locking the kernel pmap on PPC64 at the moment, this
ended up tripping a KASSERT in mtx_lock(), which then caused a parallel
panic stampede.

So, avoid this by preallocating the flags variable and storing it in PCPU.

Fixes "panic: mtx_lock() by idle thread 0x... on sleep mutex kernelpmap".

Differential Revision: https://reviews.freebsd.org/D22962

Details

Provenance
bdragonAuthored on
Differential Revision
D22962: [PowerPC] Fix panic when attempting to handle an HMI from an idle thread
Parents
rS356198: Tag libarchive 3.4.1
Branches
Unknown
Tags
Unknown