netdev
[Top] [All Lists]

Re: Oops at __neigh_for_each_release (2.6.9-rc3)

To: Duncan Sands <baldrick@xxxxxxx>
Subject: Re: Oops at __neigh_for_each_release (2.6.9-rc3)
From: "David S. Miller" <davem@xxxxxxxxxxxxx>
Date: Fri, 1 Oct 2004 13:56:36 -0700
Cc: linux-kernel@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxx, laforge@xxxxxxxxxxxx
In-reply-to: <200410012217.35264.baldrick@free.fr>
References: <200410012217.35264.baldrick@free.fr>
Sender: netdev-bounce@xxxxxxxxxxx
On Fri, 1 Oct 2004 22:17:35 +0200
Duncan Sands <baldrick@xxxxxxx> wrote:

> EIP is at __neigh_for_each_release+0x32/0xb0

Give this patch a try.  And please report networking bugs
to netdev@xxxxxxxxxxx in the future, thanks.

===== net/atm/clip.c 1.42 vs edited =====
--- 1.42/net/atm/clip.c 2004-09-23 18:02:32 -07:00
+++ edited/net/atm/clip.c       2004-10-01 13:35:40 -07:00
@@ -984,19 +984,7 @@
 
 static int __init atm_clip_init(void)
 {
-       /* we should use neigh_table_init() */
-       clip_tbl.lock = RW_LOCK_UNLOCKED;
-       clip_tbl.kmem_cachep = kmem_cache_create(clip_tbl.id,
-           clip_tbl.entry_size, 0, SLAB_HWCACHE_ALIGN, NULL, NULL);
-
-       if (!clip_tbl.kmem_cachep)
-               return -ENOMEM;
-
-       /* so neigh_ifdown() doesn't complain */
-       clip_tbl.proxy_timer.data = 0;
-       clip_tbl.proxy_timer.function = NULL;
-       init_timer(&clip_tbl.proxy_timer);
-       skb_queue_head_init(&clip_tbl.proxy_queue);
+       neigh_table_init(&clip_tbl);
 
        clip_tbl_hook = &clip_tbl;
        register_atm_ioctl(&clip_ioctl_ops);
@@ -1022,7 +1010,6 @@
 
        deregister_atm_ioctl(&clip_ioctl_ops);
 
-       neigh_ifdown(&clip_tbl, NULL);
        dev = clip_devs;
        while (dev) {
                next = PRIV(dev)->next;
@@ -1030,9 +1017,11 @@
                free_netdev(dev);
                dev = next;
        }
-       if (start_timer == 0) del_timer(&idle_timer);
 
-       kmem_cache_destroy(clip_tbl.kmem_cachep);
+       neigh_table_clear(&clip_tbl);
+
+       if (start_timer == 0)
+               del_timer(&idle_timer);
 
        clip_tbl_hook = NULL;
 }

<Prev in Thread] Current Thread [Next in Thread>