Hello!
> Such rule does not even make this piece of code legal. Consider:
>
> task1:cpu0: x = counters[smp_processor_id()];
> cpu0: PREEMPT
> task2:cpu0: x = counters[smp_processor_id()];
> task2:cpu0: counters[smp_processor_id()] = x + 1;
> cpu0: PREEMPT
> task1:cpu0: counters[smp_processor_id()] = x + 1;
> full garbage
Yup. And this has nothing to do with SMP...
> But it does bring up important point, preemption people need to
> fully audit entire networking.
Well, we can make this. It is too serious. Anyway, this means that
preemptive patch for 2.4 is "tainting" :-)
Alexey
|