* epic100.c, SMC EtherPower II, SMC83c170/175 "EPIC"
@ 2001-09-03 11:04 Ingo Rohloff
2001-09-07 14:01 ` Ingo Rohloff
0 siblings, 1 reply; 5+ messages in thread
From: Ingo Rohloff @ 2001-09-03 11:04 UTC (permalink / raw)
To: epic, linux-kernel
Hello,
I have got a "[SMC] 83C170QF" adaptor in my computer and I wasn't
able to use the driver which is in linux-2.4.9.
The sympotms are lot's of messages of this in /var/log/messages:
"kernel: eth0: Too much work at interrupt, IntrStatus=0x008d0004"
This seems to be a known problem; at least I found other people
complaining about the same message in their kernel logs.
The problem has different severity for different people.
I wasn't able to get the card working at all (basically the
computer hung, while trying to mount several NFS directories).
After searching the web for further information I was able
to obtain a patched version, which was modified Heiko Boch.
It seems this version is an older linux-2.4.x driver with
some additional patches.
This version works without glitches on my system with a
vanilla linux-2.4.9 kernel.
The homepage of Heiko Boch doesn't seem to exist anymore, so
for all people who use this card and have the above problem,
I put his modified version of epic100.c on my home page at
www.in.tum.de/~rohloff (look for epic100.c).
I hope that after some testing someone can have a look over
this version, who really can tell what the essential differences
compared to the version in linux-2.4.9 are.
Perhaps this will lead to a working linux-2.4.xx version in the future.
so long
Ingo
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: epic100.c, SMC EtherPower II, SMC83c170/175 "EPIC"
2001-09-03 11:04 epic100.c, SMC EtherPower II, SMC83c170/175 "EPIC" Ingo Rohloff
@ 2001-09-07 14:01 ` Ingo Rohloff
2001-09-07 14:03 ` epic100.c, gcc-2.95.2 compiler bug! Ingo Rohloff
0 siblings, 1 reply; 5+ messages in thread
From: Ingo Rohloff @ 2001-09-07 14:01 UTC (permalink / raw)
To: epic, linux-kernel
Hi,
I posted an error report about the epic100.c module about one
week before.
The sympotms were lot's of messages of this in /var/log/messages:
"kernel: eth0: Too much work at interrupt, IntrStatus=0x008d0004"
After one week of really frustrating debugging and incrementally
morphing the working version of the driver I got into the (for
me) non-working linux-2.4.9 version I finally found out what was
going on: the linux-2.4.9 driver has no bug!
BEWARE: DON'T USE gcc-2.95.2!
I compiled the linux-2.4.9 version with gcc-2.95.2.
And I can _definitely_ confirm that epic100.c triggers a compiler
bug. (I have the erronous assembler code on my harddisk if anyone is
interested.)
Compile the same module with gcc-2.95.3 and the bug is gone
(at least in my case. The assembler code is different and correct.)
conclusion:
Don't use gcc-2.95.2 to compile your kernel!
so long
Ingo Rohloff
^ permalink raw reply [flat|nested] 5+ messages in thread
* epic100.c, gcc-2.95.2 compiler bug!
2001-09-07 14:01 ` Ingo Rohloff
@ 2001-09-07 14:03 ` Ingo Rohloff
2001-09-07 14:13 ` antirez
0 siblings, 1 reply; 5+ messages in thread
From: Ingo Rohloff @ 2001-09-07 14:03 UTC (permalink / raw)
To: epic, linux-kernel
Hi,
I posted an error report about the epic100.c module about one
week before.
The sympotms were lot's of messages of this in /var/log/messages:
"kernel: eth0: Too much work at interrupt, IntrStatus=0x008d0004"
After one week of really frustrating debugging and incrementally
morphing the working version of the driver I got into the (for
me) non-working linux-2.4.9 version I finally found out what was
going on: the linux-2.4.9 driver has no bug!
BEWARE: DON'T USE gcc-2.95.2!
I compiled the linux-2.4.9 version with gcc-2.95.2.
And I can _definitely_ confirm that epic100.c triggers a compiler
bug. (I have the erronous assembler code on my harddisk if anyone is
interested.)
Compile the same module with gcc-2.95.3 and the bug is gone
(at least in my case. The assembler code is different and correct.)
conclusion:
Don't use gcc-2.95.2 to compile your kernel!
so long
Ingo Rohloff
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: epic100.c, gcc-2.95.2 compiler bug!
2001-09-07 14:03 ` epic100.c, gcc-2.95.2 compiler bug! Ingo Rohloff
@ 2001-09-07 14:13 ` antirez
2001-09-07 14:26 ` Jakub Jelinek
0 siblings, 1 reply; 5+ messages in thread
From: antirez @ 2001-09-07 14:13 UTC (permalink / raw)
To: Ingo Rohloff; +Cc: epic, linux-kernel
On Fri, Sep 07, 2001 at 04:03:15PM +0200, Ingo Rohloff wrote:
> BEWARE: DON'T USE gcc-2.95.2!
> I compiled the linux-2.4.9 version with gcc-2.95.2.
> And I can _definitely_ confirm that epic100.c triggers a compiler
> bug. (I have the erronous assembler code on my harddisk if anyone is
> interested.)
The following seems a gcc 3.0 bug, not sure it was fixed in gcc 3.01.
See the assembly generated with -O3 for the following code:
--------------------------------------------------------------
inline static long QInt(double inval)
{
long *l;
char *c = (char*) &inval;
inval = 68719476991.99;
l = (long*) (c+2);
return *l;
}
int main(void)
{
printf("%lu\n", QInt(OFFENDING_VALUE));
return 0;
}
---------------------------------------------------------------
the above function is compiled as:
.file "test2.c"
.section .rodata
.LC0:
.string "%lu\n"
.text
.align 16
.globl main
.type main,@function
main:
pushl %ebp
movl %esp, %ebp
subl $48, %esp
* movl $16776561, -32(%ebp)
* movl -30(%ebp), %eax
* movl $1110441984, -28(%ebp)
pushl %eax
pushl $.LC0
call printf
addl $16, %esp
movl %ebp, %esp
xorl %eax, %eax
popl %ebp
ret
.Lfe1:
.size main,.Lfe1-main
.ident "GCC: (GNU) 3.0"
Note the line I marked with "*".
The double var is 8 byte, it is loaded
moving two 32 bit words in the -32 and -28 offset.
Unfortunatelly with -O3 the "*l" value get
computed between the two 'movl', and not after
the second movl.
This code is really unsane anyway but this seems
a clear gcc 3.0 bug.
I hope that the gcc folks here may report the
problem if not already known.
I didn't tested it but maybe the same problem
exists with other 8 byte types like 'long long'.
regards,
antirez
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: epic100.c, gcc-2.95.2 compiler bug!
2001-09-07 14:13 ` antirez
@ 2001-09-07 14:26 ` Jakub Jelinek
0 siblings, 0 replies; 5+ messages in thread
From: Jakub Jelinek @ 2001-09-07 14:26 UTC (permalink / raw)
To: antirez; +Cc: linux-kernel
On Fri, Sep 07, 2001 at 04:13:23PM +0200, antirez wrote:
> The following seems a gcc 3.0 bug, not sure it was fixed in gcc 3.01.
>
> See the assembly generated with -O3 for the following code:
a) what does this have to do with the kernel?
b) it is not a compiler bug, read info gcc about strict-aliasing
Jakub
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2001-09-07 14:26 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-03 11:04 epic100.c, SMC EtherPower II, SMC83c170/175 "EPIC" Ingo Rohloff
2001-09-07 14:01 ` Ingo Rohloff
2001-09-07 14:03 ` epic100.c, gcc-2.95.2 compiler bug! Ingo Rohloff
2001-09-07 14:13 ` antirez
2001-09-07 14:26 ` Jakub Jelinek
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).