Re: [Xen-devel] [PATCH v3 2/8] x86/hvm: introduce hvm_domain_irq macro

2017-03-31 Thread Jan Beulich
>>> On 29.03.17 at 16:47,  wrote:
> Introduce a macro to get a pointer to the hvm_irq for a HVM domain. No
> functional change.
> 
> Signed-off-by: Roger Pau Monné 

Acked-by: Jan Beulich 


___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v3 2/8] x86/hvm: introduce hvm_domain_irq macro

2017-03-30 Thread Tian, Kevin
> From: Roger Pau Monne [mailto:roger@citrix.com]
> Sent: Wednesday, March 29, 2017 10:47 PM
> 
> Introduce a macro to get a pointer to the hvm_irq for a HVM domain. No
> functional change.
> 
> Signed-off-by: Roger Pau Monné 

Reviewed-by: Kevin Tian  for VTd part.
___
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel


[Xen-devel] [PATCH v3 2/8] x86/hvm: introduce hvm_domain_irq macro

2017-03-29 Thread Roger Pau Monne
Introduce a macro to get a pointer to the hvm_irq for a HVM domain. No
functional change.

Signed-off-by: Roger Pau Monné 
---
Cc: Jan Beulich 
Cc: Andrew Cooper 
Cc: Kevin Tian 
---
Changes since v2:
 - Switch d->arch.hvm_domain.irq.dpci accesses to use the macro also.
---
NB: this is a pre-patch in order to make patch #3 smaller.
---
 xen/arch/x86/hvm/hvm.c|  2 +-
 xen/arch/x86/hvm/irq.c| 30 +++---
 xen/arch/x86/hvm/vioapic.c|  4 ++--
 xen/arch/x86/hvm/vlapic.c |  6 +++---
 xen/arch/x86/physdev.c|  2 +-
 xen/drivers/passthrough/io.c  |  8 
 xen/drivers/passthrough/pci.c |  2 +-
 xen/drivers/passthrough/vtd/x86/vtd.c |  2 +-
 xen/include/asm-x86/hvm/irq.h |  1 +
 9 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
index b6c5c9bf8d..98dede20db 100644
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -457,7 +457,7 @@ void hvm_migrate_pirqs(struct vcpu *v)
 {
 struct domain *d = v->domain;
 
-if ( !iommu_enabled || !d->arch.hvm_domain.irq.dpci )
+if ( !iommu_enabled || !hvm_domain_irq(d)->dpci )
return;
 
 spin_lock(&d->event_lock);
diff --git a/xen/arch/x86/hvm/irq.c b/xen/arch/x86/hvm/irq.c
index a774ed7450..c2951ccf8a 100644
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -60,7 +60,7 @@ static void deassert_irq(struct domain *d, unsigned isa_irq)
 static void __hvm_pci_intx_assert(
 struct domain *d, unsigned int device, unsigned int intx)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 unsigned int gsi, link, isa_irq;
 
 ASSERT((device <= 31) && (intx <= 3));
@@ -90,7 +90,7 @@ void hvm_pci_intx_assert(
 static void __hvm_pci_intx_deassert(
 struct domain *d, unsigned int device, unsigned int intx)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 unsigned int gsi, link, isa_irq;
 
 ASSERT((device <= 31) && (intx <= 3));
@@ -119,7 +119,7 @@ void hvm_pci_intx_deassert(
 void hvm_isa_irq_assert(
 struct domain *d, unsigned int isa_irq)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 unsigned int gsi = hvm_isa_irq_to_gsi(isa_irq);
 
 ASSERT(isa_irq <= 15);
@@ -136,7 +136,7 @@ void hvm_isa_irq_assert(
 void hvm_isa_irq_deassert(
 struct domain *d, unsigned int isa_irq)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 unsigned int gsi = hvm_isa_irq_to_gsi(isa_irq);
 
 ASSERT(isa_irq <= 15);
@@ -153,7 +153,7 @@ void hvm_isa_irq_deassert(
 static void hvm_set_callback_irq_level(struct vcpu *v)
 {
 struct domain *d = v->domain;
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 unsigned int gsi, pdev, pintx, asserted;
 
 ASSERT(v->vcpu_id == 0);
@@ -201,7 +201,7 @@ static void hvm_set_callback_irq_level(struct vcpu *v)
 void hvm_maybe_deassert_evtchn_irq(void)
 {
 struct domain *d = current->domain;
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 
 if ( hvm_irq->callback_via_asserted &&
  !vcpu_info(d->vcpu[0], evtchn_upcall_pending) )
@@ -230,7 +230,7 @@ void hvm_assert_evtchn_irq(struct vcpu *v)
 
 int hvm_set_pci_link_route(struct domain *d, u8 link, u8 isa_irq)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 u8 old_isa_irq;
 int i;
 
@@ -323,7 +323,7 @@ int hvm_inject_msi(struct domain *d, uint64_t addr, 
uint32_t data)
 
 void hvm_set_callback_via(struct domain *d, uint64_t via)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 unsigned int gsi=0, pdev=0, pintx=0;
 uint8_t via_type;
 
@@ -486,7 +486,7 @@ void arch_evtchn_inject(struct vcpu *v)
 
 static void irq_dump(struct domain *d)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 int i; 
 printk("Domain %d:\n", d->domain_id);
 printk("PCI 0x%16.16"PRIx64"%16.16"PRIx64
@@ -541,7 +541,7 @@ __initcall(dump_irq_info_key_init);
 
 static int irq_save_pci(struct domain *d, hvm_domain_context_t *h)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 unsigned int asserted, pdev, pintx;
 int rc;
 
@@ -573,7 +573,7 @@ static int irq_save_pci(struct domain *d, 
hvm_domain_context_t *h)
 
 static int irq_save_isa(struct domain *d, hvm_domain_context_t *h)
 {
-struct hvm_irq *hvm_irq = &d->arch.hvm_domain.irq;
+struct hvm_irq *hvm_irq = hvm_domain_irq(d);
 
 /* Save ISA IRQ lines */
 return ( hvm_save_entry(ISA_IRQ, 0, h