From: Michael S. <m.s...@ss...> - 2003-02-03 16:27:29
|
When trying to initialize the network interface on the uml machine, the host-side uml_net daemon throws up tons of errors 'select', and networks doesn't get alive. I've checked the code, inserted some fprintf's, and now I'm on my wits' end: ifconfig on the virtual machine does a 'syscall' to etap_open, which opens the data pipe data_fds (ethertap_user.c). iIt then calls etap_tramp, which calls run_helper with the args stack (uml_net,4,ethertap,tap0,91). run_helper (arch/uml/kernel/helper.c) clones helper_child with the same arg stack, which then 'execvp's the first stack entry. Immediately after this, the caller (etap_tramp) closes the pipe - that's ok, helper_child has cloned, and so has an own descriptors copy. The uml_net is executed - as a daemon, I suppose - and jumps to the function 'ethertap'. And here, it gets < 0 from the 'select' call !? It appears, the 'data_fd' is weak - a simple 'fcntl(xx, F_GETFL, 0)' shows, the data file is not accessible. Where's the light ... Michael Ooops: kernel is 2.5.28, the patch also. |