Bug 193089 - Kernel Joystick Driver Bug..
Summary: Kernel Joystick Driver Bug..
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: kernel
Version: 4.0
Hardware: athlon
OS: Linux
Target Milestone: ---
: ---
Assignee: Pete Zaitcev
QA Contact: Brian Brock
Depends On:
TreeView+ depends on / blocked
Reported: 2006-05-25 06:08 UTC by Wolfgang Gill
Modified: 2010-04-24 00:13 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2010-04-24 00:13:47 UTC

Attachments (Terms of Use)
suspect patch (9.06 KB, patch)
2006-05-30 20:08 UTC, Jason Baron
no flags Details | Diff
/proc/bus/usb/devices list for the Working 22.0.2 kernel (3.82 KB, text/plain)
2006-06-01 11:50 UTC, Wolfgang Gill
no flags Details
dmesg output for 22.0.2 working kernel (17.33 KB, text/plain)
2006-06-01 12:00 UTC, Wolfgang Gill
no flags Details
dmesg output for failing kernel 22.1 (17.05 KB, text/plain)
2006-06-03 02:16 UTC, Wolfgang Gill
no flags Details
/proc/bus/usb/devices output (3.81 KB, text/plain)
2006-06-03 02:18 UTC, Wolfgang Gill
no flags Details
Blacklist patch (2.25 KB, patch)
2006-06-03 04:50 UTC, Pete Zaitcev
no flags Details | Diff

Description Wolfgang Gill 2006-05-25 06:08:11 UTC
Description of problem:
Joystick controller no longer functions with the latest RHEL4 Kernel

Version-Release number of selected component (if applicable):
kernel-2.6.9-34.EL onwards

How reproducible:
Plug joystick (CH Products Combatstick 568 USB) into USB port. System detects
and loads the joystick module (Joydev). But the stick doesn't respond at all.

Steps to Reproduce:
1.Using KDE, goto Control Center, then Peripherals, then Joystick. 
2.Also tried, removing and reactivating the joydev module. And no change.
Actual results:
The Joystick Name and Joystick device is listed. BUT, when you move the stick,
or press any button, nothing responds.

Expected results:
When in Control Center (KDE), the X should move around when the joystick is
moved, and the button numbers should show, when a button is pressed. Hence when
running a game such as Unreal Tournament 2004, the joystick doesn't respond what
so ever.

Additional info:
This all worked fine in the kernel-2.6.9-22*.EL kernels, back to the original
one. The device worked fine with them all..

Comment 1 Jason Baron 2006-05-25 15:46:07 UTC
ok, i'm not really sure what change broke this...i'd like to do a binary search
through the kernels between 22* 34* to figure it out, are you willing to try a
number of kernels, so we can figure out what patch broke this? If so, what
kernel do you need exactly, so i can make them avalible? it looks like you are
using the UP i686 kernel. is that correct?

Comment 2 Wolfgang Gill 2006-05-26 01:40:54 UTC
I have no problems in trying another kernel.. The kernel I use most is the
i686_SMP one, as my system is a Dual Athlon MP2800+ system..

All I can say is that the joystick no longer responded after the 2.6.9-34.EL
kernel update. 

The joystick is seen, but will not respond.. going back to 2.6.9-22.0.2.EL fixes
it again..

Comment 3 Jason Baron 2006-05-26 18:29:55 UTC
ok, i've placed all the interim kernel builds between 22.0.2 and 34 at:

I want to figure out between which two kernel builds this broke. So please start
with 22.22. If that works then try say 26. Otherwise try 22.11. In that way you
sshould be able to find kernel n such that n works and n+1 fails. make sense?
Then, i think it will be easy to figure out which patch (since there aren't that
many per build).


Comment 4 Jason Baron 2006-05-26 18:31:38 UTC
This may sounds like a lot of work but it should only require about 6 tries.

Comment 5 Wolfgang Gill 2006-05-27 02:28:22 UTC
Ok, I'm downloading a couple of them now, and will let you know the stats of
them shortly..

Comment 6 Wolfgang Gill 2006-05-27 03:05:06 UTC
Ok, I've downloaded the following kernels:-


And the joystick controller fails with them all.. (ALL the modules for the
joystick install fine without errors), and running "jstest /dev/js0" there's no
joystick responses what so ever..

Rebooting into the "kernel-smp-2.6.9-22.0.2.EL" it works fine again..

OK, downloading 22.20 and see how that one goes.. (And going backwards)

Comment 7 Wolfgang Gill 2006-05-27 03:51:25 UTC
Well, I went back to version 22.16 and it doesn't work.. I'll need to go back
futher.. Here we go again...

Comment 8 Wolfgang Gill 2006-05-27 07:57:36 UTC
OK, the conclusion of these kernels are that none in that list work. I've gone
right back to 22.1 and that one doesn't work either... So the problem must go
back even further... In all instances, I've checked that the driver (joydev) has
loaded. And ran the "jstest /dev/js0" and check the joystick.. No response.. SO,
it's back to 22.0.2 again for me..

Comment 9 Jason Baron 2006-05-30 20:06:27 UTC
ok, So the problem was introduced in 22.1. There are 3 changes in that kernel:

* Mon Sep 26 2005 Jason Baron <jbaron@redhat.com> [2.6.9-22.1]
-remove: fix for NX text/large-page interaction (Ingo Molnar) [163238]
-update hangcheck-timer to 0.9.0 and add for ia64, ppc64 and s390 [167731]
-fix usb memory sticks (Pete Zaitcev) [167032]

