#define FBPIXMAPSIZE   (1024 * 8)
 
+struct class *fb_class;
+
 DEFINE_MUTEX(registration_lock);
 struct fb_info *registered_fb[FB_MAX] __read_mostly;
 int num_registered_fb __read_mostly;
 }
 EXPORT_SYMBOL(fb_blank);
 
-struct class *fb_class;
-EXPORT_SYMBOL(fb_class);
-
 static int fb_check_foreignness(struct fb_info *fi)
 {
        const bool foreign_endian = fi->flags & FBINFO_FOREIGN_ENDIAN;
 }
 EXPORT_SYMBOL(fb_set_suspend);
 
-/**
- *     fbmem_init - init frame buffer subsystem
- *
- *     Initialize the frame buffer subsystem.
- *
- *     NOTE: This function is _only_ to be called by drivers/char/mem.c.
- *
- */
-
-static int __init
-fbmem_init(void)
+static int __init fbmem_init(void)
 {
        int ret;
 
+       fb_class = class_create("graphics");
+       if (IS_ERR(fb_class)) {
+               ret = PTR_ERR(fb_class);
+               pr_err("Unable to create fb class; errno = %d\n", ret);
+               goto err_fb_class;
+       }
+
        ret = fb_init_procfs();
        if (ret)
-               return ret;
+               goto err_class_destroy;
 
        ret = fb_register_chrdev();
        if (ret)
-               goto err_chrdev;
-
-       fb_class = class_create("graphics");
-       if (IS_ERR(fb_class)) {
-               ret = PTR_ERR(fb_class);
-               pr_warn("Unable to create fb class; errno = %d\n", ret);
-               fb_class = NULL;
-               goto err_class;
-       }
+               goto err_fb_cleanup_procfs;
 
        fb_console_init();
 
        return 0;
 
-err_class:
-       fb_unregister_chrdev();
-err_chrdev:
+err_fb_cleanup_procfs:
        fb_cleanup_procfs();
+err_class_destroy:
+       class_destroy(fb_class);
+err_fb_class:
+       fb_class = NULL;
        return ret;
 }
 
 #ifdef MODULE
-module_init(fbmem_init);
-static void __exit
-fbmem_exit(void)
+static void __exit fbmem_exit(void)
 {
        fb_console_exit();
-
+       fb_unregister_chrdev();
        fb_cleanup_procfs();
        class_destroy(fb_class);
-       fb_unregister_chrdev();
 }
 
+module_init(fbmem_init);
 module_exit(fbmem_exit);
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION("Framebuffer base");