Re: test version of 2.1.0 available

Linus Torvalds (torvalds@cs.helsinki.fi)
Tue, 24 Sep 1996 09:52:26 +0300 (EET DST)


On Tue, 24 Sep 1996, Richard Gooch wrote:
>
> I've just tried this, and get the following behaviour when I try to
> load a module (this happens for a variety of modules, not just one):
>
> # cd /lib/modules/2.1.0/net
> # insmod 3c509.o
> create_module: Unknown error 997978112

Ok, this is due to the silly library stub seemingly thinking that a large
positive value is in fact a error condition due to sign problems.

That doesn't mean that the kernel is broken: there are other system calls
that return large numbers that might be thought of as negative even though
they aren't errors (just an example: mmap() can return addresses with the
high bit set, and always could).

Instead of testing the sign bit, the low-level system call should
probably do something like this:

... do system call, return in %eax ...
movl %eax,%edx
addl $4095,%edx
jc error error if return was -1 .. -4095

Is somebody willing to fix up the module loader?

Linus