• Ard Biesheuvel's avatar
    spi/acpi: fix incorrect ACPI parent check · b5e3cf41
    Ard Biesheuvel authored
    The ACPI device object parsing code for SPI slaves enumerates the
    entire ACPI namespace to look for devices that refer to the master
    in question via the 'resource_source' field in the 'SPISerialBus'
    resource. If that field does not refer to a valid ACPI device or
    if it refers to the wrong SPI master, we should disregard the
    device.
    
    Current, the valid device check is wrong, since it gets the
    polarity of 'status' wrong. This could cause issues if the
    'resource_source' field is bogus but parent_handle happens to
    refer to the correct master (which is not entirely imaginary
    since this code runs in a loop)
    
    So test for ACPI_FAILURE() instead, to make the code more
    self explanatory.
    
    Fixes: 4c3c5954 ("spi/acpi: enumerate all SPI slaves in the namespace")
    Reported-by: default avatarkbuild test robot <lkp@intel.com>
    Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
    Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
    Cc: andy.shevchenko@gmail.com
    Cc: masahisa.kojima@linaro.org
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Cc: Jarkko Nikula <jarkko.nikula@linux.intel.com>
    Cc: linux-acpi@vger.kernel.org
    Cc: Lukas Wunner <lukas@wunner.de>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Acked-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    b5e3cf41
spi.c 103 KB