On Thu, Jul 09, 2015 at 03:50:49PM +0300, Pavel Fedin wrote:
> Hello!
>
> > why not report ENXIO as an error? If probing the vgic fails due to
> > being unable to request the irq or something similar, then surely your
> > system has and error and this should be reported.
>
> It is reported by probe function itself.
> -ENODEV here means there's no GIC at all. -ENXIO happens when, for example,
> there is GIC node in
> the device tree, but it does not specify vGIC resources. Normally this means
> that vGIC is defunct on
> the machine.
I'd like to distinguish between the 'missing vgic' and 'something bad
happened when trying to initialize the vgic' cases, which I don't think
we do currently, because the ENXIO code is used in various situations.
>
> > This may be more nicely implemented by letting the vgic init/probe
> > functions set the vgic_present, or maybe better yet, just export a
> > function from vgic.c:
> >
> > bool kvm_vgic_present(void)
> > {
> > return vgic_ops != NULL;
> > }
>
> Is it necessary? Actually this flag is not needed anywhere else except
> arch/arm/kvm/arm.c, only at
> init time. Runtime should, i believe, use irqchip_in_kernel(), because
> userland can choose just not
> to use vGIC for some reason (testing for example).
>
I feel the init flow is relatively difficult to follow and adding a
bunch of flags here and there doesn't seem to help. By adding a
function with a proper comment, it should be more clear, and I don't
like the switch statement on the error return values.
-Christoffer
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm