mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: copy_to_user to a kmapped address
  2002-08-26 21:19 copy_to_user to a kmapped address Jeff Dike
@ 2002-08-26 20:33 ` Russell King
  2002-08-26 22:31   ` Jeff Dike
  0 siblings, 1 reply; 3+ messages in thread
From: Russell King @ 2002-08-26 20:33 UTC (permalink / raw)
  To: Jeff Dike; +Cc: linux-kernel

On Mon, Aug 26, 2002 at 04:19:37PM -0500, Jeff Dike wrote:
> Is this (in file_read_actor) bogus or am I missing something?
> 
> 1621            kaddr = kmap(page);
> 1622            left = __copy_to_user(desc->buf, kaddr + offset, size);
> 1623            kunmap(page);
> 
> It seems to me that copy_to_user should be able to assume that the destination
> address is a user address.
> 
> This is biting me because I'm moving the UML kernel into a separate address
> space, so there's no way, in general, to tell the difference between a kernel
> address and a userspace address.

Umm, that's copying from kaddr + offset _to_ desc->buf.  desc->buf
should be the user space address, and kaddr + offset a kernel address:

unsigned long __copy_to_user(void *to, const void *from, unsigned long n)

-- 
Russell King (rmk@arm.linux.org.uk)                The developer of ARM Linux
             http://www.arm.linux.org.uk/personal/aboutme.html


^ permalink raw reply	[flat|nested] 3+ messages in thread

* copy_to_user to a kmapped address
@ 2002-08-26 21:19 Jeff Dike
  2002-08-26 20:33 ` Russell King
  0 siblings, 1 reply; 3+ messages in thread
From: Jeff Dike @ 2002-08-26 21:19 UTC (permalink / raw)
  To: linux-kernel

Is this (in file_read_actor) bogus or am I missing something?

1621            kaddr = kmap(page);
1622            left = __copy_to_user(desc->buf, kaddr + offset, size);
1623            kunmap(page);

It seems to me that copy_to_user should be able to assume that the destination
address is a user address.

This is biting me because I'm moving the UML kernel into a separate address
space, so there's no way, in general, to tell the difference between a kernel
address and a userspace address.

				Jeff


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: copy_to_user to a kmapped address
  2002-08-26 20:33 ` Russell King
@ 2002-08-26 22:31   ` Jeff Dike
  0 siblings, 0 replies; 3+ messages in thread
From: Jeff Dike @ 2002-08-26 22:31 UTC (permalink / raw)
  To: Russell King; +Cc: linux-kernel

rmk@arm.linux.org.uk said:
> Umm, that's copying from kaddr + offset _to_ desc->buf.  desc->buf
> should be the user space address, and kaddr + offset a kernel address:

Duh, nevermind...

				Jeff




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-08-26 21:23 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-26 21:19 copy_to_user to a kmapped address Jeff Dike
2002-08-26 20:33 ` Russell King
2002-08-26 22:31   ` Jeff Dike

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®