Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S268399AbUIWLQx (ORCPT ); Thu, 23 Sep 2004 07:16:53 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S268404AbUIWLQx (ORCPT ); Thu, 23 Sep 2004 07:16:53 -0400 Received: from arnor.apana.org.au ([203.14.152.115]:55301 "EHLO arnor.apana.org.au") by vger.kernel.org with ESMTP id S268399AbUIWLQv (ORCPT ); Thu, 23 Sep 2004 07:16:51 -0400 From: Herbert Xu To: xhejtman@mail.muni.cz (Lukas Hejtmanek) Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops Cc: akpm@osdl.org, linux-kernel@vger.kernel.org, davem@davemloft.net, netdev@oss.sgi.com Organization: Core In-Reply-To: <20040923103723.GA12145@mail.muni.cz> X-Newsgroups: apana.lists.os.linux.kernel User-Agent: tin/1.7.4-20040225 ("Benbecula") (UNIX) (Linux/2.4.27-hx-1-686-smp (i686)) Message-Id: Date: Thu, 23 Sep 2004 21:16:32 +1000 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1372 Lines: 42 Lukas Hejtmanek wrote: > > However there is still the issue with endless loop in fn_hash_delete :( Same problem, same fix. Can someone think of a generic fix to list_for_each_*? Signed-off-by: Herbert Xu Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- ===== net/ipv4/fib_hash.c 1.22 vs edited ===== --- 1.22/net/ipv4/fib_hash.c 2004-09-22 09:31:48 +10:00 +++ edited/net/ipv4/fib_hash.c 2004-09-23 21:16:04 +10:00 @@ -608,6 +608,7 @@ struct fn_hash *table = (struct fn_hash*)tb->tb_data; struct fib_node *f; struct fib_alias *fa, *fa_to_delete; + struct list_head *fa_head; int z = r->rtm_dst_len; struct fn_zone *fz; u32 key; @@ -633,7 +634,8 @@ return -ESRCH; fa_to_delete = NULL; - list_for_each_entry(fa, fa->fa_list.prev, fa_list) { + fa_head = fa->fa_list.prev; + list_for_each_entry(fa, fa_head, fa_list) { struct fib_info *fi = fa->fa_info; if ((!r->rtm_type || - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/