Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/subr_intr.c
Show All 36 Lines | |||||
*/ | */ | ||||
#include "opt_ddb.h" | #include "opt_ddb.h" | ||||
#include "opt_hwpmc_hooks.h" | #include "opt_hwpmc_hooks.h" | ||||
#include "opt_iommu.h" | #include "opt_iommu.h" | ||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
#include <sys/asan.h> | |||||
#include <sys/kernel.h> | #include <sys/kernel.h> | ||||
#include <sys/lock.h> | #include <sys/lock.h> | ||||
#include <sys/mutex.h> | #include <sys/mutex.h> | ||||
#include <sys/syslog.h> | #include <sys/syslog.h> | ||||
#include <sys/malloc.h> | #include <sys/malloc.h> | ||||
#include <sys/proc.h> | #include <sys/proc.h> | ||||
#include <sys/queue.h> | #include <sys/queue.h> | ||||
#include <sys/bus.h> | #include <sys/bus.h> | ||||
▲ Show 20 Lines • Show All 260 Lines • ▼ Show 20 Lines | |||||
*/ | */ | ||||
void | void | ||||
intr_irq_handler(struct trapframe *tf) | intr_irq_handler(struct trapframe *tf) | ||||
{ | { | ||||
struct trapframe * oldframe; | struct trapframe * oldframe; | ||||
struct thread * td; | struct thread * td; | ||||
KASSERT(irq_root_filter != NULL, ("%s: no filter", __func__)); | KASSERT(irq_root_filter != NULL, ("%s: no filter", __func__)); | ||||
kasan_mark(tf, sizeof(*tf), sizeof(*tf), 0); | |||||
VM_CNT_INC(v_intr); | VM_CNT_INC(v_intr); | ||||
critical_enter(); | critical_enter(); | ||||
td = curthread; | td = curthread; | ||||
oldframe = td->td_intr_frame; | oldframe = td->td_intr_frame; | ||||
td->td_intr_frame = tf; | td->td_intr_frame = tf; | ||||
irq_root_filter(irq_root_arg); | irq_root_filter(irq_root_arg); | ||||
td->td_intr_frame = oldframe; | td->td_intr_frame = oldframe; | ||||
▲ Show 20 Lines • Show All 1,415 Lines • Show Last 20 Lines |