[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [MiNT] .xif module load problem



More thoughts?

What is the stack pointer value before and after init call, and before entering load_modules() in comparison with its initial value?

It would seem to me, that the code which saves/restores the registers works because it makes a place on the stack where the corruption is harmless. I.e. it may corrupt the register values pushed, and this by accident doesn't have any side effects when they're popped back. Otherwise the corruption may destroy f.e. the return address and gets visible.

I remember that there was a bug (or several actually) in one of the assembler modules (arch/cpu.S IIRC), which resulted in register corruption inside kernel's init() function. Odd things happened and nobody was able to figure out what is wrong, because the symptoms rather pointed to a bug in the compiler. This may be similar thing, this is why you may want to check if everything is well with the stack pointer inside kernel's init() and later, when it boils down to calling a module.

--
CVV
Konrad M.Kokoszkiewicz, http://draco.atari.org

** Ea natura multitudinis est,
** aut seruit humiliter, aut superbe dominatur.
** Taka to już natura pospólstwa, albo służalczo się płaszczy,
** albo bezczelnie się panoszy. (Liwiusz XXIV, 25).