diff options
author | Ingo Molnar <mingo@kernel.org> | 2017-02-14 07:29:14 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-02-14 07:29:14 +0100 |
commit | 210f400d68a14bc89e2e61dc2e06cdd67cfeb5f6 (patch) | |
tree | 2098a7db539f0e92676d8d953002db3cc8eb03b8 /drivers/input/misc/uinput.c | |
parent | f2029b1e47b607619d1dd2cb0bbb77f64ec6b7c2 (diff) | |
parent | 7089db84e356562f8ba737c29e472cc42d530dbc (diff) | |
download | linux-210f400d68a14bc89e2e61dc2e06cdd67cfeb5f6.tar.bz2 |
Merge tag 'v4.10-rc8' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/input/misc/uinput.c')
-rw-r--r-- | drivers/input/misc/uinput.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/drivers/input/misc/uinput.c b/drivers/input/misc/uinput.c index 92595b98e7ed..022be0e22eba 100644 --- a/drivers/input/misc/uinput.c +++ b/drivers/input/misc/uinput.c @@ -263,13 +263,21 @@ static int uinput_create_device(struct uinput_device *udev) return -EINVAL; } - if (test_bit(ABS_MT_SLOT, dev->absbit)) { - nslot = input_abs_get_max(dev, ABS_MT_SLOT) + 1; - error = input_mt_init_slots(dev, nslot, 0); - if (error) + if (test_bit(EV_ABS, dev->evbit)) { + input_alloc_absinfo(dev); + if (!dev->absinfo) { + error = -EINVAL; goto fail1; - } else if (test_bit(ABS_MT_POSITION_X, dev->absbit)) { - input_set_events_per_packet(dev, 60); + } + + if (test_bit(ABS_MT_SLOT, dev->absbit)) { + nslot = input_abs_get_max(dev, ABS_MT_SLOT) + 1; + error = input_mt_init_slots(dev, nslot, 0); + if (error) + goto fail1; + } else if (test_bit(ABS_MT_POSITION_X, dev->absbit)) { + input_set_events_per_packet(dev, 60); + } } if (test_bit(EV_FF, dev->evbit) && !udev->ff_effects_max) { |