mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-11-02 10:35:48 +00:00
hv: align the MAX_IR_ENTRIES to MAX_PT_IRQ_ENTRIES
The CONFIG_MAX_IR_ENTRIES and CONFIG_MAX_PT_IRQ_ENTRIES are separate configuration items, and they can be configured through configuration tool When the number of PT irq entries are more than IR entries, then some passthrough devices' irqs may failed to be protected by interrupt remapping or automatically injected by post-interrupt mechanism. And it waste memory if the CONFIG_MAX_IR_ENTRIES is larger. This patch replace the CONFIG_MAX_IR_ENTRIES to MAX_IR_ENTRIES and enforce it align to CONFIG_PT_IRQ_ENTRIES and round up to > 2^n as the IRTA_REG spec.This way can enforce all PT irqs works with IR or PI mechanism. Tracked-On: #6745 Signed-off-by: Chenli Wei <chenli.wei@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com> Reviewed-by: Wang, Yu1 <yu1.wang@intel.com>
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
#include <asm/guest/vcpu.h>
|
||||
#include <asm/mmu.h>
|
||||
#include <asm/guest/trusty.h>
|
||||
#include <asm/vtd.h>
|
||||
|
||||
#define CAT__(A,B) A ## B
|
||||
#define CAT_(A,B) CAT__(A,B)
|
||||
@@ -28,8 +29,8 @@ typedef int32_t CAT_(CTA_DummyType,__LINE__)[(expr) ? 1 : -1]
|
||||
#error "CONFIG_HV_RAM_SIZE must be integral multiple of 2MB"
|
||||
#endif
|
||||
|
||||
#if ((CONFIG_MAX_IR_ENTRIES < 256U) || (CONFIG_MAX_IR_ENTRIES & (CONFIG_MAX_IR_ENTRIES -1)) != 0U)
|
||||
#error "CONFIG_MAX_IR_ENTRIES must >=256 and be 2^n"
|
||||
#if ((MAX_IR_ENTRIES < 256U) || (MAX_IR_ENTRIES > 0x10000U) || (MAX_IR_ENTRIES & (MAX_IR_ENTRIES -1)) != 0U)
|
||||
#error "MAX_IR_ENTRIES must in the region of [256,0x10000] and be 2^n"
|
||||
#endif
|
||||
|
||||
/* Build time sanity checks to make sure hard-coded offset
|
||||
|
||||
Reference in New Issue
Block a user