diff options
| author | Nick Dyer <nick.dyer@itdev.co.uk> | 2014-09-09 16:14:06 +0100 |
|---|---|---|
| committer | Nick Dyer <nick.dyer@itdev.co.uk> | 2014-09-09 16:27:31 +0100 |
| commit | b96fee16f8fcdbc54cdecbac4769bc6d43f3c322 (patch) | |
| tree | 1a3f565991d7acf7e502dcaa7dd057afd6ef5944 | |
| parent | 29c8ab9dc45ef3bc5cda7fad055121fd421e6a54 (diff) | |
| download | olio-linux-3.10-b96fee16f8fcdbc54cdecbac4769bc6d43f3c322.tar.xz olio-linux-3.10-b96fee16f8fcdbc54cdecbac4769bc6d43f3c322.zip | |
Input: atmel_mxt_ts - add guards when sysfs interface called with no object table
Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk>
| -rw-r--r-- | drivers/input/touchscreen/atmel_mxt_ts.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c index 4df1f0e7d45..4cb916cf6ed 100644 --- a/drivers/input/touchscreen/atmel_mxt_ts.c +++ b/drivers/input/touchscreen/atmel_mxt_ts.c @@ -2635,6 +2635,10 @@ static ssize_t mxt_fw_version_show(struct device *dev, struct device_attribute *attr, char *buf) { struct mxt_data *data = dev_get_drvdata(dev); + + if (!data->object_table) + return -EINVAL; + return scnprintf(buf, PAGE_SIZE, "%u.%u.%02X\n", data->info->version >> 4, data->info->version & 0xf, data->info->build); @@ -2645,6 +2649,10 @@ static ssize_t mxt_hw_version_show(struct device *dev, struct device_attribute *attr, char *buf) { struct mxt_data *data = dev_get_drvdata(dev); + + if (!data->object_table) + return -EINVAL; + return scnprintf(buf, PAGE_SIZE, "%u.%u\n", data->info->family_id, data->info->variant_id); } @@ -2677,6 +2685,9 @@ static ssize_t mxt_object_show(struct device *dev, int error; u8 *obuf; + if (!data->object_table) + return -EINVAL; + /* Pre-allocate buffer large enough to hold max sized object. */ obuf = kmalloc(256, GFP_KERNEL); if (!obuf) |