• A
    ACPI: fix false-positive -Wuninitialized warning · dfd6f9ad
    Arnd Bergmann 提交于
    clang gets confused by an uninitialized variable in what looks
    to it like a never executed code path:
    
    arch/x86/kernel/acpi/boot.c:618:13: error: variable 'polarity' is uninitialized when used here [-Werror,-Wuninitialized]
            polarity = polarity ? ACPI_ACTIVE_LOW : ACPI_ACTIVE_HIGH;
                       ^~~~~~~~
    arch/x86/kernel/acpi/boot.c:606:32: note: initialize the variable 'polarity' to silence this warning
            int rc, irq, trigger, polarity;
                                          ^
                                           = 0
    arch/x86/kernel/acpi/boot.c:617:12: error: variable 'trigger' is uninitialized when used here [-Werror,-Wuninitialized]
            trigger = trigger ? ACPI_LEVEL_SENSITIVE : ACPI_EDGE_SENSITIVE;
                      ^~~~~~~
    arch/x86/kernel/acpi/boot.c:606:22: note: initialize the variable 'trigger' to silence this warning
            int rc, irq, trigger, polarity;
                                ^
                                 = 0
    
    This is unfortunately a design decision in clang and won't be fixed.
    
    Changing the acpi_get_override_irq() macro to an inline function
    reliably avoids the issue.
    Signed-off-by: NArnd Bergmann <arnd@arndb.de>
    Reviewed-by: NAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: NNathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
    dfd6f9ad
acpi.h 37.5 KB