Hello. I personally dislike fixing typoes in comments at the same time... In article <20030605141041.741fcb60.rddunlap@osdl.org> (at Thu, 5 Jun 2003 14:10:41 -0700), "Randy.Dunlap" <rddunlap@osdl.org> says: > @@ -283,14 +284,18 @@ static void ip6_evictor(void) > fq_kill(fq); > spin_unlock(&fq->lock); > > + dev = dev_get_by_index(fq->iif); ~~~~ this can be NULL here > fq_put(fq); > - IP6_INC_STATS_BH(Ip6ReasmFails); > + IP6_INC_STATS_BH(__in6_dev_get(dev), Ip6ReasmFails); > + dev_put(dev); > } > } > > static void ip6_frag_expire(unsigned long data) > { > struct frag_queue *fq = (struct frag_queue *) data; > + struct net_device *dev = dev_get_by_index(fq->iif); ~~~maybe NULL > + struct inet6_dev *idev = in6_dev_get(dev); It seems that you forget to dev_put() if fq->last_in & COMPLETE. -- Hideaki YOSHIFUJI @ USAGI Project <yoshfuji@linux-ipv6.org> GPG FP: 9022 65EB 1ECF 3AD1 0BDF 80D8 4807 F894 E062 0EEA - : send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html