On 08/08/2017 10:57 AM, Luis R. Rodriguez wrote:
> On Tue, Aug 08, 2017 at 09:40:26AM -0700, Florian Fainelli wrote:
>> Add a test module that allows testing that CONFIG_DEBUG_VIRTUAL works
>> correctly, at least that it can catch invalid calls to virt_to_phys()
>> against the non-linear kernel virtual address map.
>>
>> Signed-off-by: Florian Fainelli <f.faine...@gmail.com>
>> ---

>> +static int __init test_debug_virtual_init(void)
>> +{
>> +    phys_addr_t pa;
>> +    void *va;
>> +
>> +    va = (void *)VMALLOC_START;
>> +    pa = virt_to_phys(va);
>> +
>> +    pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
>> +
>> +    foo = kzalloc(sizeof(*foo), GFP_KERNEL);
>> +    if (!foo)
>> +            return -ENOMEM;
>> +
>> +    pa = virt_to_phys(foo);
>> +    va = foo;
>> +    pr_info("PA: %pa for VA: 0x%lx\n", &pa, (unsigned long)va);
> 
> Should there be a tests here of some sort? When should this fail, why?

There is no test per-se, the kernel will produce warning with
CONFIG_DEBUG_VIRTUAL telling you that what you are doing is wrong.

> There is no docs on this self test, could one be added?

I suppose I could add one even though that just means pointing out the
code that produces the warning?
-- 
Florian

Reply via email to