|
From: Hartmut B. <har...@te...> - 2002-05-13 23:14:35
|
> -----Ursprungliche Nachricht----- > Von: we...@cw... [SMTP:we...@cw...] > Gesendet am: Montag, 13. Mai 2002 15:43 > An: rea...@li... > Betreff: Re: [ros-kernel] crash within MmOpenMemoryAreaByAddress > > I think it would be preferable to commit without known bugs. Why not post the > code to the list or commit to a seperate branch of the repository so more > people can help with debugging without having to break existing functionality. Hi, for testing, I've attached two patches. The first (fastmutex.patch) changes the lock for the address space from a MUTEX to a FAST_MUTEX and calls KeBugCheck, if there is a recursive locking for the same thread. After the command 'gcc -o rdel.o rdel.c -o -pipe' occurs the recursive locking of a address space. The call to KeBugCheck is only for printing a stack trace. Without the call, there is a dead lock at this point. The second patch (mdl-fix.patch) does add a KeRaiseIrql/KeLowerIrql for MmMapLockedPages/ MmUnmapLockedPages. With this patch, gcc works. There exist more points with a locked address space, which can also result in a corrupt memory area list, if there is a thread switching and a next access to the address space. - Hartmut |