Re: 2.6.6-rc3: modular DVB tda1004x broken

David Mosberger
2004-05-03T18:30:11Z

>>>>> On Mon, 3 May 2004 11:20:35 -0700 (PDT), Linus Torvalds <torvalds@osdl.org> said:

Linus> On Mon, 3 May 2004, David Mosberger wrote:

>> Why not just disallow user-level use of the _syscall() macros.

Linus> I'm thinking we should disallow the system-calls
Linus> entirely. User mode should be using their own macros, and
Linus> kernel mode should just do the function call directly.

I totally agree. (Note that syscall() is a libc-provided routine.
The kernel has nothing to do with it.)

Linus> How much work would that be? I suspect it would be less work
Linus> than worrying about the existing strange interfaces.

Yes. On ia64, I held off on getting rid of kernel-internal syscalls
entirely because I was too lazy to do kernel_thread(). However, a
while ago, there was a bug that forced us to implement kernel_thread()
via a direct call. Lo and behold, the resulting code was not only a
lot faster, but it turned out to be short and clean, too. Very likely
the situation would be similar for the other architectures that have
been holding off on implementing the kernel syscalls via direct calls.

--david