Problem linux-2.1.115 cm206/cm260

Norbert Berzen (norbert@dune.gia.rwth-aachen.de)
Wed, 09 Sep 1998 10:49:12 +0200


Hi LINUX Experts,

Last week I got an old Philips cdrom (cm206) along with an
adapter (cm260) (o.k. it's out of date, but for me it should
work). I connected it to my 80386 running linux-2.1.115 with
cm206 driver built in (no module). When I accessed the cdrom as:

'dd if=/dev/cm206cd of=/tmp/rawdata bs=2k count=1000'

all got o.k. But when I read more data as:

'dd if=/dev/cm206cd of=/tmp/rawdata bs=2k count=10000'

the machine read some data and then it simply hung without
any logs generated by the kernel and/or driver. (I'm logging
to local disk as well as to a remote machine). The machine
was totally locked up. Nothing at all did work. So I rebuilt
the kernel with debugging messages enabled in `cm206.c'.

Now, the kernel now didn't even come up since there was a page
fault during execution of the cm206 interrupt service routine
which caused the kernel to stop. Actually the page fault was
generated in `__wake_up' which got called from `cm206.c:365'.
I think that the non-initialized argument `&cd->uart' to
`wake_up_interruptible()' did cause the fault since at
location `cm206.c:1342' `cd' gets kmalloc'ed but it doesn't get
initialized in any way. So I added `memset (cd, 0, size)'
just behind the check if memory was granted. Now the kernel
came up and the driver did issue some debug messages when
accessing the drive the same way as mentioned above.
I got about five to ten log messages telling me that the
driver was receiving something from the drive. (Sorry I don't
have the log right here, I forgot it at home :-( but if there's
someone willing to help me I supply it as soon if I can.)
After that the machine locks up as usual ...

Now my questions:

1) Did someone experience similar problems?

2) Is the total lock of the machine (without any logs)
an indication of disabled interrupts. `cli()'
without corresponding `sti()'?

3) Can any assertion be given about the contents of
the memory area returned by `kmalloc()'?

Any answers ar welcome!

P.S. Sorry for the lengthy posting or if it's off topic.

-
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/faq.html