i8k module and x86_64 kernel
Dave Jones
davej at redhat.com
Thu Nov 9 22:57:34 UTC 2006
On Thu, Nov 09, 2006 at 11:41:30PM +0100, Marcel J.E. Mol wrote:
> On Thu, Nov 09, 2006 at 04:45:13PM -0500, Dave Jones wrote:
> > On Thu, Nov 09, 2006 at 02:49:11PM +0100, Marcel J.E. Mol wrote:
> >
> > > I forced compilation of the driver for x86_64 and the basic part seems to
> > > work, but it oopses on the small bit of assembly code in the i8k_smm function
> > > of the driver:
> >
> > I'm surprised you got it to build in 64bit at all. It's 32bit assembly,
> > which isn't going to dtrt in a 64bit kernel. Secondly, SMM is very very
> > magical code that has to be done correctly for the CPU its targetting
> > otherwise it'll just go bang instantly.
>
> Well, it build after changing the pushl and popl into pushq and popq
> (and changing the register names to 64 bit versions). But although this
> first attempt got me a insmoddable module, it crashes. I looked a bit further
> into it and have working version running for a couple of hours now.
> It at least show me the fan status and speeds.
> Patch attached. I'm not really into assembly and am not sure if
> it is all correct, so if it is usefull maybe someone can check it for
> validity.
Heh. I was about to suggest you send this to the upstream i8k maintainer,
then I realised who you are :-)
It looks like valid assembly to me, but as for whether its doing the right
thing, I've no idea due to the lack of specs. I guess only Dell can answer
for sure. Though if it works, I guess that's a good sign :)
Dave
--
http://www.codemonkey.org.uk
More information about the users
mailing list