lkml.org 
[lkml]   [2009]   [Sep]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 05/14] x86/amd-iommu: Introduce set_dte_entry function
    Date
    This function factors out some logic of attach_device to a
    seperate function. This new function will be used to update
    device table entries when necessary.

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

    diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
    index 5265dd1..0fab1f1 100644
    --- a/arch/x86/kernel/amd_iommu.c
    +++ b/arch/x86/kernel/amd_iommu.c
    @@ -1058,18 +1058,10 @@ static struct protection_domain *domain_for_device(u16 devid)
    return dom;
    }

    -/*
    - * If a device is not yet associated with a domain, this function does
    - * assigns it visible for the hardware
    - */
    -static void attach_device(struct amd_iommu *iommu,
    - struct protection_domain *domain,
    - u16 devid)
    +static void set_dte_entry(u16 devid, struct protection_domain *domain)
    {
    - unsigned long flags;
    u64 pte_root = virt_to_phys(domain->pt_root);
    -
    - domain->dev_cnt += 1;
    + unsigned long flags;

    pte_root |= (domain->mode & DEV_ENTRY_MODE_MASK)
    << DEV_ENTRY_MODE_SHIFT;
    @@ -1082,6 +1074,21 @@ static void attach_device(struct amd_iommu *iommu,

    amd_iommu_pd_table[devid] = domain;
    write_unlock_irqrestore(&amd_iommu_devtable_lock, flags);
    +}
    +
    +/*
    + * If a device is not yet associated with a domain, this function does
    + * assigns it visible for the hardware
    + */
    +static void attach_device(struct amd_iommu *iommu,
    + struct protection_domain *domain,
    + u16 devid)
    +{
    + /* set the DTE entry */
    + set_dte_entry(devid, domain);
    +
    + /* increase reference counter */
    + domain->dev_cnt += 1;

    /*
    * We might boot into a crash-kernel here. The crashed kernel
    --
    1.6.3.3



    \
     
     \ /
      Last update: 2009-09-04 11:45    [W:0.028 / U:0.376 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site