Re: Why can user virtual addresses sometimes be dereferenced in the kernel?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jan Hudec wrote:
| On Mon, Jan 31, 2005 at 01:58:31 +0000, Jon Masters wrote:
|
|>On Fri, 21 Jan 2005 12:59:59 +0100, Arjan van de Ven
|><arjan@xxxxxxxxxxxxx> wrote:
|>
|>>On Thu, 2005-01-20 at 12:54 -0600, Timur Tabi wrote:
|>>
|>>>I recently discovered in a driver I'm working on that there are several
|>>>places where a user-space virtual address is being dereferenced
|>>>successfully.  I was under the impression that that should not work -
|>>>user pointers should not be usuable in kernel space.
|>>
|>>it may work. you may be lucky. The page also may be swapped out and you
|>>crash and burn
|>
|>>as for fc2/3; those kernels have a separate address space for user and
|>>kernel, and as a result such rogue accesses will almost always crash,
|>>not just sometimes.
|>
|>You know, I had wondered what use this patchset had other than for
|>folks with 32bit systems straining under userspace limits - this is
|>actually a pretty cool driver diagnostic tool in and of itself :-)

| Wait a second... Separate address spaces for user and kerenl space?

Yes. But you "need" it is you're $large_customer and you want RH to
offer a solution to the lack of 32 bit userspace memory on Linux.

| That means switching page tables on each kernel entry/exit.

Yup. It's nasty. But then, some others have to do similarly nasty things
- - e.g. processors with virtually indexed caches have to do a full flush
(see recent Linux Devices article comparing the performance of ARM9 with
and without the MMU).

| That means tlb flush on each interrupt. That would mean quite a slowdown.

They reckon it has an acceptable overhead. I guess it depends upon what
you're doing with it.

Jon.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFB/gBleTyyexZHHxERAtckAJ9eggCN2DTnkOlpDcca0eIGl3rOTACfQh1I
9NVr8GuU27duK/esuaYgGsE=
=a6uS
-----END PGP SIGNATURE-----

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux