Created attachment 456381 [details] convert asm() to asm volatile() Description of problem: i8k still seems to use asm() for its calls. Under newer gcc versions, this seems to get optimised out. To prevent this, it should be called as: asm volatile(). Without it, the output of /proc/i8k is useless. It also shows in the loading of the i8k module: [ 30.519132] i8k: unable to get SMM Dell signature [ 30.519206] i8k: unable to get SMM BIOS version [ 30.519223] Dell laptop SMM driver v1.14 21/02/2005 Massimo Dal Zotto (dz) Version-Release number of selected component (if applicable): kernel-2.6.35.6-46.fc14.i686 The attached patch changes the two asm() calls to asm volatile() calls.
Further information on this can be obtained here: https://bbs.archlinux.org/viewtopic.php?pid=780692#p780692 I haven't tested this patch as yet - as my knowledge of how to build kernels the fedora way is very lacking. I would be more than happy to test this if someone can build me an rpm for it.
Thanks, I'll look at this and build you a test kernel tonight.
http://koji.fedoraproject.org/koji/taskinfo?taskID=2568002 F-14 scratch build here. Also, I noticed there was a thread on lkml, so I replied with your info an CC'd the upstream author. Hopefully he'll pick up the patch. (http://lkml.org/lkml/2010/10/31/128) --Kyle
http://koji.fedoraproject.org/koji/taskinfo?taskID=2568014 Woops, didn't notice the patch was relative to ./ so the build failed, give this one a try. (I'd have just built it locally, but I see you're on i686 and I don't have mock setup to build...)
Thanks Kyle, I'll give this a whirl as soon as I get some time in front of that machine. Should be 12-24 hours at most.
I now get the following in dmesg: [ 27.848372] i8k: unable to get SMM BIOS version [ 27.848392] Dell laptop SMM driver v1.14 21/02/2005 Massimo Dal Zotto (dz) /proc/i8k now has sane values, fan speed reporting works ok, as does temperature readings. I would consider this to be fixed using this test kernel.
http://kyle.fedorapeople.org/kernel/2.6.35.6-49.2.bz647677.fc14/i686/ Can you try the kernel here? It should print out a line around there telling us why it can't get the SMM BIOS version, please paste that here. I think there's either a high bit set (so it's negative) or that call just plain fails, in which case the message is expected. I'll queue up that fix for the releases. --Kyle
Ahhh - Right you are: # uname -a Linux dell8600 2.6.35.6-49.2.bz647677.fc14.i686 #1 SMP Mon Nov 1 14:58:04 EDT 2010 i686 i686 i386 GNU/Linux [ 28.580881] i8k: couldn't retrieve smm bios version (ret = -22) [ 28.580885] i8k: unable to get SMM BIOS version [ 28.580902] Dell laptop SMM driver v1.14 21/02/2005 Massimo Dal Zotto (dz)
Ah, that's -EINVAL. I guess that call isn't supported on your BIOS. :/ Ok, cool, thanks for testing that!
Sorry, I missed committing this after you tested it. Committed now to F14.
kernel-2.6.35.9-64.fc14 has been submitted as an update for Fedora 14. https://admin.fedoraproject.org/updates/kernel-2.6.35.9-64.fc14
kernel-2.6.35.9-64.fc14 has been pushed to the Fedora 14 stable repository. If problems still persist, please make note of it in this bug report.