Date: Sun, 8 May 2005 09:16:34 +0000 (UTC) From: Bill Paul <wpaul@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/compat/ndis subr_ntoskrnl.c Message-ID: <200505080916.j489GYVl051432@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
wpaul 2005-05-08 09:16:34 UTC FreeBSD src repository Modified files: sys/compat/ndis subr_ntoskrnl.c Log: Correct the patch table entries for the 64-bit intrinsic math routines (_alldiv(), _allmul(), _alludiv(), _aullmul(), etc...) that use the _stdcall calling convention. These routines all take two arguments, but the arguments are 64 bits wide. On the i386 this means they each consume two 32-bit slots on the stack. Consequently, when we specify the argument count in the IMPORT_SFUNC() macro, we have to lie and claim there are 4 arguments instead of two. This will cause the resulting i386 assembly wrapper to push the right number of longwords onto the stack. This fixes a crash I discovered with the RealTek 8180 driver, which uses these routines a lot during initialization. Revision Changes Path 1.68 +6 -6 src/sys/compat/ndis/subr_ntoskrnl.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200505080916.j489GYVl051432>