Input: atmel_mxt_ts - suspend/resume causes panic if input_dev fails to init
authorPan Xinhui <xinhuix.pan@intel.com>
Tue, 4 Aug 2015 23:53:04 +0000 (16:53 -0700)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Wed, 5 Aug 2015 00:03:53 +0000 (17:03 -0700)
input_dev may be NULL if mxt_initialize_input_device fails. But pm ops is
still available and suspend/resume assume
input_dev is not NULL. To fix this issue, we add a check if (!input_dev).

Signed-off-by: Pan Xinhui <xinhuix.pan@intel.com>
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/atmel_mxt_ts.c

index d53d4ac57f335065f1494140be51e2d19d97f171..cf66ba1bbf0ca08cc479f2ef9544905066927079 100644 (file)
@@ -2644,6 +2644,9 @@ static int __maybe_unused mxt_suspend(struct device *dev)
        struct mxt_data *data = i2c_get_clientdata(client);
        struct input_dev *input_dev = data->input_dev;
 
+       if (!input_dev)
+               return 0;
+
        mutex_lock(&input_dev->mutex);
 
        if (input_dev->users)
@@ -2660,6 +2663,9 @@ static int __maybe_unused mxt_resume(struct device *dev)
        struct mxt_data *data = i2c_get_clientdata(client);
        struct input_dev *input_dev = data->input_dev;
 
+       if (!input_dev)
+               return 0;
+
        mutex_lock(&input_dev->mutex);
 
        if (input_dev->users)