Subject: Re: [PATCH -next] ppp: fix segfaults introduced by netdev_priv changes

From: Wang Chen <[email-masked]>
Date: Fri, 19 Dec 2008 08:42:01 +0800

James Chapman said the following on 2008-12-19 2:38:
> This patch fixes a segfault in ppp_shutdown_interface() and
> ppp_destroy_interface() when a PPP connection is closed. I bisected
> the problem to the following commit:
> 
>   commit c8019bf3aff653cceb64f66489fc299ee5957b57
>   Author: Wang Chen <[email-masked]>
>   Date:   Thu Nov 20 04:24:17 2008 -0800
> 
>     netdevice ppp: Convert directly reference of netdev->priv
>     
>     1. Use netdev_priv(dev) to replace dev->priv.
>     2. Alloc netdev's private data by alloc_netdev().
>     
>     Signed-off-by: Wang Chen <[email-masked]>
>     Signed-off-by: David S. Miller <[email-masked]>
> 
> The original ppp_generic code treated the netdev and struct ppp as
> independent data structures which were freed separately. In moving the
> ppp struct into the netdev, it is now possible for the private data to
> be freed before the call to ppp_shutdown_interface(), which is bad.
> 
> The kfree(ppp) in ppp_destroy_interface() is also wrong; presumably
> ppp hasn't worked since the above commit.
> 
> The following patch fixes both problems.
> 
> Signed-off-by: James Chapman <[email-masked]>
> 

It's ok to me.
Reviewed-by: Wang Chen <[email-masked]>