From: Andi Kleen <andi@firstfloor.org>
To: april <aapril03@gmail.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Is compat_sys_ioctl called when both kernel and userland are 64bit ?
Date: Wed, 12 Aug 2009 12:44:11 +0200 [thread overview]
Message-ID: <87skfxfh1g.fsf@basil.nowhere.org> (raw)
In-Reply-To: <d67deb790908120227s7816a02cr1ea173a4358fa301@mail.gmail.com> (april's message of "Wed, 12 Aug 2009 17:27:27 +0800")
april <aapril03@gmail.com> writes:
>
> it seems when a kernel is built to x86_64, whenever a ioctl called
> ,the call flow will be ia32_syscall -->compat_sys_ioctl->compat
> ioctl(if provided)
Only for syscalls throught int 0x80 (or 32bit SYSCALL/SYSENTER), which normally
only come from 32bit processes. In theory 64bit processes
could use them, but they normally don't.
> but I have some doubt:
>
> My question is:
> 1. Is compat_sys_ioctl called when both kernel and userland are 64bit
> (suppose I provide those compat ioctl functions)?
No.
> If not, how kernel knows the driver is 32bit or 64bit?
There are no 32bit drivers on a 64bit kernel, all drivers are 64bit.
For 32bit processes running on a 64bit kernel it depends on the
entry points (int 0x80 or SYSENTER/SYSCALL)
> 2. when using mmap, the 64bit kernel will return a 64bit address, and
> a userland(32bit) application can only get the lower 32bit,
> it can work when the memory is not large.
The kernel makes sure to only hand out 32bit addresses to 32bit
processes.
-Andi
--
ak@linux.intel.com -- Speaking for myself only.
next prev parent reply other threads:[~2009-08-12 10:44 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-12 9:27 Is compat_sys_ioctl called when both kernel and userland are 64bit ? april
2009-08-12 10:44 ` Andi Kleen [this message]
2009-08-12 13:00 ` april
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87skfxfh1g.fsf@basil.nowhere.org \
--to=andi@firstfloor.org \
--cc=aapril03@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.