From c24536b636f23e4d3202968fcad129d979881e2c Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Thu, 23 Jun 2011 11:32:43 +0100 Subject: replace d->nr_pirqs sized arrays with radix tree With this it is questionable whether retaining struct domain's nr_pirqs is actually necessary - the value now only serves for bounds checking, and this boundary could easily be nr_irqs. Note that ia64, the build of which is broken currently anyway, is only being partially fixed up. v2: adjustments for split setup/teardown of translation data v3: re-sync with radix tree implementation changes Signed-off-by: Jan Beulich --- xen/include/xen/sched.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'xen/include/xen/sched.h') diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index e3eab706a3..902cd07418 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -227,13 +228,11 @@ struct domain struct grant_table *grant_table; /* - * Interrupt to event-channel mappings. Updates should be protected by the - * domain's event-channel spinlock. Read accesses can also synchronise on - * the lock, but races don't usually matter. + * Interrupt to event-channel mappings and other per-guest-pirq data. + * Protected by the domain's event-channel spinlock. */ unsigned int nr_pirqs; - u16 *pirq_to_evtchn; - unsigned long *pirq_mask; + struct radix_tree_root pirq_tree; /* I/O capabilities (access to IRQs and memory-mapped I/O). */ struct rangeset *iomem_caps; -- cgit v1.2.3