mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-28 20:37:27 +00:00
13fe24f37d
http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=3719 When the CPLBs get a miss, we do: - find a victim in the HW table - remove the victim - find the replacement in the software table - put it into the HW table. If we can't find a replacement in the software table, we accidently leave a duplicate in the HW table. This patch ensures that duplicate is marked as not valid. What we should do is find the replacement in the software table, before we find a victim in the HW table - but its too late in the release cycle to do that much restructuring of this code. Rather that duplicate code, connect Hardware Errors (irq5) into trap_c, so user space processes get killed properly. The rest of irq_panic() can be moved into traps.c (later) There is still a small corner case that causes problems when a pheriperal interrupt goes off a single cycle before a user space hardware error. This causes a kernel panic, rather than the user space process being killed. But, this checkin makes things work in 99.9% of the cases, and is a vast improvement from what is there today (which fails 100% of the time). Signed-off-by: Robin Getz <robin.getz@analog.com> Signed-off-by: Bryan Wu <bryan.wu@analog.com> |
||
---|---|---|
.. | ||
asm-offsets.c | ||
bfin_dma_5xx.c | ||
bfin_gpio.c | ||
bfin_ksyms.c | ||
cacheinit.c | ||
cplbinit.c | ||
dma-mapping.c | ||
dualcore_test.c | ||
early_printk.c | ||
entry.S | ||
fixed_code.S | ||
flat.c | ||
gptimers.c | ||
init_task.c | ||
irqchip.c | ||
kgdb.c | ||
Makefile | ||
module.c | ||
process.c | ||
ptrace.c | ||
reboot.c | ||
setup.c | ||
signal.c | ||
sys_bfin.c | ||
time.c | ||
traps.c | ||
vmlinux.lds.S |