diff options
Diffstat (limited to 'drivers/input/input.c')
-rw-r--r-- | drivers/input/input.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/input/input.c b/drivers/input/input.c index 9cb4b9a54f01..1fc0517e9428 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c | |||
@@ -176,6 +176,10 @@ void input_event(struct input_dev *dev, unsigned int type, unsigned int code, in | |||
176 | break; | 176 | break; |
177 | 177 | ||
178 | case EV_FF: | 178 | case EV_FF: |
179 | |||
180 | if (value < 0) | ||
181 | return; | ||
182 | |||
179 | if (dev->event) | 183 | if (dev->event) |
180 | dev->event(dev, type, code, value); | 184 | dev->event(dev, type, code, value); |
181 | break; | 185 | break; |
@@ -762,7 +766,9 @@ static void input_dev_release(struct class_device *class_dev) | |||
762 | { | 766 | { |
763 | struct input_dev *dev = to_input_dev(class_dev); | 767 | struct input_dev *dev = to_input_dev(class_dev); |
764 | 768 | ||
769 | input_ff_destroy(dev); | ||
765 | kfree(dev); | 770 | kfree(dev); |
771 | |||
766 | module_put(THIS_MODULE); | 772 | module_put(THIS_MODULE); |
767 | } | 773 | } |
768 | 774 | ||