On Mon, Feb 10, 2014 at 11:33 AM, Andy Lutomirski <l...@amacapital.net> wrote: > > I agree that reading to module space is awful, but is it obviously > terrible for a module to do this: > > static const char header[] = {...}; > kernel_write(file, header, sizeof(header), 0);
Yes, it is terrible. Don't do it. It shouldn't work. Now, whether it is "obvious" or not is immaterial. It might be hard to notice, but let's face it, we are kernel programmers. Our interfaces aren't designed for convenience, they are for working well and efficiently. And if that happens to mean that you shouldn't do IO on kmap'ed pages, or use random static data in your modules, that is what it means. We have lots of other rules too. People should deal with it, and realize that in the kernel we absolutely *have* to try to minimize the problem space as much as possible. The usual computer sciencey approach of "make things as generic as possible so that you can reuse the code" stuff is generally bullshit even in other contexts (example: STL), but it's _particularly_ bad for the kernel. It's much better to have strict rules about what is acceptable. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/