get_user_pages and pinning

Sadanand Warrier sadanandwarrier at
Sat Jan 2 07:39:08 EST 2021

   Since Linux uses lazy evaluation with respect to allocating memory
what happens if a user process allocates memory using malloc in excess
of say 8 or nine pages and calls a device ioctl and passes the user
space pointer to it to be used to pin pages using get_user_pages().
This buffer is to be used for a dma read from a device.
What happens if the memory isn't actually allocated (no initialization
with memset or calloc etc. and all PTEs are pointing to some zero
filled page) and there is no IOMMU?


More information about the Kernelnewbies mailing list