diff options
author | Takashi Iwai <tiwai@suse.de> | 2008-12-24 11:04:08 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2008-12-24 11:04:08 +0100 |
commit | 7645c4bfbb36f357f03815f5729c46ce8d89f008 (patch) | |
tree | eb2c45bbdfc715a9a6e96e6af9675a0440ef8ff1 /arch/x86/kernel/amd_iommu_init.c | |
parent | 74b7ff48a93f44198ac03cc4e628d713f53d4668 (diff) | |
parent | 574f3c4f5c55e99ea60f71fd98cc54931d4b2eae (diff) |
Merge branch 'fix/hda' into topic/hda
Diffstat (limited to 'arch/x86/kernel/amd_iommu_init.c')
-rw-r--r-- | arch/x86/kernel/amd_iommu_init.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index 30ae2701b3df1..c6cc22815d35f 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c @@ -427,6 +427,10 @@ static u8 * __init alloc_command_buffer(struct amd_iommu *iommu) memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET, &entry, sizeof(entry)); + /* set head and tail to zero manually */ + writel(0x00, iommu->mmio_base + MMIO_CMD_HEAD_OFFSET); + writel(0x00, iommu->mmio_base + MMIO_CMD_TAIL_OFFSET); + iommu_feature_enable(iommu, CONTROL_CMDBUF_EN); return cmd_buf; @@ -1074,7 +1078,8 @@ int __init amd_iommu_init(void) goto free; /* IOMMU rlookup table - find the IOMMU for a specific device */ - amd_iommu_rlookup_table = (void *)__get_free_pages(GFP_KERNEL, + amd_iommu_rlookup_table = (void *)__get_free_pages( + GFP_KERNEL | __GFP_ZERO, get_order(rlookup_table_size)); if (amd_iommu_rlookup_table == NULL) goto free; |