You are both wrong.
The locks work in the latest version, but there are still issues on certain hardware, and those just won't disappear if I do the big rewrite as these bugs are device-driver related. I will eventually fix the remaining bugs in the SATA driver as well, and that won't be fixed with a big rewrite either. It's just a buggy driver, not a buggy kernel.
Besides, if I do the "big rewrite", I won't have anything realistic to test and verify the locks and device-drivers on, so that rewrite might end up being twice as buggy as the current. After all, the remaining bugs cannot even be discovered without complex test-programs. And I have already rewritten the scheduler at least twice (the multi-core rewrite was the last one), so it is really the 3:rd kernel.
BTW, I'm really starting to like SVNs merge function. I think it will be pretty straight-forward to merge trunk with the working version on the 2-core AMD so that the system can configurate itself optimally based on hardware. Using APIC timer for timers & preemption is still optimal if the CPU can garantee that power-management (automatic or other) will not change the frequency in erratic ways. I took the per-core timer code out when I switched to global timers, but it should be easy enough to merge it back in.