Skip to content
Snippets Groups Projects
Commit e813775f authored by Federico's avatar Federico
Browse files

Revert commit 2015-12-13 introducing IRQPortableFinishKernelStartup().

It was found that the change introduced a subtle bug. The splitting of the
IRQPortableStartKernel() in two left ctxsave pointing inside the stack frame
of the first function, which then returned. When IRQPortableFinishKernelStartup()
was called, if there were pending interrupts, they would be served as soon as
interrupts were enabled, and the context save on the stack and ctxsave were
partially overlapped. This caused errors only in a rare occurrence: if the CPU
has a double precision floating point (Cortex-M7) and floating point operations
were used before kernel startup. That's why the bug went unnoticed for so long.
It was decided that since the conditions for splitting kernel startup were no
longer necessary, the cleaner fix was to revert the change.
parent c937490a
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment