Hello, I am trying to port (time permitting) a small ia32 package to ia64. One of the thing it does are not supposed to be done that way. Like it adds a new syscall entry to the syscall table. But, I am doing this just to see how this tiny stuff from ia32 works on ia64 without getting into dynamically adding the new sys call discussion. The progam basically adds an entry to syscall table, and when this new syscall is called, it simply calls sys_clone() with same arguments. (like making a duplicate sys_clone call) static long my_call(unsigned long flags, unsigned long sz) { rc=sys_clone(flags, sz); /* sys_clone is exported */ ...... } Everything seems to work excpet that the child process created is not getting executed. I can see that the return value from the sys_clone is the pid of the child process and the task struct for the child getting set etc. But, the child process created does not get executed. I don't see any error messages in dmesg output either. So, I am not sure what is going wrong and what exactly to look. (Yes, I am relatively new to Linux.) Any suggestions or pointers to try will be greatly appreciated. (Hooking up the gdb over serial port would be a stretch as the machine is shared by other folks and I am trying this on the side. ) The sys_clone() is an assembly code which calls do_fork after setting the regs and performing do_save_switch_stack etc.I don't see any thing obvious there or in do_fork code. Thanks for any suggestions/pointers/info to try. Regards, Raj --------------------------------- Do you Yahoo!? The New Yahoo! Search - Faster. Easier. Bingo.