Re: mcdx -- do_request(): non-read command to cd!!

Pekka Enberg
2007-04-04T06:30:48Z

On 4/4/07, Rene Herman <rene.herman@gmail.com> wrote:
> Taking forever to reproduce in as far as getting the oops. The thing is
> now just locking hard each time. Will keep on trying...

Can you get anything out with sysrq-t? The original oops would be
enough to conclude it's a double-free if it weren't for this:

if (stuffp->toc) {
kfree(stuffp->toc);
stuffp->toc = NULL;
}

While the code is obviously unsafe, we would have to be interrupted
between the read and the assignment, but you don't even have preempt
enabled! So I don't quite yet see where the concurrency is coming
from.

What you can do here is protect the above sequence with a spinlock,
for example, which might paper-over the double-free enough to get you
running again...

Pekka