Re: [PATCH] CRIS v10 serial driver rewrite take two

From: Jiri Slaby
Date: Mon Nov 05 2007 - 08:45:45 EST


On 11/05/2007 02:11 PM, Jesper Nilsson wrote:
> New and improved serial driver for CRISv10, take two, with improvements
> suggested by Jiri Slaby.
>
> - Call wait_event_interruptible with a sensible condition.
> - Moved common code for deregistering DMA and IRQ to deinit_port function.
> - Use setup_timer when initializing flush_timer.
> - Convert bitfield for uses_dma_in and uses_dma_out to regular bytes.
> - Removed CVS tags.
> - Removed defines and comments for CRIS_BUF_SIZE and TTY_THRESHOLD_THROTTLE
> (no longer used).
> - Cleaned up code to pass checkpatch.
> - Add crisv10.h header file.
> - Merge of CRISv10 from Axis internal CVS.
>
> Signed-off-by: Jesper Nilsson <jesper.nilsson@xxxxxxxx>
>
> ---
> drivers/serial/crisv10.c | 1291 ++++++++++++-------------------------
> drivers/serial/crisv10.h | 146 ++++
> 2 files changed, 580 insertions(+), 857 deletions(-)
>
> diff --git a/drivers/serial/crisv10.c b/drivers/serial/crisv10.c
> index f523cdf..ff9634d 100644
> --- a/drivers/serial/crisv10.c
> +++ b/drivers/serial/crisv10.c
[...]
> @@ -4434,7 +3939,8 @@ block_til_ready(struct tty_struct *tty, struct file * filp,
> if (tty_hung_up_p(filp) ||
> (info->flags & ASYNC_CLOSING)) {
> if (info->flags & ASYNC_CLOSING)

You can remove this (__^) line now, the test itself is inside
wait_event_interruptible macro yet.

> - interruptible_sleep_on(&info->close_wait);
> + wait_event_interruptible(info->close_wait,
> + !info->flags & ASYNC_CLOSING);

This is still buggy, I intentionally put the parenthesis around "info->flags &
ASYNC_CLOSING" in my previous mail. This way it will ever evaluate to 0 (since
it is as same as (!info->flags) & ASYNC_CLOSING now).

> #ifdef SERIAL_DO_RESTART
> if (info->flags & ASYNC_HUP_NOTIFY)
> return -EAGAIN;

regards,
--
Jiri Slaby (jirislaby@xxxxxxxxx)
Faculty of Informatics, Masaryk University
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/