Merge branch 'iommu-fixes-2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu into x86/urgent
This commit is contained in:
commit
c9bc03ac31
|
@ -235,8 +235,9 @@ static int iommu_completion_wait(struct amd_iommu *iommu)
|
||||||
status &= ~MMIO_STATUS_COM_WAIT_INT_MASK;
|
status &= ~MMIO_STATUS_COM_WAIT_INT_MASK;
|
||||||
writel(status, iommu->mmio_base + MMIO_STATUS_OFFSET);
|
writel(status, iommu->mmio_base + MMIO_STATUS_OFFSET);
|
||||||
|
|
||||||
if (unlikely((i == EXIT_LOOP_COUNT) && printk_ratelimit()))
|
if (unlikely(i == EXIT_LOOP_COUNT))
|
||||||
printk(KERN_WARNING "AMD IOMMU: Completion wait loop failed\n");
|
panic("AMD IOMMU: Completion wait loop failed\n");
|
||||||
|
|
||||||
out:
|
out:
|
||||||
spin_unlock_irqrestore(&iommu->lock, flags);
|
spin_unlock_irqrestore(&iommu->lock, flags);
|
||||||
|
|
||||||
|
|
|
@ -427,6 +427,10 @@ static u8 * __init alloc_command_buffer(struct amd_iommu *iommu)
|
||||||
memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET,
|
memcpy_toio(iommu->mmio_base + MMIO_CMD_BUF_OFFSET,
|
||||||
&entry, sizeof(entry));
|
&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);
|
iommu_feature_enable(iommu, CONTROL_CMDBUF_EN);
|
||||||
|
|
||||||
return cmd_buf;
|
return cmd_buf;
|
||||||
|
|
Loading…
Reference in a new issue