On Sat, 23 Feb 2008, Éric Piel wrote: > > As recommended by Christoph Hellwig, even if we can't rely on the userspace > firmware loader so early at boot, at least use normal syscall (as in > init/do_mounts_*.c). Similarly, use kfree() instead of ACPI_FREE().
So I'm missing a lot of the background here. I don't think "sys_open()" is in any way preferable to the alternatives, especially since it depends on thread-global state (the file descriptor table) rather than much more local state ("struct file" that you've opened). I think the calls to sys_open() in init do_dounts etc are very different: they really are more about a real kernel-level almost-user-mode thread than a core driver. I *also* think this patch is just fundamentally broken regardless. You can't just cast a kernel pointer to (char __user *). The two can be in totally different address spaces. There's a reason why it used to do that whole dance with oldfs. [ Of course, on platforms where ACPI actually runs this is not the case, but that is not an excuse for doing things wrong ] So I would NAK this patch - it looks buggy, and the reason for it is not sufficiently explained in the first place. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/