Messages in this thread | | | Date | Tue, 07 Dec 2004 07:33:21 -0800 | From | "Randy.Dunlap" <> | Subject | Re: Bug in kmem_cache_create with duplicate names |
| |
Steven Rostedt wrote: > Is it really necessary to BUG on creating a cache with a duplicate name? > Wouldn't it just be better to fail the create. The reason I mentioned > this is that I was writing some modules and after doing a cut and paste, > I forgot to change a name of a cache that was created by one module and > I used it in another existing module. So you can say that it was indeed > a bug, but did it really need to crash my machine? I aways check the > return codes in my modules, and I would have figured it out why it > failed, but I didn't expect a simple module to crash the machine the way > it did. Well anyway it did definitely show me where my bug was.
Yes, it does that.
However, I agree with you. I don't see a good reason for it.
Duplicate name can just return NULL. NOTE: Such a change most likely requires an audit of all callers of kmem_cache_create() to be sure that they check its return value. There's a gcc attribute that can be added to the function prototype to warn if the function is called without looking at its return value, although just doing x = kmem_cache_create(...); and ignoring x probably evades the warning.
include/linux/compiler-gcc+.h: #define __must_check __attribute__((warn_unused_result))
-- ~Randy - 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/
| |