On Sun, Jan 15, 2017 at 12:17:40PM +0200, Ran Shalit wrote: > 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. Yes, if dma_alloc_coherent returns NULL, an error happened and the memory could not be allocated. In-kernel memory pointers will never be NULL if they are valid. Hope this helps, greg k-h _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies