Skip to content

Commit

Permalink
metronomefb: don't free firmware twice in error path
Browse files Browse the repository at this point in the history
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 <sebastian@breakpoint.cc>
Acked-by: Jaya Kumar <jayakumar.lkml@gmail.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Sebastian Siewior authored and Linus Torvalds committed Apr 28, 2008
1 parent 03c33a4 commit 2422fbb
Showing 1 changed file with 3 additions and 5 deletions.
8 changes: 3 additions & 5 deletions drivers/video/metronomefb.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -719,8 +719,6 @@ static int __devinit metronomefb_probe(struct platform_device *dev)
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);
Expand Down

0 comments on commit 2422fbb

Please sign in to comment.