If an error occurs after a successful call to p54spi_request_firmware(), it
must be undone by a corresponding release_firmware() as already done in
the error handling path of p54spi_request_firmware() and in the .remove()
function.
Add the missing call in the error handling path and remove it from
p54spi_request_firmware() now that it is the responsibility of the caller
to release the firmware
Fixes: cd8d3d321285 ("p54spi: p54spi driver")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Acked-by: Christian Lamparter <chunkeey@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/297d2547ff2ee627731662abceeab9dbdaf23231.1655068321.git.christophe.jaillet@wanadoo.fr
 
 
        ret = p54_parse_firmware(dev, priv->firmware);
        if (ret) {
-               release_firmware(priv->firmware);
+               /* the firmware is released by the caller */
                return ret;
        }
 
        return 0;
 
 err_free_common:
+       release_firmware(priv->firmware);
        free_irq(gpio_to_irq(p54spi_gpio_irq), spi);
 err_free_gpio_irq:
        gpio_free(p54spi_gpio_irq);