Re: [PATCH] tty: Flags should be accessed via the foo_bit interfaces

From: Will Newton
Date: Thu Dec 04 2008 - 10:50:49 EST


On Thu, Dec 4, 2008 at 3:41 PM, Alan Cox <alan@xxxxxxxxxxxxxxxxxxx> wrote:
> From: Alan Cox <alan@xxxxxxxxxx>
>
> We have various drivers that poke around directly and we need to clean this
> up before it causes problems. Fix up the networking ones - (Dave can you send
> this via the net tree as that seems simplest)
>
> Signed-off-by: Alan Cox <alan@xxxxxxxxxx>

> diff --git a/drivers/net/slip.c b/drivers/net/slip.c
> index 1d58991..951c7df 100644
> --- a/drivers/net/slip.c
> +++ b/drivers/net/slip.c
> @@ -402,7 +402,7 @@ static void sl_encaps(struct slip *sl, unsigned char *icp, int len)
> * if we did not request it before write operation.
> * 14 Oct 1994 Dmitry Gorodchanin.
> */
> - sl->tty->flags |= (1 << TTY_DO_WRITE_WAKEUP);
> + set_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags);
> actual = sl->tty->ops->write(sl->tty, sl->xbuff, count);
> #ifdef SL_CHECK_TRANSMIT
> sl->dev->trans_start = jiffies;
> @@ -432,7 +432,7 @@ static void slip_write_wakeup(struct tty_struct *tty)
> /* Now serial buffer is almost free & we can start
> * transmission of another packet */
> sl->tx_packets++;
> - tty->flags &= ~(1 << TTY_DO_WRITE_WAKEUP);
> + clear_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags);
> sl_unlock(sl);
> return;
> }
> @@ -465,7 +465,7 @@ static void sl_tx_timeout(struct net_device *dev)
> (tty_chars_in_buffer(sl->tty) || sl->xleft) ?
> "bad line quality" : "driver error");
> sl->xleft = 0;
> - sl->tty->flags &= ~(1 << TTY_DO_WRITE_WAKEUP);
> + clear_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags);
> sl_unlock(sl);
> #endif
> }
> @@ -515,10 +515,9 @@ sl_close(struct net_device *dev)
> struct slip *sl = netdev_priv(dev);
>
> spin_lock_bh(&sl->lock);
> - if (sl->tty) {
> + if (sl->tty)
> + clear_bit(TTY_DO_WRITE_WAKEUP, &sl->tty->flags);
> /* TTY discipline is running. */
> - sl->tty->flags &= ~(1 << TTY_DO_WRITE_WAKEUP);
> - }

The indentation of the comment looks like it might be wrong here.

> netif_stop_queue(dev);
> sl->rcount = 0;
> sl->xleft = 0;
--
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/