lkml.org 
[lkml]   [2008]   [Jun]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 09/34] AMD IOMMU: add command buffer (de-)allocation
    Date
    This patch adds the functions to allocate and deallocate the command buffer for
    one IOMMU in the system.

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

    diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c
    index ffb8ac8..c2be3ad 100644
    --- a/arch/x86/kernel/amd_iommu_init.c
    +++ b/arch/x86/kernel/amd_iommu_init.c
    @@ -278,3 +278,33 @@ static int __init find_last_devid_acpi(struct acpi_table_header *table)
    return 0;
    }

    +static u8 * __init alloc_command_buffer(struct amd_iommu *iommu)
    +{
    + u8 *cmd_buf = (u8 *)__get_free_pages(GFP_KERNEL,
    + get_order(CMD_BUFFER_SIZE));
    + u64 entry = 0;
    +
    + if (cmd_buf == NULL)
    + return NULL;
    +
    + iommu->cmd_buf_size = CMD_BUFFER_SIZE;
    +
    + memset(cmd_buf, 0, CMD_BUFFER_SIZE);
    +
    + entry = (u64)virt_to_phys(cmd_buf);
    + entry |= MMIO_CMD_SIZE_512;
    + memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET,
    + &entry, sizeof(entry));
    +
    + iommu_feature_enable(iommu, CONTROL_CMDBUF_EN);
    +
    + return cmd_buf;
    +}
    +
    +static void __init free_command_buffer(struct amd_iommu *iommu)
    +{
    + if (iommu->cmd_buf)
    + free_pages((unsigned long)iommu->cmd_buf,
    + get_order(CMD_BUFFER_SIZE));
    +}
    +
    --
    1.5.3.7



    \
     
     \ /
      Last update: 2008-06-26 21:43    [W:4.179 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site