Re: Ughs using CDU31a

Erik Andersen (andersen@inconnect.com)
Mon, 1 Jun 1998 19:04:05 -0600 (MDT)


On Mon, 1 Jun 1998, Brian Perkins wrote:

> Is there a definition of an Ugh?
> Anyway, I get a number of them when using my CDU31a with 2.1.100,
> followed by lots of errors and then a hang. ( I'll write them down if
> someone wants them )
>
> This seems strange since the driver hasn't changed since 2.0.x and it
> works fine under that.
>

Umm. I seems to remember Heiko Eissfeldt and I (to a lesser degree since
I don't own one of these drives) making some significant changes to this
driver. Perhaps you should take at look at the diff between
2.1.103 and 2.0.33:
http://lxr.linux.no/diff/drivers/cdrom/cdu31a.c?v=2.1.103;diffvar=v;diffval=2.0.33

Pretty good sized diff. Anyway, presumably either we screwed it up (which
is certainly possible) or the kernel interfaces changed under the driver
(which screwed it up.)

> Presumably the driver isn't SMP safe.
>

Certainly looks that way. I will add this to my list of known CDROM bugs.

> The addresses indicate thet the ughs happened in places like sys_write
> and sys_llseek.
>
> Any hints as to how to go about fixing this?
>

Well, I imagine that since interupps are getting received while interrupt
handling is disabled, then something isn't happining atomically that ought
to be atomic. A quick glance through the code shows lots of cli() sti()
calls and it definatly is enabling and disabling interrupts all over the
place. That would be a good place to start.

-Erik

--
Erik B. Andersen   Web:    http://www.inconnect.com/~andersen/ 
                   email:  andersee@debian.org
--This message was written using 73% post-consumer electrons--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu