Re: Information on ioctl32

From: James Hansen
Date: Mon Oct 24 2005 - 05:52:22 EST


Sorry, I'll explain a little more about I'm doing.

The kernel I'm running is the default kernel from the (unofficial) debian amd64 distro. uname says it's 2.6.8-11-amd64-generic. When running a 32bit app, linked against the 32bit libraries, calling a 64bit driver in, the kernel logs messages saying something along the lines of "ioctl32 not defined".

The headers I'm building my modules against are from the package 'kernel-headers-2.6.8-11-amd64-generic' which leaves me with the directory 'kernel-headers-2.6.8-11-amd64-generic' in /usr/src.

My problem is that when I look in the headers at the file_operations struct for compat_ioctl there's no entry there, and I therefore can't define a function for it. I had no idea there was a dynamic system in place before what's mentioned on lwn. I'd assumed that as my kernel was trying to call ioctl32, that it would have had the patch applied, and it's headers should have contained an appropriate entry in file_operations.

So it looks like I'll have implement both ways of doing things, one for pre-2.6.11 and another for post 2.6.11 kernels.

Would you know of anywhere else I could look for information on the dynamic method you mentioned that existed in kernels before 2.6.11.

Thanks for the help btw. Much appreciated.

James

Arnd Bergmann wrote:

On Maandag 24 Oktober 2005 10:58, James Hansen wrote:


From what they say over on lwn.net, I need to apply a patch, but my current kernel (debian for amd64) is already trying to call it ioctl32.



No, you should not need to apply any patch, the compat_ioctl
infrastructure has been in there since 2.6.11. The old dynamic
ioctl32 subsystem has been removed for 2.6.14.



Problem is, the kernel headers don't seem to have an entry in the file_operations struct for compat_ioctl. Does anyone know if there's any other place (struct) I should be looking to put this function?

I thought it a bit odd that the prebuilt default kernel is trying to call this function, but the headers for this kernel don't seem to allow me to insert it into the fops struct.



You seem to be mixing up stuff. Are you looking at the headers in
the kernel source tree or another copy? Are you sure you are running
a recent kernel level?

Arnd <><
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/






-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/