Kernel Space Memory Allocation
marktinguely at gmail.com
Thu Oct 27 13:20:09 UTC 2011
On 10/27/2011 3:31 AM, Daniel Grech wrote:
> I am allocating memory from a device driver in the kernel and passing it on
> to another driver. In the other driver it is neccessary for me to determine
> whether the address passed is from user space or kernel space as this driver
> can also be called from user space. I am currently using the following check
> to determine if the address is in kernel space or userspace :
> if ( ( (char *) VM_MIN_KERNEL_ADDRESS<= address)&& (address<= (char *)
> VM_MAX_KERNEL_ADDRESS) )
> KERNEL SPACE
> USER SPACE
> However, this does not always work. Sometimes although I allocate memory in
> the kernel using the malloc macro, this returns an address which is not in
> the above range. Is there any workaround for this problem?
> Thanks in advance for your help.
> freebsd-hackers at freebsd.org mailing list
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe at freebsd.org"
Be careful if using user virtual addresses in DMA POST commands, because
the interrupt handler may not have the the same address space as the
caller. For example: BUS_DMASYNC_POSTREAD copying a bounce buffer to a
More information about the freebsd-hackers