Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F145302236
D32346.1777608854.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D32346.1777608854.diff
View Options
Index: sys/arm/arm/gic_acpi.c
===================================================================
--- sys/arm/arm/gic_acpi.c
+++ sys/arm/arm/gic_acpi.c
@@ -232,7 +232,7 @@
/*
* Controller is root:
*/
- if (intr_pic_claim_root(dev, xref, arm_gic_intr, sc,
+ if (intr_pic_claim_root(dev, xref, (intr_irq_filter_t *)arm_gic_intr, sc,
GIC_LAST_SGI - GIC_FIRST_SGI + 1) != 0) {
device_printf(dev, "could not set PIC as a root\n");
intr_pic_deregister(dev, xref);
Index: sys/arm/arm/gic_fdt.c
===================================================================
--- sys/arm/arm/gic_fdt.c
+++ sys/arm/arm/gic_fdt.c
@@ -157,7 +157,8 @@
*/
pxref = ofw_bus_find_iparent(ofw_bus_get_node(dev));
if (pxref == 0 || xref == pxref) {
- if (intr_pic_claim_root(dev, xref, arm_gic_intr, sc,
+ if (intr_pic_claim_root(dev, xref,
+ (intr_irq_filter_t *)arm_gic_intr, sc,
GIC_LAST_SGI - GIC_FIRST_SGI + 1) != 0) {
device_printf(dev, "could not set PIC as a root\n");
intr_pic_deregister(dev, xref);
Index: sys/arm/broadcom/bcm2835/bcm2835_intr.c
===================================================================
--- sys/arm/broadcom/bcm2835/bcm2835_intr.c
+++ sys/arm/broadcom/bcm2835/bcm2835_intr.c
@@ -407,7 +407,8 @@
sc->intc_irq_res = bus_alloc_resource_any(dev, SYS_RES_IRQ, &rid,
RF_ACTIVE);
if (sc->intc_irq_res == NULL) {
- if (intr_pic_claim_root(dev, xref, bcm2835_intc_intr, sc, 0) != 0) {
+ if (intr_pic_claim_root(dev, xref,
+ (intr_irq_filter_t *)bcm2835_intc_intr, sc, 0) != 0) {
/* XXX clean up */
device_printf(dev, "could not set PIC as a root\n");
return (ENXIO);
Index: sys/kern/subr_intr.c
===================================================================
--- sys/kern/subr_intr.c
+++ sys/kern/subr_intr.c
@@ -314,18 +314,30 @@
void
intr_irq_handler(struct trapframe *tf)
{
+#ifndef DISABLE_TD_INTR_FRAME
struct trapframe * oldframe;
+#endif
+#if defined(HWPMC_HOOKS) || !defined(DISABLE_TD_INTR_FRAME)
struct thread * td;
+#endif
KASSERT(irq_root_filter != NULL, ("%s: no filter", __func__));
VM_CNT_INC(v_intr);
critical_enter();
td = curthread;
+#ifndef DISABLE_TD_INTR_FRAME
oldframe = td->td_intr_frame;
td->td_intr_frame = tf;
+#endif
+#ifdef INTR_SOLO
+ irq_root_filter(irq_root_arg, tf);
+#else
irq_root_filter(irq_root_arg);
+#endif
+#ifndef DISABLE_TD_INTR_FRAME
td->td_intr_frame = oldframe;
+#endif
critical_exit();
#ifdef HWPMC_HOOKS
if (pmc_hook && TRAPF_USERMODE(tf) &&
Index: sys/sys/proc.h
===================================================================
--- sys/sys/proc.h
+++ sys/sys/proc.h
@@ -368,7 +368,9 @@
struct kdtrace_thread *td_dtrace; /* (*) DTrace-specific data. */
struct vnet *td_vnet; /* (k) Effective vnet. */
const char *td_vnet_lpush; /* (k) Debugging vnet push / pop. */
+#ifndef DISABLE_TD_INTR_FRAME
struct trapframe *td_intr_frame;/* (k) Frame of the current irq */
+#endif
struct proc *td_rfppwait_p; /* (k) The vforked child */
struct vm_page **td_ma; /* (k) uio pages held */
int td_ma_cnt; /* (k) size of *td_ma */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, May 1, 4:14 AM (10 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28519923
Default Alt Text
D32346.1777608854.diff (3 KB)
Attached To
Mode
D32346: sys: add trap frame compatibility macros
Attached
Detach File
Event Timeline
Log In to Comment