summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKnut Petersen <knut_petersen@t-online.de>2003-10-23 18:30:34 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-10-23 18:30:34 -0700
commit99438d1edb1a37dfb88cf313eda0857fb2e32245 (patch)
tree429fe80e10f1b00d1352a55593cf04390d9ed850 /include
parentf71a89234474469ba078a0653e6639b78ace903b (diff)
[PATCH] setkeycode ioctl fix
This is a bugfix for setkeycode() in /drivers/char/keyboard.c. If we change a keycode the corresponding bit should be cleared if and only if this keycode is not defined any longer. I believe that this also was intended with the original code, but the implementation is faulty. First off all the first three changed lines are obviously erroneus: oldkey == truekey is false or true, you do not need to inclose this in a for(). I believe the author intended INPUT_KEYCODE(dev,i) == oldkey. But fixing this alone is not enough. If somebody wants to interchange the definition of two keys A and B, the normal way is to use two setkeycode calls: setkeycode (scancode A, keycode B); setkeycode (scancode B, keycode A); The old code does a clearbit(oldkey ..) call even in situations where two keys have the same definition, and this situation arises commonly in the situation mentioned above. Both errors are fixed with this patch.
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions