hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/video/fbdev/arcfb.c
....@@ -523,7 +523,7 @@
523523
524524 info = framebuffer_alloc(sizeof(struct arcfb_par), &dev->dev);
525525 if (!info)
526
- goto err;
526
+ goto err_fb_alloc;
527527
528528 info->screen_base = (char __iomem *)videomemory;
529529 info->fbops = &arcfb_ops;
....@@ -535,7 +535,7 @@
535535
536536 if (!dio_addr || !cio_addr || !c2io_addr) {
537537 printk(KERN_WARNING "no IO addresses supplied\n");
538
- goto err1;
538
+ goto err_addr;
539539 }
540540 par->dio_addr = dio_addr;
541541 par->cio_addr = cio_addr;
....@@ -551,12 +551,12 @@
551551 printk(KERN_INFO
552552 "arcfb: Failed req IRQ %d\n", par->irq);
553553 retval = -EBUSY;
554
- goto err1;
554
+ goto err_addr;
555555 }
556556 }
557557 retval = register_framebuffer(info);
558558 if (retval < 0)
559
- goto err1;
559
+ goto err_register_fb;
560560 platform_set_drvdata(dev, info);
561561 fb_info(info, "Arc frame buffer device, using %dK of video memory\n",
562562 videomemorysize >> 10);
....@@ -580,9 +580,12 @@
580580 }
581581
582582 return 0;
583
-err1:
583
+
584
+err_register_fb:
585
+ free_irq(par->irq, info);
586
+err_addr:
584587 framebuffer_release(info);
585
-err:
588
+err_fb_alloc:
586589 vfree(videomemory);
587590 return retval;
588591 }