The most likely culprit is the third one, imo. I'm attaching that patch here.
Reversing, that patch from any kernels > 22.1, hopefully solves this...i can
give you such a test kernel, or you can try reversing the patch as: "patch -p1
-R < foo.patch"

Comment 10 Jason Baron 2006-05-30 20:08:08 UTC
Created attachment 130247 [details]
suspect patch

patch to try reverting.

Comment 11 Pete Zaitcev 2006-05-31 00:34:05 UTC
Now I see that I should've pressed usbmon into service in RHEL-4, because
it's difficult to guess how exactly the joystick breaks with debugging
tools available to us. Maybe it does not like when strings are collected
before some critical initialization is done by HID level.

Comment 12 Pete Zaitcev 2006-05-31 01:01:08 UTC
No, scratch the comment #11. The new get_string is located in the same
place where old show_string was. It also checks for nonzero index.

I'd like to see the /proc/bus/usb/devices and dmesg from a working kernel,
and same for non-working kernel.

Comment 13 Wolfgang Gill 2006-06-01 11:50:31 UTC
Created attachment 130333 [details]
/proc/bus/usb/devices list for the Working 22.0.2 kernel

Comment 14 Wolfgang Gill 2006-06-01 12:00:30 UTC
Created attachment 130334 [details]
dmesg output for 22.0.2 working kernel

I'll post the /proc/bus/usb/devices and dmesg outputs from the 22.1 kernel when
I next boot into it. Sorry for adding these seperately, I have no idea how to
attach them both at the same time..

Comment 15 Pete Zaitcev 2006-06-01 21:10:21 UTC
Jason, I'm taking this. Obviously a regression...

Comment 16 Pete Zaitcev 2006-06-03 01:18:43 UTC
dmesg looks perfect. May I get the one just like it for the failing case, please?

Comment 17 Wolfgang Gill 2006-06-03 02:16:01 UTC
Created attachment 130440 [details]
dmesg output for failing kernel 22.1

This is the dmesg output for the failing 22.1 kernel. I will also add the
/proc/bus/usb/devices output as well..

Comment 18 Wolfgang Gill 2006-06-03 02:18:24 UTC
Created attachment 130441 [details]
/proc/bus/usb/devices output

This is the requested output of /proc/bus/usb/devices when booted into the 22.1

Comment 19 Pete Zaitcev 2006-06-03 04:50:23 UTC
Created attachment 130442 [details]
Blacklist patch

This goes on top of 2.6.9-36.EL.

Comment 20 Pete Zaitcev 2006-06-03 04:54:13 UTC
Here's the deal. The story is extremely fishy. Everything about the device
works correctly, but it just does not send any reports (presumably).
There's no way to theoretize further without some extensive debugging.
So, I have no clue what exactly is wrong.

Taking off the bisecting results, I can offer a blacklist patch, which
is probably the safest thing to do in the context of RHEL 4.

Comment 21 Wolfgang Gill 2006-06-03 09:08:18 UTC
So what your saying is, that it has nothing to do with the usb memory stick
fix?? As I find it odd that no other usb device is effected, only the joystick
device. (From what I can tell) .. Since I don't have the 2.6.9-36.EL kernel
either, the patch is of no use to me.. I'm going to stick with the 2.6.9-22.0.2
kernel for now, as it works.. And wait until this problem is resolved before I
upgrade the kernel again..

Comment 22 Pete Zaitcev 2006-06-03 17:46:58 UTC
Dear Wolfgang, your message indicates that you know how to rebuild
kernels ("since I don't have XXX, the patch is of no use"). So why
don't you try to apply the patch first? It is perfectly localized
and should work well with anything past 2.6.9-22.1.EL. I'm eagerly
awaiting the results.

Comment 23 Wolfgang Gill 2006-06-04 01:04:11 UTC
lol, I've never patched or rebuilt a 2.6.x kernel before. I have done it with
the 2.4.x kernels over 2 years ago. But there are quite a few changes since I
did it last. (With the exception of patching, as I've never done that yet..)..
So I don't have any idea how or where to start.. Learning to keep the system
running is a big enough learning curve, let alone rebuilding the kernel.. If you
can point me in the right direction, I might give it a try.. When I have a chance..

Comment 24 Pete Zaitcev 2006-06-04 02:32:48 UTC
Don't worry about it, I'll cut a branch and run a build.

Comment 25 Wolfgang Gill 2006-07-01 01:51:04 UTC
Looks like I've got you stumped on this one.. Had no responses for a while.
The 2.6.9-22.0.2.ELsmp release is still working fine so far. Any more regarding
the 2.6.9-43 kernel? I'm seriously concidering going over to FC series. Where I
beleive it's all working fine..

Comment 26 Wolfgang Gill 2006-07-01 01:52:09 UTC

Looks like I've got you stumped on this one.. Had no responses for a while.
The 2.6.9-22.0.2.ELsmp release is still working fine so far. Any more regarding
the 2.6.9-34 kernel? I'm seriously concidering going over to FC series. Where I
beleive it's all working fine..

Comment 27 Pete Zaitcev 2008-08-22 17:52:24 UTC
I was cleaning up old builds and found that apparently I have actually
built a test for this bug, but did not announce it:
This looks like a forgotten bug. Not good.

Comment 28 Pete Zaitcev 2010-04-24 00:13:47 UTC
Removing the test to save space, closing the old bug.

Note You need to log in before you can comment on or make changes to this bug.