• Jon Hunter's avatar
    irqchip/gic: WARN if setting the interrupt type for a PPI fails · 992345a5
    Jon Hunter authored
    Setting the interrupt type for private peripheral interrupts (PPIs) may
    not be supported by a given GIC because it is IMPLEMENTATION DEFINED
    whether this is allowed. There is no way to know if setting the type is
    supported for a given GIC and so the value written is read back to
    verify it matches the desired configuration. If it does not match then
    an error is return.
    
    There are cases where the interrupt configuration read from firmware
    (such as a device-tree blob), has been incorrect and hence
    gic_configure_irq() has returned an error. This error has gone
    undetected because the error code returned was ignored but the interrupt
    still worked fine because the configuration for the interrupt could not
    be overwritten.
    
    Given that this has done undetected and that failing to set the
    configuration for a PPI may not be a catastrophic, don't return an error
    but WARN if we fail to configure a PPI. This will allows us to fix up
    any places in the kernel where we should be checking the return status
    and maintain backward compatibility with firmware images that may have
    incorrect PPI configurations.
    Signed-off-by: default avatarJon Hunter <jonathanh@nvidia.com>
    Acked-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    992345a5
irq-gic-common.c 3.74 KB