Re: [PATCH] Use userland-like functions for reading the ACPI table

From: Linus Torvalds
Date: Sat Feb 23 2008 - 15:46:40 EST




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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/