Re: [PATCH 1/5] tty: Add a function to insert a string ofcharacters with the same flag

From: Greg KH
Date: Fri Feb 26 2010 - 18:03:35 EST


On Wed, Feb 17, 2010 at 01:06:30PM +0000, Alan Cox wrote:
> The USB drivers often want to insert a series of bytes all with the same
> flag set - provide a helper for this case.
>
> Signed-off-by: Alan Cox <alan@xxxxxxxxxxxxxxx>
> ---
>
> drivers/char/tty_buffer.c | 12 +++++++-----
> include/linux/tty_flip.h | 7 ++++++-
> 2 files changed, 13 insertions(+), 6 deletions(-)
>
>
> diff --git a/drivers/char/tty_buffer.c b/drivers/char/tty_buffer.c
> index 8402eda..af8d977 100644
> --- a/drivers/char/tty_buffer.c
> +++ b/drivers/char/tty_buffer.c
> @@ -231,9 +231,10 @@ int tty_buffer_request_room(struct tty_struct *tty, size_t size)
> EXPORT_SYMBOL_GPL(tty_buffer_request_room);
>
> /**
> - * tty_insert_flip_string - Add characters to the tty buffer
> + * tty_insert_flip_string_fixed_flag - Add characters to the tty buffer
> * @tty: tty structure
> * @chars: characters
> + * @flag: flag value for each character
> * @size: size
> *
> * Queue a series of bytes to the tty buffering. All the characters
> @@ -242,18 +243,19 @@ EXPORT_SYMBOL_GPL(tty_buffer_request_room);
> * Locking: Called functions may take tty->buf.lock
> */
>
> -int tty_insert_flip_string(struct tty_struct *tty, const unsigned char *chars,
> - size_t size)
> +int tty_insert_flip_string_fixed_flag(struct tty_struct *tty,
> + const unsigned char *chars, char flag, size_t size)
> {
> int copied = 0;
> do {
> + int goal = min(size - copied, TTY_BUFFER_PAGE);

This variable isn't used in this function.

> int space = tty_buffer_request_room(tty, goal);
> struct tty_buffer *tb = tty->buf.tail;
> /* If there is no space then tb may be NULL */
> if (unlikely(space == 0))
> break;
> memcpy(tb->char_buf_ptr + tb->used, chars, space);
> - memset(tb->flag_buf_ptr + tb->used, TTY_NORMAL, space);
> + memset(tb->flag_buf_ptr + tb->used, flag, space);

Should you have "goal" here instead of "space"?

thanks,

greg k-h
--
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/