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 25/34] x86/amd-iommu: Rearrange dma_ops related functions
    Date
    This patch rearranges two dma_ops related functions so that
    their forward declarations are not longer necessary.

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

    diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
    index 90b3650..14b60c0 100644
    --- a/arch/x86/kernel/amd_iommu.c
    +++ b/arch/x86/kernel/amd_iommu.c
    @@ -57,11 +57,6 @@ struct iommu_cmd {
    u32 data[4];
    };

    -static int dma_ops_unity_map(struct dma_ops_domain *dma_dom,
    - struct unity_map_entry *e);
    -static void dma_ops_reserve_addresses(struct dma_ops_domain *dom,
    - unsigned long start_page,
    - unsigned int pages);
    static void reset_iommu_command_buffer(struct amd_iommu *iommu);
    static void update_domain(struct protection_domain *domain);

    @@ -823,28 +818,6 @@ static int iommu_for_unity_map(struct amd_iommu *iommu,
    }

    /*
    - * Init the unity mappings for a specific IOMMU in the system
    - *
    - * Basically iterates over all unity mapping entries and applies them to
    - * the default domain DMA of that IOMMU if necessary.
    - */
    -static int iommu_init_unity_mappings(struct amd_iommu *iommu)
    -{
    - struct unity_map_entry *entry;
    - int ret;
    -
    - list_for_each_entry(entry, &amd_iommu_unity_map, list) {
    - if (!iommu_for_unity_map(iommu, entry))
    - continue;
    - ret = dma_ops_unity_map(iommu->default_dom, entry);
    - if (ret)
    - return ret;
    - }
    -
    - return 0;
    -}
    -
    -/*
    * This function actually applies the mapping to the page table of the
    * dma_ops domain.
    */
    @@ -873,6 +846,28 @@ static int dma_ops_unity_map(struct dma_ops_domain *dma_dom,
    }

    /*
    + * Init the unity mappings for a specific IOMMU in the system
    + *
    + * Basically iterates over all unity mapping entries and applies them to
    + * the default domain DMA of that IOMMU if necessary.
    + */
    +static int iommu_init_unity_mappings(struct amd_iommu *iommu)
    +{
    + struct unity_map_entry *entry;
    + int ret;
    +
    + list_for_each_entry(entry, &amd_iommu_unity_map, list) {
    + if (!iommu_for_unity_map(iommu, entry))
    + continue;
    + ret = dma_ops_unity_map(iommu->default_dom, entry);
    + if (ret)
    + return ret;
    + }
    +
    + return 0;
    +}
    +
    +/*
    * Inits the unity mappings required for a specific device
    */
    static int init_unity_mappings_for_device(struct dma_ops_domain *dma_dom,
    @@ -909,6 +904,26 @@ static int init_unity_mappings_for_device(struct dma_ops_domain *dma_dom,
    */

    /*
    + * Used to reserve address ranges in the aperture (e.g. for exclusion
    + * ranges.
    + */
    +static void dma_ops_reserve_addresses(struct dma_ops_domain *dom,
    + unsigned long start_page,
    + unsigned int pages)
    +{
    + unsigned int i, last_page = dom->aperture_size >> PAGE_SHIFT;
    +
    + if (start_page + pages > last_page)
    + pages = last_page - start_page;
    +
    + for (i = start_page; i < start_page + pages; ++i) {
    + int index = i / APERTURE_RANGE_PAGES;
    + int page = i % APERTURE_RANGE_PAGES;
    + __set_bit(page, dom->aperture[index]->bitmap);
    + }
    +}
    +
    +/*
    * This function is used to add a new aperture range to an existing
    * aperture in case of dma_ops domain allocation or address allocation
    * failure.
    @@ -1166,26 +1181,6 @@ static void domain_id_free(int id)
    write_unlock_irqrestore(&amd_iommu_devtable_lock, flags);
    }

    -/*
    - * Used to reserve address ranges in the aperture (e.g. for exclusion
    - * ranges.
    - */
    -static void dma_ops_reserve_addresses(struct dma_ops_domain *dom,
    - unsigned long start_page,
    - unsigned int pages)
    -{
    - unsigned int i, last_page = dom->aperture_size >> PAGE_SHIFT;
    -
    - if (start_page + pages > last_page)
    - pages = last_page - start_page;
    -
    - for (i = start_page; i < start_page + pages; ++i) {
    - int index = i / APERTURE_RANGE_PAGES;
    - int page = i % APERTURE_RANGE_PAGES;
    - __set_bit(page, dom->aperture[index]->bitmap);
    - }
    -}
    -
    static void free_pagetable(struct protection_domain *domain)
    {
    int i, j;
    --
    1.6.5.3



    \
     
     \ /
      Last update: 2009-11-27 14:59    [W:0.029 / U:29.544 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site