summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAkos Maroy <darkeye@tyrell.hu>2008-01-06 11:15:55 +0100
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-01-06 10:26:06 -0800
commit3fee37c1e2579ed3d6090f690e5fd8cf7fa3bb44 (patch)
tree25e6bf5beab2207c97644ff8f64672fb868d0b18
parent7b3d9545f9ac8b31528dd2d6d8ec8d19922917b8 (diff)
downloadkernel-crypto-3fee37c1e2579ed3d6090f690e5fd8cf7fa3bb44.tar.gz
kernel-crypto-3fee37c1e2579ed3d6090f690e5fd8cf7fa3bb44.tar.xz
kernel-crypto-3fee37c1e2579ed3d6090f690e5fd8cf7fa3bb44.zip
fix: using joysticks in 32 bit applications on 64 bit systems
unfortunately 32 bit apps don't see the joysticks on a 64 bit system. this prevents one playing X-Plane (http://www.x-plane.com/) or other 32-bit games with joysticks. this is a known issue, and already raised several times: http://readlist.com/lists/vger.kernel.org/linux-kernel/28/144411.html http://www.brettcsmith.org/wiki/wiki.cgi?action=browse&diff=1&id=OzyComputer/Joystick unfortunately this is still not fixed in the mainline kernel. it would be nice to have this fixed, so that people can play these games without having to patch their kernel. the following patch solves the problem on 2.6.22. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--fs/compat_ioctl.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index e8b7c3a98a5..da8cb3b3592 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -10,6 +10,8 @@
* ioctls.
*/
+#include <linux/joystick.h>
+
#include <linux/types.h>
#include <linux/compat.h>
#include <linux/kernel.h>
@@ -2642,6 +2644,12 @@ COMPATIBLE_IOCTL(VIDEO_SET_ATTRIBUTES)
COMPATIBLE_IOCTL(VIDEO_GET_SIZE)
COMPATIBLE_IOCTL(VIDEO_GET_FRAME_RATE)
+/* joystick */
+COMPATIBLE_IOCTL(JSIOCGVERSION)
+COMPATIBLE_IOCTL(JSIOCGAXES)
+COMPATIBLE_IOCTL(JSIOCGBUTTONS)
+COMPATIBLE_IOCTL(JSIOCGNAME(0))
+
/* now things that need handlers */
HANDLE_IOCTL(MEMREADOOB32, mtd_rw_oob)
HANDLE_IOCTL(MEMWRITEOOB32, mtd_rw_oob)