summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorKrzysztof Helt <krzysztof.h1@wp.pl>2009-06-16 15:34:23 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-06-16 19:47:58 -0700
commit100b4a6eefb2ec335a2ae82356dad1b506ded8ed (patch)
tree2b70177f35b18c7dd0c273263365b0a828f6fd87 /drivers
parent7ec42d2659e81f068c5392fd5cb2f5b4bd35e880 (diff)
igafb: use framebuffer_alloc() to allocate fb_info struct
Use the framebuffer_alloc() function to allocate the fb_info structure so the structure is correctly initialized after allocation. Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Cc: Geert Uytterhoeven <geert@linux-m68k.org> Cc: "David S. Miller" <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/video/igafb.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/video/igafb.c b/drivers/video/igafb.c
index 3a81060137a..15d20010944 100644
--- a/drivers/video/igafb.c
+++ b/drivers/video/igafb.c
@@ -395,17 +395,16 @@ int __init igafb_init(void)
/* We leak a reference here but as it cannot be unloaded this is
fine. If you write unload code remember to free it in unload */
- size = sizeof(struct fb_info) + sizeof(struct iga_par) + sizeof(u32)*16;
+ size = sizeof(struct iga_par) + sizeof(u32)*16;
- info = kzalloc(size, GFP_ATOMIC);
+ info = framebuffer_alloc(size, &pdev->dev);
if (!info) {
printk("igafb_init: can't alloc fb_info\n");
pci_dev_put(pdev);
return -ENOMEM;
}
- par = (struct iga_par *) (info + 1);
-
+ par = info->par;
if ((addr = pdev->resource[0].start) == 0) {
printk("igafb_init: no memory start\n");
@@ -526,7 +525,6 @@ int __init igafb_init(void)
info->var = default_var;
info->fix = igafb_fix;
info->pseudo_palette = (void *)(par + 1);
- info->device = &pdev->dev;
if (!iga_init(info, par)) {
iounmap((void *)par->io_base);