From: "Randy.Dunlap" <rddunlap@osdl.org> Date: Tue, 6 May 2003 09:33:21 -0700 What/why this? #if RT6_DEBUG >= 2 if (rt->u.dst.obsolete>0) { BUG_TRAP(fn==NULL || rt->u.dst.obsolete<=0); return -ENOENT; } #endif rt->u.dst.obsolete cannot be both > 0 and <= 0 !?! can it? Correct, let's look at the history of this snippet of code. :-) On August 26th, 1998 this happened (this is 2.1.118 vintage :-): - fn = fib6_del_1(rt); - - if (fn == NULL) +#if RT6_DEBUG >= 2 + if (rt->u.dst.obsolete>0) { + BUG_TRAP(rt->u.dst.obsolete>0); + return -EFAULT; + } +#endif + if (fn == NULL || rt == &ip6_null_entry) return -ENOENT; The changelog message was "Merge in ANK's bugfixes". Then on Auguest 20th, 1999 this happened: @@ -927,7 +926,7 @@ #if RT6_DEBUG >= 2 if (rt->u.dst.obsolete>0) { - BUG_TRAP(rt->u.dst.obsolete>0); + BUG_TRAP(rt->u.dst.obsolete<=0); return -EFAULT; } #endif and the changelog is "Merge in ANK networking jumbo patch" :-)))) Anyways, yes the <= 0 test is bogus and I've killed it in my tree. - : 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