From 2422fbba0684ddf08898ec2f3cf23cb16a54b3f5 Mon Sep 17 00:00:00 2001 From: Sebastian Siewior Date: Mon, 28 Apr 2008 02:15:39 -0700 Subject: [PATCH] metronomefb: don't free firmware twice in error path Right now, if request_irq or anthing after it fails than we free the firmware for the second time what might end bad :) Signed-off-by: Sebastian Siewior Acked-by: Jaya Kumar Cc: "Antonino A. Daplas" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/video/metronomefb.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/drivers/video/metronomefb.c b/drivers/video/metronomefb.c index 17066dd5a190..249791286367 100644 --- a/drivers/video/metronomefb.c +++ b/drivers/video/metronomefb.c @@ -671,14 +671,14 @@ static int __devinit metronomefb_probe(struct platform_device *dev) retval = load_waveform((u8 *) fw_entry->data, fw_entry->size, par->metromem_wfm, 3, 31, &par->frame_count); + release_firmware(fw_entry); if (retval < 0) { printk(KERN_ERR "metronomefb: couldn't process waveform\n"); - goto err_ld_wfm; + goto err_dma_free; } - release_firmware(fw_entry); if (board->setup_irq(info)) - goto err_ld_wfm; + goto err_dma_free; retval = metronome_init_regs(par); if (retval < 0) @@ -719,8 +719,6 @@ err_fb_rel: framebuffer_release(info); err_free_irq: board->free_irq(info); -err_ld_wfm: - release_firmware(fw_entry); err_dma_free: dma_free_writecombine(&dev->dev, par->metromemsize, par->metromem, par->metromem_dma);