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/