From: Américo Wang on
On Wed, Mar 31, 2010 at 4:56 AM, Arnd Bergmann <arnd(a)arndb.de> wrote:
> ppp interacts with the tty layer, so it should
> take the BTM instead of the BKL.
>
> Signed-off-by: Arnd Bergmann <arnd(a)arndb.de>
> ---
>  drivers/net/ppp_generic.c |   29 +++++++++++++++--------------
>  1 files changed, 15 insertions(+), 14 deletions(-)
>
> diff --git a/drivers/net/ppp_generic.c b/drivers/net/ppp_generic.c
> index 6d61602..bc89a1b 100644
> --- a/drivers/net/ppp_generic.c
> +++ b/drivers/net/ppp_generic.c
> @@ -40,7 +40,7 @@
>  #include <linux/if_arp.h>
>  #include <linux/ip.h>
>  #include <linux/tcp.h>
> -#include <linux/smp_lock.h>
> +#include <linux/tty.h>
>  #include <linux/spinlock.h>
>  #include <linux/rwsem.h>
>  #include <linux/stddef.h>
> @@ -362,7 +362,8 @@ static const int npindex_to_ethertype[NUM_NP] = {
>  */
>  static int ppp_open(struct inode *inode, struct file *file)
>  {
> -       cycle_kernel_lock();
> +       tty_lock();
> +       tty_unlock();

I don't really get your point here. :) Why do you do this?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
From: Arnd Bergmann on
On Wednesday 31 March 2010 06:37:12 Américo Wang wrote:
> > @@ -362,7 +362,8 @@ static const int npindex_to_ethertype[NUM_NP] = {
> > */
> > static int ppp_open(struct inode *inode, struct file *file)
> > {
> > - cycle_kernel_lock();
> > + tty_lock();
> > + tty_unlock();
>
> I don't really get your point here. :) Why do you do this?

This is a blind conversion of the API from the common BKL functions to
the TTY lock functions. There is no cycle_tty_lock(), so I'm manually
doing the cycle.

The reason why cycle_kernel_lock() was introduced in the first place
is that some drivers may depend on the open() function not returning
while another CPU holds the BKL. I did not feel qualified (or motivated)
to determine if the ppp code has the behavior, so I left it at this.

Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo(a)vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/