device driver troubles from the kernel

Kirk Reiser (kirk@braille.uwo.ca)
Mon, 5 Apr 1999 07:52:43 -0400 (EDT)


Hello folks: I am having some trouble getting a device driver to work
correctly now that I've made some changes to my interface to it.

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/