static int cr_backlight_probe(struct platform_device *pdev)
 {
+       struct backlight_device *bdp;
+       struct lcd_device *ldp;
        struct cr_panel *crp;
        u8 dev_en;
 
-       crp = kzalloc(sizeof(*crp), GFP_KERNEL);
-       if (crp == NULL)
-               return -ENOMEM;
-
        lpc_dev = pci_get_device(PCI_VENDOR_ID_INTEL,
                                        CRVML_DEVICE_LPC, NULL);
        if (!lpc_dev) {
                return -ENODEV;
        }
 
-       crp->cr_backlight_device = backlight_device_register("cr-backlight",
-                                                            &pdev->dev, NULL,
-                                                            &cr_backlight_ops);
-       if (IS_ERR(crp->cr_backlight_device)) {
+       bdp = backlight_device_register("cr-backlight",
+                                       &pdev->dev, NULL, &cr_backlight_ops);
+       if (IS_ERR(bdp)) {
                pci_dev_put(lpc_dev);
-               return PTR_ERR(crp->cr_backlight_device);
+               return PTR_ERR(bdp);
        }
 
-       crp->cr_lcd_device = lcd_device_register("cr-lcd",
-                                                       &pdev->dev, NULL,
-                                                       &cr_lcd_ops);
-
-       if (IS_ERR(crp->cr_lcd_device)) {
+       ldp = lcd_device_register("cr-lcd", &pdev->dev, NULL, &cr_lcd_ops);
+       if (IS_ERR(ldp)) {
+               backlight_device_unregister(bdp);
                pci_dev_put(lpc_dev);
-               return PTR_ERR(crp->cr_backlight_device);
+               return PTR_ERR(bdp);
        }
 
        pci_read_config_dword(lpc_dev, CRVML_REG_GPIOBAR,
                              &gpio_bar);
        gpio_bar &= ~0x3F;
 
+       crp = kzalloc(sizeof(*crp), GFP_KERNEL);
+       if (!crp) {
+               lcd_device_unregister(ldp);
+               backlight_device_unregister(bdp);
+               pci_dev_put(lpc_dev);
+               return -ENOMEM;
+       }
+
+       crp->cr_backlight_device = bdp;
+       crp->cr_lcd_device = ldp;
        crp->cr_backlight_device->props.power = FB_BLANK_UNBLANK;
        crp->cr_backlight_device->props.brightness = 0;
        crp->cr_backlight_device->props.max_brightness = 0;