Problem with map_user_kiobuf() not mapping to physical memory
Terry Barnaby (terry@beam.demon.co.uk)
Wed, 02 May 2001 16:33:40 +0100
We are developing a Linux driver which allows a device to read/write
directly
into a processes virtual memory space.
I have a question on using map_user_kiobuf() as we are having problems.
I was under the impression that if I used map_user_kiobuf() this would
map
the users virtual address space into locked physical memory pages so
that
I/O could be performed.
However, I note that if the user just mallocs memory and does not access
it
(No physical memory pages created) and then passes this virtual address
space
to the driver which performs a map_user_kiobuf() on it, the resulting
kiobuf
structure has all of the pagelist[] physical address entries set to the
same value
and the maplist[] entries set to 0. The devices access to this memory
now
causes system problems.
Is map_user_kiobuf() working correctly ?
Should I call some function to map the virtual address space into
physical memory
or at least pages before I call map_user_kiobuf() ?
Cheers
Terry
--
Dr Terry Barnaby BEAM Ltd
Phone: +44 1454 324512 Northavon Business Center, Dean Rd
Fax: +44 1454 313172 Yate, Bristol, BS37 5NH, UK
Email: terry@beam.demon.co.uk Web: www.beam.demon.co.uk
BEAM for: Visually Impaired X-Terminals, Parallel Processing, Software Dev
"Tandems are twice the fun !"
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/