Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F159633717
D10716.id28393.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D10716.id28393.diff
View Options
Index: sys/arm/mv/mpic.c
===================================================================
--- sys/arm/mv/mpic.c
+++ sys/arm/mv/mpic.c
@@ -150,6 +150,7 @@
static void mpic_unmask_irq_err(uintptr_t nb);
static int mpic_intr(void *arg);
static void mpic_unmask_msi(void);
+static boolean_t mpic_irq_is_percpu(uintptr_t);
#ifndef INTRNG
static void arm_mask_irq_err(uintptr_t);
static void arm_unmask_irq_err(uintptr_t);
@@ -490,14 +491,25 @@
MPIC_CPU_WRITE(mv_mpic_sc, MPIC_ERR_MASK, mask);
}
+static boolean_t
+mpic_irq_is_percpu(uintptr_t nb)
+{
+ if (nb < MPIC_PPI)
+ return TRUE;
+
+ return FALSE;
+}
+
static void
mpic_unmask_irq(uintptr_t nb)
{
if (nb < ERR_IRQ) {
- bus_space_write_4(mv_mpic_sc->mpic_bst, mv_mpic_sc->mpic_bsh,
- MPIC_ISE, nb);
- MPIC_CPU_WRITE(mv_mpic_sc, MPIC_ICM, nb);
+ if (!mpic_irq_is_percpu(nb))
+ bus_space_write_4(mv_mpic_sc->mpic_bst,
+ mv_mpic_sc->mpic_bsh, MPIC_ISE, nb);
+ else
+ MPIC_CPU_WRITE(mv_mpic_sc, MPIC_ICM, nb);
} else if (nb < MSI_IRQ)
mpic_unmask_irq_err(nb);
@@ -510,9 +522,11 @@
{
if (nb < ERR_IRQ) {
- bus_space_write_4(mv_mpic_sc->mpic_bst, mv_mpic_sc->mpic_bsh,
- MPIC_ICE, nb);
- MPIC_CPU_WRITE(mv_mpic_sc, MPIC_ISM, nb);
+ if (!mpic_irq_is_percpu(nb))
+ bus_space_write_4(mv_mpic_sc->mpic_bst,
+ mv_mpic_sc->mpic_bsh, MPIC_ICE, nb);
+ else
+ MPIC_CPU_WRITE(mv_mpic_sc, MPIC_ISM, nb);
} else if (nb < MSI_IRQ)
mpic_mask_irq_err(nb);
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Jun 17, 12:04 PM (15 h, 17 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34023226
Default Alt Text
D10716.id28393.diff (1 KB)
Attached To
Mode
D10716: Fix MPIC mask/unmask
Attached
Detach File
Event Timeline
Log In to Comment