mirror of
https://github.com/opnsense/src.git
synced 2026-02-17 09:39:26 -05:00
pmc_process_interrupt takes 5 arguments when only 3 are needed.
cpu is always available in curcpu and inuserspace can always be
derived from the passed trapframe.
While facially a reasonable cleanup this change was motivated
by the need to workaround a compiler bug.
core2_intr(cpu, tf) ->
pmc_process_interrupt(cpu, ring, pmc, tf, inuserspace) ->
pmc_add_sample(cpu, ring, pm, tf, inuserspace)
In the process of optimizing the tail call the tf pointer was getting
clobbered:
(kgdb) up
at /storage/mmacy/devel/freebsd/sys/dev/hwpmc/hwpmc_mod.c:4709
4709 pmc_save_kernel_callchain(ps->ps_pc,
(kgdb) up
1205 error = pmc_process_interrupt(cpu, PMC_HR, pm, tf,
resulting in a crash in pmc_save_kernel_callchain.
|
||
|---|---|---|
| .. | ||
| aim | ||
| booke | ||
| conf | ||
| cpufreq | ||
| fpu | ||
| include | ||
| mambo | ||
| mikrotik | ||
| mpc85xx | ||
| ofw | ||
| powermac | ||
| powernv | ||
| powerpc | ||
| ps3 | ||
| pseries | ||
| psim | ||