diff options
-rw-r--r-- | drivers/hid/hid-picolcd_cir.c | 3 | ||||
-rw-r--r-- | drivers/hid/hid-picolcd_fb.c | 6 |
2 files changed, 7 insertions, 2 deletions
diff --git a/drivers/hid/hid-picolcd_cir.c b/drivers/hid/hid-picolcd_cir.c index e346038f0f11..59d5eb1e742c 100644 --- a/drivers/hid/hid-picolcd_cir.c +++ b/drivers/hid/hid-picolcd_cir.c | |||
@@ -145,6 +145,7 @@ void picolcd_exit_cir(struct picolcd_data *data) | |||
145 | struct rc_dev *rdev = data->rc_dev; | 145 | struct rc_dev *rdev = data->rc_dev; |
146 | 146 | ||
147 | data->rc_dev = NULL; | 147 | data->rc_dev = NULL; |
148 | rc_unregister_device(rdev); | 148 | if (rdev) |
149 | rc_unregister_device(rdev); | ||
149 | } | 150 | } |
150 | 151 | ||
diff --git a/drivers/hid/hid-picolcd_fb.c b/drivers/hid/hid-picolcd_fb.c index 591f6b22aa94..c930ab8554ea 100644 --- a/drivers/hid/hid-picolcd_fb.c +++ b/drivers/hid/hid-picolcd_fb.c | |||
@@ -593,10 +593,14 @@ err_nomem: | |||
593 | void picolcd_exit_framebuffer(struct picolcd_data *data) | 593 | void picolcd_exit_framebuffer(struct picolcd_data *data) |
594 | { | 594 | { |
595 | struct fb_info *info = data->fb_info; | 595 | struct fb_info *info = data->fb_info; |
596 | struct picolcd_fb_data *fbdata = info->par; | 596 | struct picolcd_fb_data *fbdata; |
597 | unsigned long flags; | 597 | unsigned long flags; |
598 | 598 | ||
599 | if (!info) | ||
600 | return; | ||
601 | |||
599 | device_remove_file(&data->hdev->dev, &dev_attr_fb_update_rate); | 602 | device_remove_file(&data->hdev->dev, &dev_attr_fb_update_rate); |
603 | fbdata = info->par; | ||
600 | 604 | ||
601 | /* disconnect framebuffer from HID dev */ | 605 | /* disconnect framebuffer from HID dev */ |
602 | spin_lock_irqsave(&fbdata->lock, flags); | 606 | spin_lock_irqsave(&fbdata->lock, flags); |