I just investigated the Centrino+SMP problem a little. My centrino
machine crashes instantly when receiving a packet. It turns out that my
centrino driver calls NdisIndicateReceivePacket with a spinlock held.
When NdisIndicateReceivePacket is finished the packet it will make a
call to the driver's ReturnPacketHandler which tries to take the same
spinlock and there we have a deadlock.
To fix this we need to make the call to ReturnPacketHandler outside
NdisIndicateReceivePacket which means we need to queue up the packets
and schedule a workqueue which calls ReturnPacketHandler.
This is clearly 0.3+ stuff which I will not be able to fix before I
leave so centrino user will have to live without SMP/HT for a while :(