cvs commit: src/sys/i386/i386 genassym.c src/sys/amd64/amd64
peter at FreeBSD.org
Mon Sep 17 14:55:28 PDT 2007
peter 2007-09-17 21:55:28 UTC
FreeBSD src repository
Fix an undefined symbol that as/ld neglected to flag as a problem. It
was used in assembler code in such a way that no unresolved relocation
records were generated, so ld didn't flag the problem. You can see
this with an 'nm' of the kernel. There will be 'U MAXCPU' on SMP systems.
The impact of this is that the intrcount/intrnames arrays do not have
the intended amount of space reserved. This could lead to interesting
problems due to the arrays being present in the middle of kernel code.
An overflow would be rather interesting as executable code would be used
as per-cpu incrementing interrupt counters.
This fixes it for now by exporting MAXCPU to the assembler. A better fix
might be to define these data structures in C - they're only referenced
in the kernel from C code these days anyway.
Approved by: re (kensmith)
Revision Changes Path
1.165 +1 -0 src/sys/amd64/amd64/genassym.c
1.160 +1 -0 src/sys/i386/i386/genassym.c
More information about the cvs-src