mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
Pull input fixes from Dmitry Torokhov: "A few more fixes for the input subsystem: - restore naming for tsc2005 touchscreens as some userspace match on it - fix out of bound access in legacy keyboard driver - fixup in RMI4 driver Everything is tagged for stable as well" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: tsc200x - report proper input_dev name tty/vt/keyboard: fix OOB access in do_compute_shiftstate() Input: synaptics-rmi4 - fix maximum size check for F12 control register 8
This commit is contained in:
commit
3aa536d9aa
6 changed files with 39 additions and 31 deletions
|
|
@ -366,34 +366,22 @@ static void to_utf8(struct vc_data *vc, uint c)
|
|||
|
||||
static void do_compute_shiftstate(void)
|
||||
{
|
||||
unsigned int i, j, k, sym, val;
|
||||
unsigned int k, sym, val;
|
||||
|
||||
shift_state = 0;
|
||||
memset(shift_down, 0, sizeof(shift_down));
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(key_down); i++) {
|
||||
|
||||
if (!key_down[i])
|
||||
for_each_set_bit(k, key_down, min(NR_KEYS, KEY_CNT)) {
|
||||
sym = U(key_maps[0][k]);
|
||||
if (KTYP(sym) != KT_SHIFT && KTYP(sym) != KT_SLOCK)
|
||||
continue;
|
||||
|
||||
k = i * BITS_PER_LONG;
|
||||
val = KVAL(sym);
|
||||
if (val == KVAL(K_CAPSSHIFT))
|
||||
val = KVAL(K_SHIFT);
|
||||
|
||||
for (j = 0; j < BITS_PER_LONG; j++, k++) {
|
||||
|
||||
if (!test_bit(k, key_down))
|
||||
continue;
|
||||
|
||||
sym = U(key_maps[0][k]);
|
||||
if (KTYP(sym) != KT_SHIFT && KTYP(sym) != KT_SLOCK)
|
||||
continue;
|
||||
|
||||
val = KVAL(sym);
|
||||
if (val == KVAL(K_CAPSSHIFT))
|
||||
val = KVAL(K_SHIFT);
|
||||
|
||||
shift_down[val]++;
|
||||
shift_state |= (1 << val);
|
||||
}
|
||||
shift_down[val]++;
|
||||
shift_state |= BIT(val);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue