I used to call the driver directly from whereever I wanted to one of its
functions. In preparation of supporting other drivers I rewrote the
interface to use the standard open() and write(). If I am in kernel
space only it seems to work fine. The problem comes when I try to
call it from (I think) user space. I qualified my comment there
because I am beginning to believe there is confusion in my head about
kernel/user spaces. Ok, OK, I know there's confusion!
I have been using the set_fs(get_ds()) macros to reset the address
limit back to kernel space. This appears to work for a very short
period but then which ever process is currently running will lock up.
If it happens during the boot sequence the entire system is gone; if
it happens once the system is up, then whatever process is running
locks. I suspect it is a problem with switching back and forth
between kernel and user space but I don't know why.
If anyone has any suggestions, I would certainly appreciate the help.
I am currently playing with 2.2.3.
Thank you for any help you might len.
Kirk
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/