Re: 2.6.6-rc3: modular DVB tda1004x broken

David Mosberger
2004-05-03T20:56:58Z

>>>>> On Mon, 3 May 2004 13:42:54 -0700 (PDT), Linus Torvalds <torvalds@osdl.org> said:

Linus> Rule: every architecture needs to implement its own kernel
Linus> "execve()" function some way. Everything else is done by the
Linus> architecture-independent <linux/unistd.h> translation layer.

Looks good to me.

Linus> The only change here is that this makes "open()" and friends
Linus> depend on the "sys_open()" and friends EXPORT's for
Linus> modules. Right now it appears that
Linus> sys_open/sys_lseek/sys_read are all EXPORT_SYMBOL_GPL's. That
Linus> sounds pretty insane anyway (it's not like we can claim that
Linus> "sys_open()" is some _internal_ interface), so I'd be
Linus> inclined to just change them all to regular EXPORT_SYMBOL's.

Does the rule have to be that all sys_FOO() entry-points must be
exported via EXPORT_SYMBOL()? Otherwise we have the strange issue
where a kernel-module may not be able to (easily) invoke a system call
which it could formerly invoke via _syscallN(). For example, the ATI
driver wants to call mlock()/munlock(). While this happens to be a
proprietary/binary-only driver, the same issue can arise with GPL'd
modules.

Linus> Comments? To me, this is a pretty clear cleanup (and I left
Linus> the old _syscallX() crud alone, even though we could remove
Linus> it now entirely).

In my opinion, it would be good to remove _syscallX() altogether.

--david