|Summary:||Kernel Joystick Driver Bug..|
|Product:||Red Hat Enterprise Linux 4||Reporter:||Wolfgang Gill <wolfgang>|
|Component:||kernel||Assignee:||Pete Zaitcev <zaitcev>|
|Status:||CLOSED WORKSFORME||QA Contact:||Brian Brock <bbrock>|
|Fixed In Version:||Doc Type:||Bug Fix|
|Doc Text:||Story Points:||---|
|Last Closed:||2010-04-24 00:13:47 UTC||Type:||---|
|oVirt Team:||---||RHEL 7.3 requirements from Atomic Host:|
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. 3. 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: http://people.redhat.com/~jbaron/bz193089/. 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). thanks.
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:- kernel-smp-2.6.9-22.22.EL kernel-smp-2.6.9-22.26.EL kernel-smp-2.6.9-22.27.EL 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 <email@example.com> [2.6.9-22.1] -remove: fix for NX text/large-page interaction (Ingo Molnar)  -update hangcheck-timer to 0.9.0 and add for ia64, ppc64 and s390  -fix usb memory sticks (Pete Zaitcev)  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 kernel.
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
Correction: 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: http://people.redhat.com/zaitcev/ftp/193089/ 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.