On 02/08/2014 02:24 PM, Linus Torvalds wrote: > On Sat, Feb 8, 2014 at 12:44 PM, Richard Yao <r...@gentoo.org> wrote: >> >> However, is_vmalloc_addr() only applies to the vmalloc region. While all >> architectures load kernel modules into virtual memory (to my knowledge), >> some architectures do not load them into the vmalloc region. > > So? > > People shouldn't do IO to module data, so who cares if something is a > module address or not? > > The thing is, even module *loading* doesn't do IO to the magic module > addresses - it loads the module data into regular vmalloc space, and > then copies it into the final location separately. > > And no module should ever do any IO on random static data (and > certainly not on code). > > So there is _zero_ reason for a driver or a filesystem to use > is_vmalloc_or_module_addr(). It's just not a valid question to ask. > > If somebody uses module data/code addresses, we're *better* off with a > oops or other nasty behavior than to try to make it "work".
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); The current nasty behavior is doing the I/O to the wrong place if the appropriate CONFIG_DEBUG option isn't set. That IMO sucks. --Andy -- 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/