From: Stephen Hemminger <stephen@networkplumber.org>
To: xeb@mail.ru
Cc: netdev@vger.kernel.org
Subject: Fw: [Bug 199109] New: pptp: kernel printk "recursion detected", and then reboot itself
Date: Wed, 14 Mar 2018 08:02:17 -0700 [thread overview]
Message-ID: <20180314080217.1f461de3@xeon-e3> (raw)
Begin forwarded message:
Date: Wed, 14 Mar 2018 06:56:09 +0000
From: bugzilla-daemon@bugzilla.kernel.org
To: stephen@networkplumber.org
Subject: [Bug 199109] New: pptp: kernel printk "recursion detected", and then reboot itself
https://bugzilla.kernel.org/show_bug.cgi?id=199109
Bug ID: 199109
Summary: pptp: kernel printk "recursion detected", and then
reboot itself
Product: Networking
Version: 2.5
Kernel Version: 4.9.77
Hardware: Mips32
OS: Linux
Tree: Mainline
Status: NEW
Severity: high
Priority: P1
Component: IPV4
Assignee: stephen@networkplumber.org
Reporter: xuheng333@zoho.com
Regression: No
Created attachment 274715
--> https://bugzilla.kernel.org/attachment.cgi?id=274715&action=edit
system log
Use openwrt LEDE, (gcc version 5.5.0 (OpenWrt GCC 5.5.0 r5932-9c4fe10) ).
When use pptp, make WAN(eth1) down and then make WAN(eth1) up, pptp will redial
itself. Do this in a loop.
After a while, kernel print "recursion detected" and "net_ratelimit: 49422
callbacks suppressed", print this many times, then system reboot.
When add more printk in driver "driver/net/ppp/ppp_generic.c", fond it fall in
loop in "static void __ppp_xmit_process(struct ppp *ppp)", which called by
"static void __ppp_channel_push(struct channel *pch)".
__ppp_channel_push() locked ppp->xmit_recursion, and loop for long time( while
(!ppp->xmit_pending && (skb = skb_dequeue(&ppp->file.xq))) ppp_send_frame(ppp,
skb); ). Some other thread want to lock ppp->xmit_recursion, but failed.
static void __ppp_channel_push(struct channel *pch)
{
struct sk_buff *skb;
struct ppp *ppp;
spin_lock_bh(&pch->downl);
if (pch->chan) {
while (!skb_queue_empty(&pch->file.xq)) {
skb = skb_dequeue(&pch->file.xq);
if (!pch->chan->ops->start_xmit(pch->chan, skb)) {
/* put the packet back and try again later */
skb_queue_head(&pch->file.xq, skb);
break;
}
}
} else {
/* channel got deregistered */
skb_queue_purge(&pch->file.xq);
}
spin_unlock_bh(&pch->downl);
/* see if there is anything from the attached unit to be sent */
if (skb_queue_empty(&pch->file.xq)) {
ppp = pch->ppp;
if (ppp)
__ppp_xmit_process(ppp);
}
}
--
You are receiving this mail because:
You are the assignee for the bug.
next reply other threads:[~2018-03-14 15:02 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-14 15:02 Stephen Hemminger [this message]
2018-03-15 17:51 ` Fw: [Bug 199109] New: pptp: kernel printk "recursion detected", and then reboot itself Guillaume Nault
[not found] ` <1622d9239ec.fb8c9df225155.9220077804249612652@zoho.com>
2018-03-16 20:02 ` Guillaume Nault
2018-03-20 15:38 ` Guillaume Nault
[not found] ` <1624615812e.11e307c748584.6445977831797927207@zoho.com>
2018-03-21 8:35 ` Guillaume Nault
2018-03-22 2:41 ` xu heng
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180314080217.1f461de3@xeon-e3 \
--to=stephen@networkplumber.org \
--cc=netdev@vger.kernel.org \
--cc=xeb@mail.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.