Date: Mon, 17 Sep 2007 21:55:28 +0000 (UTC) From: Peter Wemm <peter@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/i386/i386 genassym.c src/sys/amd64/amd64 genassym.c Message-ID: <200709172155.l8HLtSJ1015353@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
peter 2007-09-17 21:55:28 UTC FreeBSD src repository Modified files: sys/i386/i386 genassym.c sys/amd64/amd64 genassym.c Log: 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200709172155.l8HLtSJ1015353>