On Wednesday, February 29, 2012 09:40:08 PM Max Filippov wrote: > This makes it possible to reload driver if insmod has failed due to > missing firmware. > > Signed-off-by: Max Filippov <jcmvbkbc@xxxxxxxxx> Cc: stable <stable@xxxxxxxxxxxxxxx> Acked-by: Christian Lamparter <chunkeey@xxxxxxxxxxxxxx> But I noticed something else... We never free the firmware in the p54spi_probe errorpath either. > --- > drivers/net/wireless/p54/p54spi.c | 14 ++++++++++---- > 1 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/wireless/p54/p54spi.c b/drivers/net/wireless/p54/p54spi.c > index 7faed62..f792990 100644 > --- a/drivers/net/wireless/p54/p54spi.c > +++ b/drivers/net/wireless/p54/p54spi.c > @@ -618,19 +618,19 @@ static int __devinit p54spi_probe(struct spi_device *spi) > ret = spi_setup(spi); > if (ret < 0) { > dev_err(&priv->spi->dev, "spi_setup failed"); > - goto err_free_common; > + goto err_free; > } > > ret = gpio_request(p54spi_gpio_power, "p54spi power"); > if (ret < 0) { > dev_err(&priv->spi->dev, "power GPIO request failed: %d", ret); > - goto err_free_common; > + goto err_free; > } > > ret = gpio_request(p54spi_gpio_irq, "p54spi irq"); > if (ret < 0) { > dev_err(&priv->spi->dev, "irq GPIO request failed: %d", ret); > - goto err_free_common; > + goto err_free_gpio_power; > } > > gpio_direction_output(p54spi_gpio_power, 0); > @@ -641,7 +641,7 @@ static int __devinit p54spi_probe(struct spi_device *spi) > priv->spi); > if (ret < 0) { > dev_err(&priv->spi->dev, "request_irq() failed"); > - goto err_free_common; > + goto err_free_gpio_irq; > } > > irq_set_irq_type(gpio_to_irq(p54spi_gpio_irq), IRQ_TYPE_EDGE_RISING); > @@ -673,6 +673,12 @@ static int __devinit p54spi_probe(struct spi_device *spi) > return 0; > > err_free_common: > + free_irq(gpio_to_irq(p54spi_gpio_irq), spi); > +err_free_gpio_irq: > + gpio_free(p54spi_gpio_irq); > +err_free_gpio_power: > + gpio_free(p54spi_gpio_power); > +err_free: > p54_free_common(priv->hw); > return ret; > } > -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html