gic_kvm_info
static struct gic_kvm_info *gic_kvm_info;
void __init vgic_set_kvm_info(const struct gic_kvm_info *info)
BUG_ON(gic_kvm_info != NULL);
gic_kvm_info = kmalloc_obj(*gic_kvm_info);
if (gic_kvm_info)
*gic_kvm_info = *info;
if (!gic_kvm_info)
has_mask = !gic_kvm_info->no_maint_irq_mask;
if (has_mask && !gic_kvm_info->maint_irq) {
if (gic_kvm_info->no_hw_deactivation) {
switch (gic_kvm_info->type) {
ret = vgic_v2_probe(gic_kvm_info);
ret = vgic_v3_probe(gic_kvm_info);
ret = vgic_v5_probe(gic_kvm_info);
kvm_vgic_global_state.maint_irq = gic_kvm_info->maint_irq;
kfree(gic_kvm_info);
gic_kvm_info = NULL;
int vgic_v2_probe(const struct gic_kvm_info *info)
int vgic_v3_probe(const struct gic_kvm_info *info)
int vgic_v5_probe(const struct gic_kvm_info *info)
int vgic_v2_probe(const struct gic_kvm_info *info);
int vgic_v3_probe(const struct gic_kvm_info *info);
int vgic_v5_probe(const struct gic_kvm_info *info);
static struct gic_kvm_info vgic_info __initdata = {
static struct gic_kvm_info gic_v3_kvm_info __initdata;
static struct gic_kvm_info gic_v5_kvm_info __initdata;
static struct gic_kvm_info gic_v2_kvm_info __initdata;
void vgic_set_kvm_info(const struct gic_kvm_info *info);
static inline void vgic_set_kvm_info(const struct gic_kvm_info *info) {}