Comment 15 for bug 644898

Revision history for this message
Daniel Smith (connect404) wrote :

I've been trying to compile this patch into the 2.6.37rc2 mainline kernel but have run into a few issues. The reason for trying to get it up and running with .37 to resolve the well documented lag/speed issues on Maverick with the .35 kernel.

So I patched the .37 toshiba.acpi with the link above and tried to compile:

dsmith@pez:/usr/src/linux-2.6.37-rc2/drivers/platform/x86$ sudo make -C /usr/src/linux-headers-`uname -r` M=`pwd` modules
make: Entering directory `/usr/src/linux-headers-2.6.37-020637rc2-generic'
  CC [M] /usr/src/linux-2.6.37-rc2/drivers/platform/x86/toshiba_acpi.o
/usr/src/linux-2.6.37-rc2/drivers/platform/x86/toshiba_acpi.c:819: error: unknown field ‘ioctl’ specified in initializer
/usr/src/linux-2.6.37-rc2/drivers/platform/x86/toshiba_acpi.c:820: warning: initialization from incompatible pointer type
make[1]: *** [/usr/src/linux-2.6.37-rc2/drivers/platform/x86/toshiba_acpi.o] Error 1
make: *** [_module_/usr/src/linux-2.6.37-rc2/drivers/platform/x86] Error 2
make: Leaving directory `/usr/src/linux-headers-2.6.37-020637rc2-generic'

Seems that ioctl variable has been removed from 2.6.37rc1. Ioctl was removed by the merging of the BKL (big kernel lock) tree.

So I hacked toshiba_acpi.c a little to get it compiling from:
(line 859)
static int
tosh_ioctl(struct inode* ip, struct file* fp, unsigned int cmd,
 unsigned long arg)

to:
static long
    tosh_ioctl(struct file* fp, unsigned int cmd,
 unsigned long arg)

and also from:
(line 921)
.ioctl = tosh_ioctl
to:
.compat_ioctl = tosh_ioctl

Compiles clean, inserts and loads up but I cant get access to toshet. What is interesting is I can cat /proc/toshiba
dsmith@pez:/usr/src/linux-2.6.37-rc2/drivers/platform/x86$ cat /proc/toshiba
1.1 0xfcff 0.0 0.45 0x418e 0x00

Well I'm no kernel hacker and am not really sure what Im doing past here... any ideas?