* [PATCH] iommu/vt-d: Don't store SIRTP request
@ 2014-08-11 11:13 ` Jan Kiszka
0 siblings, 0 replies; 4+ messages in thread
From: Jan Kiszka @ 2014-08-11 11:13 UTC (permalink / raw)
To: Joerg Roedel, iommu, Linux Kernel Mailing List; +Cc: Jiang Liu
Don't store the SIRTP request bit in the register state. It will
otherwise become sticky and could request an Interrupt Remap Table
Pointer update on each command register write.
Found while starting to emulate IR in QEMU, not by observing problems on
real hardware.
Signed-off-by: Jan Kiszka <jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org>
---
drivers/iommu/intel_irq_remapping.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index 0df41f6..a872874 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -438,8 +438,7 @@ static void iommu_set_irq_remapping(struct intel_iommu *iommu, int mode)
(addr) | IR_X2APIC_MODE(mode) | INTR_REMAP_TABLE_REG_SIZE);
/* Set interrupt-remapping table pointer */
- iommu->gcmd |= DMA_GCMD_SIRTP;
- writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
+ writel(iommu->gcmd | DMA_GCMD_SIRTP, iommu->reg + DMAR_GCMD_REG);
IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
readl, (sts & DMA_GSTS_IRTPS), sts);
--
1.8.1.1.298.ge7eed54
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH] iommu/vt-d: Don't store SIRTP request
@ 2014-08-11 11:13 ` Jan Kiszka
0 siblings, 0 replies; 4+ messages in thread
From: Jan Kiszka @ 2014-08-11 11:13 UTC (permalink / raw)
To: Joerg Roedel, iommu, Linux Kernel Mailing List; +Cc: Jiang Liu
Don't store the SIRTP request bit in the register state. It will
otherwise become sticky and could request an Interrupt Remap Table
Pointer update on each command register write.
Found while starting to emulate IR in QEMU, not by observing problems on
real hardware.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
drivers/iommu/intel_irq_remapping.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/iommu/intel_irq_remapping.c b/drivers/iommu/intel_irq_remapping.c
index 0df41f6..a872874 100644
--- a/drivers/iommu/intel_irq_remapping.c
+++ b/drivers/iommu/intel_irq_remapping.c
@@ -438,8 +438,7 @@ static void iommu_set_irq_remapping(struct intel_iommu *iommu, int mode)
(addr) | IR_X2APIC_MODE(mode) | INTR_REMAP_TABLE_REG_SIZE);
/* Set interrupt-remapping table pointer */
- iommu->gcmd |= DMA_GCMD_SIRTP;
- writel(iommu->gcmd, iommu->reg + DMAR_GCMD_REG);
+ writel(iommu->gcmd | DMA_GCMD_SIRTP, iommu->reg + DMAR_GCMD_REG);
IOMMU_WAIT_OP(iommu, DMAR_GSTS_REG,
readl, (sts & DMA_GSTS_IRTPS), sts);
--
1.8.1.1.298.ge7eed54
^ permalink raw reply related [flat|nested] 4+ messages in thread
[parent not found: <53E8A555.5010905-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org>]
* Re: [PATCH] iommu/vt-d: Don't store SIRTP request
2014-08-11 11:13 ` Jan Kiszka
@ 2014-08-19 11:09 ` Joerg Roedel
-1 siblings, 0 replies; 4+ messages in thread
From: Joerg Roedel @ 2014-08-19 11:09 UTC (permalink / raw)
To: Jan Kiszka; +Cc: iommu, Linux Kernel Mailing List, Jiang Liu
On Mon, Aug 11, 2014 at 01:13:25PM +0200, Jan Kiszka wrote:
> Don't store the SIRTP request bit in the register state. It will
> otherwise become sticky and could request an Interrupt Remap Table
> Pointer update on each command register write.
>
> Found while starting to emulate IR in QEMU, not by observing problems on
> real hardware.
>
> Signed-off-by: Jan Kiszka <jan.kiszka-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org>
> ---
> drivers/iommu/intel_irq_remapping.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
Applied, thanks Jan.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] iommu/vt-d: Don't store SIRTP request
@ 2014-08-19 11:09 ` Joerg Roedel
0 siblings, 0 replies; 4+ messages in thread
From: Joerg Roedel @ 2014-08-19 11:09 UTC (permalink / raw)
To: Jan Kiszka; +Cc: iommu, Linux Kernel Mailing List, Jiang Liu
On Mon, Aug 11, 2014 at 01:13:25PM +0200, Jan Kiszka wrote:
> Don't store the SIRTP request bit in the register state. It will
> otherwise become sticky and could request an Interrupt Remap Table
> Pointer update on each command register write.
>
> Found while starting to emulate IR in QEMU, not by observing problems on
> real hardware.
>
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
> drivers/iommu/intel_irq_remapping.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
Applied, thanks Jan.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-08-19 11:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-11 11:13 [PATCH] iommu/vt-d: Don't store SIRTP request Jan Kiszka
2014-08-11 11:13 ` Jan Kiszka
[not found] ` <53E8A555.5010905-kv7WeFo6aLtBDgjK7y7TUQ@public.gmane.org>
2014-08-19 11:09 ` Joerg Roedel
2014-08-19 11:09 ` Joerg Roedel
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.