lkml.org 
[lkml]   [2009]   [Nov]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 21/34] x86/amd-iommu: Move find_protection_domain to helper functions
    Date
    This is a helper function and when its placed in the helper
    function section we can remove its forward declaration.

    Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
    ---
    arch/x86/kernel/amd_iommu.c | 57 +++++++++++++++++++++----------------------
    1 files changed, 28 insertions(+), 29 deletions(-)

    diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
    index e5bbe9a..405f8da 100644
    --- a/arch/x86/kernel/amd_iommu.c
    +++ b/arch/x86/kernel/amd_iommu.c
    @@ -59,7 +59,6 @@ struct iommu_cmd {

    static int dma_ops_unity_map(struct dma_ops_domain *dma_dom,
    struct unity_map_entry *e);
    -static struct dma_ops_domain *find_protection_domain(u16 devid);
    static u64 *alloc_pte(struct protection_domain *domain,
    unsigned long address, int end_lvl,
    u64 **pte_page, gfp_t gfp);
    @@ -84,6 +83,34 @@ static inline u16 get_device_id(struct device *dev)
    return calc_devid(pdev->bus->number, pdev->devfn);
    }

    +/*
    + * In this function the list of preallocated protection domains is traversed to
    + * find the domain for a specific device
    + */
    +static struct dma_ops_domain *find_protection_domain(u16 devid)
    +{
    + struct dma_ops_domain *entry, *ret = NULL;
    + unsigned long flags;
    + u16 alias = amd_iommu_alias_table[devid];
    +
    + if (list_empty(&iommu_pd_list))
    + return NULL;
    +
    + spin_lock_irqsave(&iommu_pd_list_lock, flags);
    +
    + list_for_each_entry(entry, &iommu_pd_list, list) {
    + if (entry->target_dev == devid ||
    + entry->target_dev == alias) {
    + ret = entry;
    + break;
    + }
    + }
    +
    + spin_unlock_irqrestore(&iommu_pd_list_lock, flags);
    +
    + return ret;
    +}
    +
    #ifdef CONFIG_AMD_IOMMU_STATS

    /*
    @@ -1456,34 +1483,6 @@ static bool check_device(struct device *dev)
    }

    /*
    - * In this function the list of preallocated protection domains is traversed to
    - * find the domain for a specific device
    - */
    -static struct dma_ops_domain *find_protection_domain(u16 devid)
    -{
    - struct dma_ops_domain *entry, *ret = NULL;
    - unsigned long flags;
    - u16 alias = amd_iommu_alias_table[devid];
    -
    - if (list_empty(&iommu_pd_list))
    - return NULL;
    -
    - spin_lock_irqsave(&iommu_pd_list_lock, flags);
    -
    - list_for_each_entry(entry, &iommu_pd_list, list) {
    - if (entry->target_dev == devid ||
    - entry->target_dev == alias) {
    - ret = entry;
    - break;
    - }
    - }
    -
    - spin_unlock_irqrestore(&iommu_pd_list_lock, flags);
    -
    - return ret;
    -}
    -
    -/*
    * In the dma_ops path we only have the struct device. This function
    * finds the corresponding IOMMU, the protection domain and the
    * requestor id for a given device.
    --
    1.6.5.3



    \
     
     \ /
      Last update: 2009-11-27 15:03    [W:0.040 / U:89.272 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site