Subject: Re: Problem of concurrency in arch/ppc/8260_io/uart.c

From: Dan Malek <[email-masked]>
Date: Fri, 26 Sep 2003 19:12:20 -0400

Joakim Tjernlund wrote:

> Yes, thats correct. I did try different ways around that but the only thing that
> would work is to make copy_from_user() copy to i tmp buf and then copy the
> tmp buf into the BD. Would that be better?

I wonder what happens if we mark a buffer ready with a count of zero?
Since the typical case is no page fault, I would just update the BD ptr
early, use the buffer, mark it ready.  If you get a fault, put a zero
for the count and mark it ready.  If that freaks out the CPM, put one
byte of zero into the buffer and give it a count of 1.  Then you just have
to hold the lock across the update of the BD ptr, just like everywhere else.

	-- Dan

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/