Hi all,
we (an RTnet user and I) just learned that switching on CONFIG_REGPARM
in 2.6 kernel can cause troubles with RTAI 3.1 (maybe earlier versions
as well) and with RTnet (likely all releases) with respect to LXRT
functions on x86. While the LXRT dispatcher pushes all arguments on the
stack, handler functions expect them in registers if CONFIG_REGPARM is
on and the number of arguments does not exceed 3. The user reported that
/user/latency failed to work in this case, and also no RTnet (i.e. RTDM)
call succeeded due to messed-up arguments.
I read some RTAI changelog about fixing the task trampolines, but all
LXRT entries, i.e. the API functions, do yet deal with it - also
verified by disassembling the user's rtai_lxrt.ko...
For RTnet, it would not be much work to add regparm or asmlinkage
(what's the difference BTW?) to our rather small API, but I guess it's a
bit more work for RTAI. So, better catch and deny this kernel setup? I'm
asking before patching RTnet in case RTAI 3 (fusion doesn't suffer from
this - no LXRT) goes the latter way...
Jan
- CONFIG_REGPARM Jan Kiszka
-