Kernel 2.6.9 - Issue Found

Jesse Allen the3dfxdude at
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 / 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
Also 2.6.9-rc2
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
at all:

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 mailing list