Kernel 2.6.9 - Issue Found
the3dfxdude at gmail.com
Sat Nov 13 18:23:19 CST 2004
For the past two weeks I've been tracking an issue that I found with kernels
greater than 2.6.8 / 22.214.171.124 and wine. Starting with kernel 2.6.9-rc1,
Warcraft III copy protection would not work -- ie please insert disc. I found
changes to the cdrom driver in rc1. Reversing them did not work. For a while
I was lost to what could have changed. Then I had an idea: search for
changes that could affect the way processes run. That led me to reverse
changes related to ptrace, and I found a series of patches that break
Warcraft III copy protection code.
Patch 1: ptrace single-stepping fix
Included in 2.6.9-rc1
By Davide Libenzi?
This change includes a note that it could break debuggers. Reversing this
change would allow War3 to work in rc1, but kernels greater than rc1 would
still not work.
Patch 2: make single-step into signal delivery stop in handler
Included in 2.6.9-rc2
By Roland McGrath
The next patch may depend on patch #2 because it is a bug-fix based on 2.
Patch 3: Fix PTRACE_CONT after single-step into signal delivery
By Roland McGrath
Reversing patches 1, 2, and 3 in kernels 2.6.9-rc2 and greater (through
2.6.10-rc1) will allow War3 to work. I tried 1 & 3 without 2, but it failed
leading me to believe that 1 & 2 are required. I didn't try 1 & 2 alone
because I think reversing 2 would require 3 reversed.
All the patch changes seem to be on ptrace single-stepping. However, there
is at least one ptrace single-stepping patch that seems to make no difference
There are other single-stepping patches for different non-i386 architectures
but I have no idea on these because I don't run the others. They are
meaningless for wine anyways.
Now that I've identified a problem, I'm curious where else it's cropping up.
Paul Rupe, could you try reversing these patches to see if this fixes your
crashing problem? And how about those people having trouble with debugging?
Then I guess the next step is to find out if this is a wine bug or not. If
it's not, then it may be a kernel bug and we should report it to the kernel
More information about the wine-devel