Hello!
I'm writing kernel module for embedded system working on Linux kernel
2.4.xx.
CPU on the device is ARM926ejs. Communication with device - serial port
(COM). Here is a code fragment:
if( sock->ops && sock->ops->ioctl ) {
old_fs = get_fs();
printk( KERN_ALERT "aaa\n" );
set_fs( KERNEL_DS );
printk( KERN_ALERT "bbb\n" );
retval = sock->ops->ioctl( ... );
set_fs( old_fs );
...
}
Module loads perfectly and works until the function "set_fs(KERNEL_DS)"
is called. In HyperTerminal i see message "aaa", but cannot see "bbb".
The behavior of device is strange: no kernel_panic, no error messages,
nothing, it "dies" silently and absolutely till power switching. I
suppose that the problem dialed with domain switching but cannot see
where is error. I tried to write local_irq_disable()/local_irq_enable()
around set_fs() - no effect. Does anybody know how to fix problem?
P.S. On x86 processors module works.
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.