c
<     struct gpio_chardev_data *cdev = file->private_data;
<     struct gpio_device *gdev = cdev->gdev;
---
>     struct gpio_chardev_data *cdev = file->private_data;
>     if (!cdev)
>         return -EINVAL;
>     struct gpio_device *gdev = cdev->gdev;
>     if (!gdev) {
>         kfree(cdev);
>         return -EINVAL;
>     }
