Re: [rfc patch] libertas: fix if_spi_prog_helper_firmware()

Johannes Berg
2010-08-24T12:17:52Z

On Tue, 2010-08-24 at 14:07 +0200, Dan Carpenter wrote:
> The indenting is not correct here. I don't have this hardware and I'm
> just guessing as to what was intended. I think that if there is an
> error we should return an error code, but if there isn't an error we
> should return success directly without releasing the firmware.

> goto release_firmware;
> err = spu_write_u16(card, IF_SPI_CARD_INT_CAUSE_REG,
> IF_SPI_CIC_CMD_DOWNLOAD_OVER);
> + if (err)
> goto release_firmware;
>
> - lbs_deb_spi("waiting for helper to boot...\n");
> + lbs_deb_spi("helper firmware loaded...\n");
> +
> + return 0;
>
> release_firmware:
> release_firmware(firmware);

This doesn't look correct, the caller of this function also sometimes
releases the firmware, but it looks like it could lead to a double-free?

johannes