]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/video/riva/fbdev.c
[PATCH] rivafb/nvidiafb: race between register_framebuffer and *_bl_init
[karo-tx-linux.git] / drivers / video / riva / fbdev.c
index 33dddbae54208a12df34d3128bd58e2261f6d73f..76fc9d355eb7171620e42b93ccfcd8e6b5cef22e 100644 (file)
@@ -2132,6 +2132,9 @@ static int __devinit rivafb_probe(struct pci_dev *pd,
 
        fb_destroy_modedb(info->monspecs.modedb);
        info->monspecs.modedb = NULL;
+
+       pci_set_drvdata(pd, info);
+       riva_bl_init(info->par);
        ret = register_framebuffer(info);
        if (ret < 0) {
                printk(KERN_ERR PFX
@@ -2139,8 +2142,6 @@ static int __devinit rivafb_probe(struct pci_dev *pd,
                goto err_iounmap_screen_base;
        }
 
-       pci_set_drvdata(pd, info);
-
        printk(KERN_INFO PFX
                "PCI nVidia %s framebuffer ver %s (%dMB @ 0x%lX)\n",
                info->fix.id,
@@ -2148,8 +2149,6 @@ static int __devinit rivafb_probe(struct pci_dev *pd,
                info->fix.smem_len / (1024 * 1024),
                info->fix.smem_start);
 
-       riva_bl_init(info->par);
-
        NVTRACE_LEAVE();
        return 0;