[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#626021: linux-image-2.6.38-2-686: icebp (opcode 0xf1) no longer causing a SIGTRAP, breaks Wine

On Sat, May 7, 2011 at 21:11, Ben Hutchings <ben@decadent.org.uk> wrote:
> On Sat, 2011-05-07 at 19:50 -0500, Austin English wrote:
>> Package: linux-2.6
>> Version: 2.6.38-3
>> Severity: normal
>> This is a bug in the kernel itself, there have been a few patches to
>> the kernel, but it seems at least one patch is not in the vanilla
>> kernel. Some other distributions are including this patch. See
>> https://bugzilla.kernel.org/show_bug.cgi?id=16315 and
>> http://bugs.winehq.org/show_bug.cgi?id=23323 for more info.
> A different version of that patch has been applied as:
> commit 89e45aac42d40426c97e6901811309bf49c4993f
> Author: Frederic Weisbecker <fweisbec@gmail.com>
> Date:   Fri Sep 17 03:24:13 2010 +0200
>    x86: Fix instruction breakpoint encoding
> Please identify any further changes you believe are required.

Looking at the Wine bug, appears the relevant commits are:
1. Commit 08d6832 breaks the login
2. Commit a1e80fa fixes commit 08d6832 (this is in 2.6.35)
3. Commit f7809da also breaks the login (this is in 2.6.36-rc1 and later)
4. Frederick's new patch fixes commit f7809da (this hasn't been checked in)

from http://bugs.winehq.org/show_bug.cgi?id=23323#c181

in any case, a regression test was added to wine to check for this,
which fails on this kernel:
../../../tools/runtest -q -P wine -M ntdll.dll -T ../../.. -p
ntdll_test.exe.so exception.c && touch exception.ok
exception.c:399: Test failed: 42: Wrong exception address 0x330000/0x330001
wine: Unhandled exception 0x80000004 at address 0x330000 (thread
0009), starting debugger...
0x00330000: icebp
=>0 0x00330000 (0x0032fcb8)
  1 0x684c2d44 func_exception+0x283()
[/home/austin/wine-git/dlls/ntdll/tests/exception.c:465] in ntdll_test
  2 0x684f17fe run_test+0x14d(name="exception.c")
in ntdll_test (0x0032fd88)
  3 0x684f22c7 main+0x156(argc=*** Invalid address 0x00000000 ***
, argv=*** Invalid address 0x00000004 ***
Internal symbol error: unable to access memory location 0x4)
in ntdll_test (0x0032fe48)
  4 0x684f249c __wine_spec_exe_entry+0x7b(peb=0x7ffdf000)
[/home/austin/wine-git/dlls/winecrt0/exe_entry.c:36] in ntdll_test
  5 0x7b8593ac call_process_entry+0xb() in kernel32 (0x0032fea8)
  6 0x7b859fdf start_process+0x5e(peb=0x7ffdf000)
[/home/austin/wine-git/dlls/kernel32/process.c:1086] in kernel32
  7 0x7bc70e58 call_thread_func+0xb() in ntdll (0x0032fef8)
  8 0x7bc744fe call_thread_entry_point+0x6d(entry=0x7b859f80,
arg=0x7ffdf000) [/home/austin/wine-git/dlls/ntdll/signal_i386.c:2499]
in ntdll (0x0032ffc8)
  9 0x7bc49f1e start_process+0x1d(kernel_start=0x7b859f80)
[/home/austin/wine-git/dlls/ntdll/loader.c:2612] in ntdll (0x0032ffe8)
  10 0x6802899d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
exception.c:399: Test failed: 42: Wrong exception address 0x330000/0x330001
exception.c:399: Test failed: 42: Wrong exception address 0x330000/0x330001


Reply to: