Bug 9652
Summary: | joystick not working with 32 bit applications running on x86-64 | ||
---|---|---|---|
Product: | Platform Specific/Hardware | Reporter: | Akos Maroy (darkeye) |
Component: | x86-64 | Assignee: | Alexey Dobriyan (adobriyan) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | akpm, dmitry.torokhov, jeremy, kernel |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.22 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
Akos Maroy
2007-12-28 08:55:51 UTC
Please send the patch via email to myself, Dmitry and linux-kernel@vger.kernel.org, thanks. I already sent the patch to the linux-kernel mailing list, before posting this ticket. should I send it again? here's the post on the list: http://lkml.org/lkml/2007/12/22/73
> I already sent the patch to the linux-kernel mailing list, before
> posting this ticket. should I send it again?
>
> here's the post on the list:
>
> http://lkml.org/lkml/2007/12/22/73
hm, why is this one needed:
+COMPATIBLE_IOCTL(JSIOCGNAME(0x200)) /* for X-Plane 8.03 */
?
(also, why are the other ones needed - these compat ioctl additions were
never there before, so i'm not sure why it's a regression.)
Ingo
for COMPATIBLE_IOCTL(JSIOCGNAME(0x200)) - frankly, I don't know :) Bernhard Ager also submitted such a patch to the kernel mailing list in 2005, and he said: he JSIOCGNAME ioctl causes a problem as it encodes the length of the return buffer into the ioctl number. This is solved by mapping all of the JSIOCGNAME ioctls to JSIOCGNAME(0). his suggestion was JSIOCGNAME(0), see here: http://readlist.com/lists/vger.kernel.org/linux-kernel/28/144411.html as for the other ones - as far as I understand, they are the ones passing the joystick controls to the 32 bit compatibility layer. on short: without this patch, 32 bit apps don't see the joystick, with the patch, they do. as for why it's marked as regression - I don't know :) Boldog uj evet :) It's marked as a regression because you wrote "Most recent kernel where this bug did not occur: 2.6.22" suggesting that this bug was introduced as of 2.6.23, but from your report I gather that is not what you meant - this has never worked for you on any kernel. Brian Gerst rejected a similar patch in 2005, stating that it should already be fixed through ->compat_ioctl http://readlist.com/lists/vger.kernel.org/linux-kernel/28/144411.html It apparently is not, so I'll shoot him a quick email. Downstream bug report: https://bugs.gentoo.org/show_bug.cgi?id=203011 Linked to the wrong mail. This is the one I meant: http://readlist.com/lists/vger.kernel.org/linux-kernel/28/144445.html Brian writes: ------ Commit 024ac44c701d43f5e2d34bd6a35b2813a36e6010 should have fixed the compat ioctls in the correct manner. Running "jstest --old js0" works for me on my amd64 system (kernel 2.6.23.14-107.fc8). ------ Can someone who is experiencing this bug please play around with jstest? In gentoo it's available in games-util/joystick, otherwise it can be found in this tarball: http://gentoo.virginmedia.com/distfiles/joystick-20060731.tar.bz2 If jstest seems to work, can you please give specific instructions how to reproduce this issue? I only have the patched kernel, there jstest seems to work fine: $ jstest --old /dev/input/js0 Driver version is 2.1.0. Joystick (CH PRODUCTS CH FIGHTERSTICK USB ) has 5 axes (X, Y, Z, Hat0X, Hat0Y) and 19 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn, TopBtn2, PinkieBtn, BaseBtn, BaseBtn2, BaseBtn3, BaseBtn4, BaseBtn5, BaseBtn6, BtnDead, BtnA, BtnB, BtnC, BtnX, BtnY, BtnZ). Testing ... (interrupt to exit) Axes: X:127 Y:127 Buttons: A:off B:off but this is with a kernel already containing the patch I posted above... Thanks for testing, but you need to do it on an unpatched kernel for the test to be of use Reopen if mainline patch is wrong for some reason. |