--- v3
+++ v5
@@ -1,22 +1,30 @@
-Don't allow writing past the length of an object.
+If sysfs entry creation fails, the driver is still usable, so don't
+just abort probe. Just warn and continue.
Signed-off-by: Daniel Kurtz <djkurtz@chromium.org>
---
- drivers/input/touchscreen/atmel_mxt_ts.c | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ drivers/input/touchscreen/atmel_mxt_ts.c | 5 +----
+ 1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c b/drivers/input/touchscreen/atmel_mxt_ts.c
-index 517bb96..1d0639d 100644
+index 926209c..c72f595 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
-@@ -516,7 +516,7 @@ static int mxt_write_object(struct mxt_data *data,
- u16 reg;
+@@ -1172,13 +1172,10 @@ static int __devinit mxt_probe(struct i2c_client *client,
- object = mxt_get_object(data, type);
-- if (!object)
-+ if (!object || offset >= object->size + 1)
- return -EINVAL;
+ error = sysfs_create_group(&client->dev.kobj, &mxt_attr_group);
+ if (error)
+- goto err_unregister_device;
++ dev_warn(&client->dev, "error creating sysfs entries.\n");
- reg = object->start_address;
+ return 0;
+
+-err_unregister_device:
+- input_unregister_device(input_dev);
+- input_dev = NULL;
+ err_free_irq:
+ free_irq(client->irq, data);
+ err_free_object:
--
1.7.7.3
+