Hi,

I've been looking over the kernel patch and the rtl module code trying
to figure out what needs to be done for an ARM port. I've been focusing
on the 2.4 version where the patch is concerned. I'm using rev 3 of RTL.

I have some questions.

A. Does the MIPS version really work?
1. The MIPS version of arch_takeover tries to patch  __save_flags_ptr.
2. The prepatched kernel does not have this symbol.
3. The kernel patch does not add this symbol.
4. MIPS arch.h declares this symbol as an extern.
5. MIPS arch.c uses the symbol but does not define it.

So it seems that, for MIPS, 'insmod rtl' would result in unresolved
kernel symbols.

B. I know the i386 version works, but something puzzles me.
1. The __start_rtlinux_funcs and __stop_rtlinux_funcs symbols are
exported by the kernel after the patch.
2. They are declared extern, and do not appear anywhere else as
non-extern (in the kernel or the rtl module).
3. cat /proc/ksyms reveals that they exist (which surprised me! My best
guess why this works is that symbols which are exported to the kernel
symbol table are defined _there_,  allocated space _there_, and somehow
the linker -- when linking the kernel -- must know to go to the symbol
table for exported symbols... can anybody explain this better?)
4. cat /proc/ksyms shows their location separated by 56 bytes.
arch_takeover appears to treat this region like a call table, where it
patches the relevant kernel functions. Is this correct? And where did
those 56 bytes of separation come from?

Thanks,

--Gordon


-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/

Reply via email to