Messages in this thread Patch in this message |  | | | Date | Wed, 27 Aug 2003 01:54:48 +0900 (JST) | | Subject | Re: [OOPS] less /proc/net/igmp | | From | YOSHIFUJI Hideaki / 吉藤英明 <> |
| |
Hello.
In article <20030826.173226.114994096.yoshfuji@linux-ipv6.org> (at Tue, 26 Aug 2003 17:32:26 +0900 (JST)), YOSHIFUJI Hideaki / 吉藤英明 <yoshfuji@linux-ipv6.org> says:
> > I can confirm. I have it with 2.6.0-test4. > > > > Let me know what useful info I can provide. The oops is the same. > > Okay, everyone. I'll try to fix this.
Please try this patch.
Index: linux-2.6/net/ipv4/igmp.c =================================================================== RCS file: /home/cvs/linux-2.5/net/ipv4/igmp.c,v retrieving revision 1.33 diff -u -r1.33 igmp.c --- linux-2.6/net/ipv4/igmp.c 21 Aug 2003 17:47:23 -0000 1.33 +++ linux-2.6/net/ipv4/igmp.c 26 Aug 2003 15:18:03 -0000 @@ -2122,6 +2122,7 @@ break; } read_unlock(&in_dev->lock); + in_dev_put(in_dev); } return im; } @@ -2181,7 +2182,9 @@ if (likely(state->in_dev != NULL)) { read_unlock(&state->in_dev->lock); in_dev_put(state->in_dev); + state->in_dev = NULL; } + state->dev = NULL; read_unlock(&dev_base_lock); } @@ -2284,6 +2287,7 @@ spin_unlock_bh(&im->lock); } read_unlock_bh(&idev->lock); + in_dev_put(idev); } return psf; } @@ -2350,12 +2354,16 @@ static void igmp_mcf_seq_stop(struct seq_file *seq, void *v) { struct igmp_mcf_iter_state *state = igmp_mcf_seq_private(seq); - if (likely(state->im != NULL)) + if (likely(state->im != NULL)) { spin_unlock_bh(&state->im->lock); + state->im = NULL; + } if (likely(state->idev != NULL)) { read_unlock_bh(&state->idev->lock); in_dev_put(state->idev); + state->idev = NULL; } + state->dev = NULL; read_unlock(&dev_base_lock); } Index: linux-2.6/net/ipv6/mcast.c =================================================================== RCS file: /home/cvs/linux-2.5/net/ipv6/mcast.c,v retrieving revision 1.30 diff -u -r1.30 mcast.c --- linux-2.6/net/ipv6/mcast.c 21 Aug 2003 23:44:54 -0000 1.30 +++ linux-2.6/net/ipv6/mcast.c 26 Aug 2003 15:18:03 -0000 @@ -2078,6 +2078,7 @@ break; } read_unlock_bh(&idev->lock); + in6_dev_put(idev); } return im; } @@ -2135,7 +2136,9 @@ if (likely(state->idev != NULL)) { read_unlock_bh(&state->idev->lock); in6_dev_put(state->idev); + state->idev = NULL; } + state->dev = NULL; read_unlock(&dev_base_lock); } @@ -2225,6 +2228,7 @@ spin_unlock_bh(&im->mca_lock); } read_unlock_bh(&idev->lock); + in6_dev_put(idev); } return psf; } @@ -2291,12 +2295,16 @@ static void igmp6_mcf_seq_stop(struct seq_file *seq, void *v) { struct igmp6_mcf_iter_state *state = igmp6_mcf_seq_private(seq); - if (likely(state->im != NULL)) + if (likely(state->im != NULL)) { spin_unlock_bh(&state->im->mca_lock); + state->im = NULL; + } if (likely(state->idev != NULL)) { read_unlock_bh(&state->idev->lock); in6_dev_put(state->idev); + state->idev = NULL; } + state->dev = NULL; read_unlock(&dev_base_lock); }
-- Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@linux-ipv6.org> GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA - 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/
|  |