staticinlinevoid *arch_kmsan_get_meta_or_null(void *addr, bool is_origin)
{ if (is_lowcore_addr(addr)) { /* * Different lowcores accessed via S390_lowcore are described * by the same struct page. Resolve the prefix manually in * order to get a distinct struct page.
*/
addr += (void *)lowcore_ptr[raw_smp_processor_id()] -
(void *)get_lowcore(); if (KMSAN_WARN_ON(is_lowcore_addr(addr))) return NULL; return kmsan_get_metadata(addr, is_origin);
} return NULL;
}
/* * pfn_valid() relies on RCU, and may call into the scheduler on exiting * the critical section. However, this would result in recursion with * KMSAN. Therefore, disable preemption here, and re-enable preemption * below while suppressing reschedules to avoid recursion. * * Note, this sacrifices occasionally breaking scheduling guarantees. * Although, a kernel compiled with KMSAN has already given up on any * performance guarantees due to being heavily instrumented.
*/
preempt_disable();
ret = virt_addr_valid(addr);
preempt_enable_no_resched();
return ret;
}
#endif/* !MODULE */
#endif/* _ASM_S390_KMSAN_H */
Messung V0.5
¤ Dauer der Verarbeitung: 0.14 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.