kernelnewbies.kernelnewbies.org archive mirror
 help / color / mirror / Atom feed
* Is it illegal to have kernel virtual address == 0 ?
@ 2017-01-15 10:17 Ran Shalit
  2017-01-15 10:54 ` Greg KH
  0 siblings, 1 reply; 3+ messages in thread
From: Ran Shalit @ 2017-01-15 10:17 UTC (permalink / raw)
  To: kernelnewbies

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Is it illegal to have kernel virtual address == 0 ?
  2017-01-15 10:17 Is it illegal to have kernel virtual address == 0 ? Ran Shalit
@ 2017-01-15 10:54 ` Greg KH
  2017-01-15 11:32   ` Ran Shalit
  0 siblings, 1 reply; 3+ messages in thread
From: Greg KH @ 2017-01-15 10:54 UTC (permalink / raw)
  To: kernelnewbies

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

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Is it illegal to have kernel virtual address == 0 ?
  2017-01-15 10:54 ` Greg KH
@ 2017-01-15 11:32   ` Ran Shalit
  0 siblings, 0 replies; 3+ messages in thread
From: Ran Shalit @ 2017-01-15 11:32 UTC (permalink / raw)
  To: kernelnewbies

On Sun, Jan 15, 2017 at 12:54 PM, Greg KH <greg@kroah.com> wrote:
> 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,

Thank you very much,
Ran

>
> greg k-h

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-01-15 11:32 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-15 10:17 Is it illegal to have kernel virtual address == 0 ? Ran Shalit
2017-01-15 10:54 ` Greg KH
2017-01-15 11:32   ` Ran Shalit

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).