• Konrad Rzeszutek Wilk's avatar
    x86, iommu: Add proper dependency sort routine (and sanity check). · 5bef80a4
    Konrad Rzeszutek Wilk authored
    We are using a very simple sort routine which sorts the .iommu_table
    array in the order of dependencies. Specifically each structure
    of iommu_table_entry has a field 'depend' which contains the function
    pointer to the IOMMU that MUST be run before us. We sort the array
    of structures so that the struct iommu_table_entry with no
    'depend' field are first, and then the subsequent ones are the
    ones for which the 'depend' function has been already invoked
    (in other words, precede us).
    
    Using the kernel's version 'sort', which is a mergeheap is
    feasible, but would require making the comparison operator
    scan recursivly the array to satisfy the "heapify" process: setting the
    levels properly. The end result would much more complex than it should
    be an it is just much simpler to utilize this simple sort routine.
    Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    LKML-Reference: <1282845485-8991-4-git-send-email-konrad.wilk@oracle.com>
    CC: H. Peter Anvin <hpa@zytor.com>
    CC: Fujita Tomonori <fujita.tomonori@lab.ntt.co.jp>
    Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
    5bef80a4
pci-iommu_table.c 2 KB