• Rob Herring's avatar
    of/unittest: Add dma-ranges address translation tests · 04db93a9
    Rob Herring authored
    The functions for parsing 'dma-ranges' ranges are buggy and fail to
    handle several conditions. Add new tests for of_dma_get_range() and
    for_each_of_pci_range().
    
    With this test, we get 5 new failures which are fixed in subsequent
    commits:
    
    OF: translation of DMA address(0) to CPU address failed node(/testcase-data/address-tests/device@70000000)
    FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/device@70000000 rc=-22
    OF: translation of DMA address(10000000) to CPU address failed node(/testcase-data/address-tests/bus@80000000/device@1000)
    FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/bus@80000000/device@1000 rc=-22
    OF: translation of DMA address(0) to CPU address failed node(/testcase-data/address-tests/pci@90000000)
    FAIL of_unittest_dma_ranges_one():798 of_dma_get_range failed on node /testcase-data/address-tests/pci@90000000 rc=-22
    FAIL of_unittest_pci_dma_ranges():851 for_each_of_pci_range wrong CPU addr (d0000000) on node /testcase-data/address-tests/pci@90000000
    FAIL of_unittest_pci_dma_ranges():861 for_each_of_pci_range wrong CPU addr (ffffffffffffffff) on node /testcase-data/address-tests/pci@90000000
    
    Cc: Robin Murphy <robin.murphy@arm.com>
    Tested-by: default avatarNicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Reviewed-by: default avatarNicolas Saenz Julienne <nsaenzjulienne@suse.de>
    Signed-off-by: default avatarRob Herring <robh@kernel.org>
    04db93a9
unittest.c 71.4 KB