Is it illegal to have kernel virtual address == 0 ?

Ran Shalit ranshalit at gmail.com
Sun Jan 15 05:17:40 EST 2017


Hello,

I've seen some modules where it is tested if virtual address is 0, and
if yes, it is acted as if it is an error.
But can't virtual address be zero too ?

For example, in the following module:
https://github.com/khilman/omap-test-dmatest/blob/master/main.c
it is checked the returned value of dma_alloc_coherent as following:

dma_test[i].src_buf = (unsigned long) dma_alloc_coherent(NULL,
buf_size (dma_addr_t *)&dma_test[i].src_buf_phys, GFP_KERNEL |
GFP_DMA);
if (!dma_test[i].src_buf) {
   printk("dmatest_init(): get_zeroed_page() failed.\n");
   r = -ENOMEM;
   goto cleanup;
}

As you can see , when  dma_alloc_coherent returns 0 , it is acted as
if it is an error.

Thank you,
Ran



More information about the Kernelnewbies mailing list