MCPcopy Create free account
hub / github.com/F-Stack/f-stack / abort_imprecise

Function abort_imprecise

freebsd/arm/arm/trap-v6.c:216–240  ·  view source on GitHub ↗

* abort_imprecise() handles the following abort: * * FAULT_EA_IMPREC - Imprecise External Abort * * The imprecise means that we don't know where the abort happened, * thus FAR is undefined. The abort should not never fire, but hot * plugging or accidental hardware failure can be the cause of it. * If the abort happens, it can even be on different (thread) context. * Without any additional

Source from the content-addressed store, hash-verified

214 * FAULT_IS_NOT_MINE value, then the abort is fatal.
215 */
216static __inline void
217abort_imprecise(struct trapframe *tf, u_int fsr, u_int prefetch, bool usermode)
218{
219
220 /*
221 * XXX - We can got imprecise abort as result of access
222 * to not-present PCI/PCIe configuration space.
223 */
224#if 0
225 goto out;
226#endif
227 abort_fatal(tf, FAULT_EA_IMPREC, fsr, 0, prefetch, curthread, NULL);
228
229 /*
230 * Returning from this function means that we ignore
231 * the abort for good reason. Note that imprecise abort
232 * could fire any time even in user mode.
233 */
234
235#if 0
236out:
237 if (usermode)
238 userret(curthread, tf);
239#endif
240}
241
242/*
243 * abort_debug() handles the following abort:

Callers 1

abort_handlerFunction · 0.85

Calls 2

abort_fatalFunction · 0.85
userretFunction · 0.85

Tested by

no test coverage detected