Subject: kernel panic in pppoe_release

From: "Murat Sezgin" <[email-masked]>
Date: Thu, 3 Sep 2015 12:14:32 -0700

Hi all,

I have already sent this email to linux-ppp group, but I have not received
any response yet. So, I want to send it to this group as well, because it is
most likely a netdev issue in pppoe kernel driver.

I see the bug in the below email discussion on the kernel that we are
currently using (3.4.103) with our openwrt distribution.

https://www.mail-archive.com/[email-masked]/msg70367.html

I did some debug on this and I see that the ref count of the po->pppoe_dev
doesn’t go to zero before releasing it with dev_put() and set its value to
NULL.

I also found the below patches from openwrt patch site for 3.18 and 4.0
kernels which can be applicable to our kernel. 

https://dev.openwrt.org/changeset/45653

But as described in the netdev mail-archive link above, it doesn’t solve
this issue completely and we still see the crash. I just wonder , if the
proposed patch by “Denys Fedoryshchenko”, which is below, fixes this issue
completely.

        pppox_unbind_sock(sk);
        +/* Signal the death of the socket. */
        +sk->sk_state = PPPOX_DEAD;

Do you have a conclusion on this bug? Is it safe to get this patch along
with the other workqueue patches?

Regards,
Murat