From: Jarek Poplawski <jarkao2@gmail.com>
To: Bernard Pidoux <bernard.pidoux@upmc.fr>
Cc: Ralf Baechle DL5RB <ralf@linux-mips.org>,
Linux Netdev List <netdev@vger.kernel.org>,
linux-hams <linux-hams@vger.kernel.org>
Subject: Re: [AX25] kernel panic
Date: Mon, 21 Sep 2009 22:11:57 +0200 [thread overview]
Message-ID: <20090921201157.GA5460@del.dom.local> (raw)
<20090910142436.GB10547@linux-mips.org> <4AA9288B.2070205@upmc.fr>
<20090911120557.GA12175@linux-mips.org> <4AB5EAE5.6070605@upmc.fr>
<20090920210242.GA9804@del.dom.local> <4AB73CDE.4030709@upmc.fr>
In-Reply-To: <4AB73CDE.4030709@upmc.fr>
Bernard Pidoux wrote, On 09/21/2009 10:44 AM:
> Hi Jarek,
>
> Good fishing !
>
> During the night I catched the following two identical AX25_DBG
> messages with netconsole
> sending already reported message: kernel BUG at kernel/timer.c:913!
> and followed by kernel
> panics and the machine rebooting.
>
>
> Sep 21 03:24:06 f6bvp-11 klogd: ------------[ cut here ]------------
> Sep 21 03:24:06 f6bvp-11 klogd: WARNING: at include/net/ax25.h:260
> ax25_kiss_rcv+0x650/0xab0 [ax25]()
Thanks for testing. Alas I don't get how it's possible at this place
(unless I miss the place), especially with a nosmp kernel. So here is
take 2 (to apply after reverting the previous one).
Regards,
Jarek P.
--- (debugging patch, take 2)
include/net/ax25.h | 36 ++++++++++++++++++++++++++++++++++++
net/ax25/af_ax25.c | 12 ++++++++++++
2 files changed, 48 insertions(+), 0 deletions(-)
diff --git a/include/net/ax25.h b/include/net/ax25.h
index 717e219..7fefbb0 100644
--- a/include/net/ax25.h
+++ b/include/net/ax25.h
@@ -252,9 +252,45 @@ typedef struct ax25_cb {
#define ax25_cb_hold(__ax25) \
atomic_inc(&((__ax25)->refcount))
+static __inline__ int ax25_timers_warn(ax25_cb *ax25)
+{
+ int err = 0;
+
+ if (del_timer(&ax25->timer)) {
+ WARN_ON_ONCE(1);
+ err = 1;
+ }
+ if (del_timer(&ax25->t1timer)) {
+ WARN_ON_ONCE(1);
+ err += 2;
+ }
+ if (del_timer(&ax25->t2timer)) {
+ WARN_ON_ONCE(1);
+ err += 4;
+ }
+ if (del_timer(&ax25->t3timer)) {
+ WARN_ON_ONCE(1);
+ err += 8;
+ }
+ if (del_timer(&ax25->idletimer)) {
+ WARN_ON_ONCE(1);
+ err += 16;
+ }
+ if (del_timer(&ax25->dtimer)) {
+ WARN_ON_ONCE(1);
+ err += 32;
+ }
+ if (err)
+ printk(KERN_WARNING "AX25_DBG: %d %p %u %s %d\n", err, ax25,
+ ax25->state, __func__, __LINE__);
+
+ return err;
+}
+
static __inline__ void ax25_cb_put(ax25_cb *ax25)
{
if (atomic_dec_and_test(&ax25->refcount)) {
+ ax25_timers_warn(ax25);
kfree(ax25->digipeat);
kfree(ax25);
}
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index da0f64f..f1f515c 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -58,6 +58,9 @@ static const struct proto_ops ax25_proto_ops;
static void ax25_free_sock(struct sock *sk)
{
+ if (ax25_timers_warn(ax25_sk(sk)))
+ printk(KERN_WARNING "AX25_DBG: %p %u %u %u\n", sk,
+ sk->sk_family, sk->sk_type, sk->sk_protocol);
ax25_cb_put(ax25_sk(sk));
}
@@ -222,6 +225,8 @@ ax25_cb *ax25_find_cb(ax25_address *src_addr, ax25_address *dest_addr,
if (s->ax25_dev == NULL)
continue;
if (ax25cmp(&s->source_addr, src_addr) == 0 && ax25cmp(&s->dest_addr, dest_addr) == 0 && s->ax25_dev->dev == dev) {
+ int ref;
+
if (digi != NULL && digi->ndigi != 0) {
if (s->digipeat == NULL)
continue;
@@ -231,6 +236,13 @@ ax25_cb *ax25_find_cb(ax25_address *src_addr, ax25_address *dest_addr,
if (s->digipeat != NULL && s->digipeat->ndigi != 0)
continue;
}
+ ref = atomic_read(&s->refcount);
+ if (ref < 2) {
+ WARN_ON_ONCE(1);
+ printk(KERN_WARNING "AX25_DBG: %d %p %d %s\n",
+ ref, s, s->state, __func__);
+ }
+
ax25_cb_hold(s);
spin_unlock_bh(&ax25_list_lock);
next reply other threads:[~2009-09-21 20:11 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-21 20:11 Jarek Poplawski [this message]
2009-09-23 21:17 ` [AX25] kernel panic Bernard Pidoux F6BVP
2009-09-24 8:07 ` Jarek Poplawski
2009-09-25 13:10 ` [PATCH] ax25: Fix ax25_cb refcounting in ax25_ctl_ioctl Jarek Poplawski
2009-09-25 13:40 ` Ralf Baechle DL5RB
2009-09-25 18:35 ` Jarek Poplawski
2009-09-25 19:10 ` David Miller
2009-09-25 19:50 ` Bernard Pidoux
2009-09-25 20:29 ` Jarek Poplawski
2009-09-27 7:23 ` Ralf Baechle DL5RB
2009-09-27 17:10 ` Jarek Poplawski
2009-09-27 19:02 ` Jarek Poplawski
2009-09-27 20:57 ` [PATCH] ax25: Fix possible oops in ax25_make_new Jarek Poplawski
2009-09-28 10:47 ` Bernard Pidoux F6BVP
2009-09-30 23:44 ` David Miller
2009-09-28 7:12 ` [PATCH] ax25: Add missing dev_put in ax25_setsockopt Jarek Poplawski
2009-09-28 10:48 ` Bernard Pidoux F6BVP
2009-09-28 12:53 ` Ralf Baechle
2009-09-28 17:46 ` Bernard Pidoux
2009-09-28 19:26 ` David Miller
-- strict thread matches above, loose matches on Subject: below --
2009-09-09 22:28 [AX25] kernel panic Bernard Pidoux
2009-09-11 19:21 ` Jarek Poplawski
2009-09-15 10:16 ` Bernard Pidoux
[not found] ` <20090910142436.GB10547@linux-mips.org>
[not found] ` <4AA9288B.2070205@upmc.fr>
[not found] ` <20090911120557.GA12175@linux-mips.org>
2009-09-20 8:42 ` Bernard Pidoux
2009-09-20 9:09 ` f8arr
2009-09-20 21:02 ` Jarek Poplawski
2009-09-21 8:44 ` Bernard Pidoux
2008-03-18 10:44 Bernard Pidoux F6BVP
2008-03-18 21:25 ` Francois Romieu
2008-03-19 7:36 ` Bernard Pidoux F6BVP
2008-03-19 20:57 ` Bernard Pidoux
2008-03-20 7:30 ` Jarek Poplawski
2008-03-20 22:58 ` Bernard Pidoux
2008-03-21 0:28 ` Jarek Poplawski
2008-03-21 9:52 ` Bernard Pidoux
2008-03-21 11:22 ` Jarek Poplawski
2008-03-21 9:40 ` Bernard Pidoux
2008-03-22 11:36 ` Jarek Poplawski
2008-03-23 17:00 ` Bernard Pidoux
2008-03-24 20:51 ` Jarek Poplawski
2008-03-25 13:23 ` Bernard Pidoux
2008-03-25 20:51 ` Jarek Poplawski
2008-03-26 18:35 ` Jarek Poplawski
2008-03-28 8:24 ` Bernard Pidoux
2008-03-28 8:27 ` Bernard Pidoux
2008-03-28 12:07 ` Jarek Poplawski
2008-03-29 12:04 ` Bernard Pidoux
2008-03-29 12:24 ` Jarek Poplawski
2008-03-30 8:43 ` Bernard Pidoux
2008-03-30 9:16 ` Jarek Poplawski
2008-03-30 17:38 ` Bernard Pidoux
2008-03-30 18:49 ` Jarek Poplawski
2008-03-30 9:00 ` Bernard Pidoux
[not found] ` <47EE38BA.9090500@free.fr>
[not found] ` <20080329130451.GC3407@ami.dom.local>
[not found] ` <47EF6479.7030702@free.fr>
[not found] ` <20080330115958.GA4975@ami.dom.local>
2008-04-01 20:37 ` Bernard Pidoux
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=20090921201157.GA5460@del.dom.local \
--to=jarkao2@gmail.com \
--cc=bernard.pidoux@upmc.fr \
--cc=linux-hams@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=ralf@linux-mips.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).