Cc: Alan Stern <stern@...>, Alan Cox <alan@...>, Pavel Machek <pavel@...>, Paul E. McKenney <paulmck@...>, Andrew Morton <akpm@...>, Zdenek Kabelac <zdenek.kabelac@...>, <davem@...>, Rafael J. Wysocki <rjw@...>, Pierre Ossman <drzeus-mmc@...>, Kernel development list <linux-kernel@...>, pm list <linux-pm@...>
..
But also consider something like this:
void store_task(void)
{
*the_task = current;
}
In this case, there is no guarantee that the assignment
can be done atomically on all CPU types. Some RISC archs
(eg. MIPS R2xxx) require an (interruptible) instruction pair
to store values to a potentially unaligned address.
This was a BIG issue on a different system that I once worked on.
Cheers
--