Blackfin: SMP: make all barriers handle cache issues
authorGraf Yang <graf.yang@analog.com>
Thu, 7 Jan 2010 06:57:30 +0000 (06:57 +0000)
committerMike Frysinger <vapier@gentoo.org>
Wed, 13 Apr 2011 23:34:04 +0000 (19:34 -0400)
commit943aee0c685d0563228d5a2ad9c8394ad0300fb5
tree380d2fab81323a878ab750f573d4476d109e589b
parent85f2e689a5c8fb6ed8fdbee00109e7f6e5fefcb6
Blackfin: SMP: make all barriers handle cache issues

When suspending/resuming, the common task freezing code will run in
parallel and freeze processes on each core.  This is because the code
uses the non-smp version of memory barriers (as well it should).

The Blackfin smp barrier logic at the moment contains the cache sync
logic, but the non-smp barriers do not.  This is incorrect as Rafel
summarized:
> ...
> The existing memory barriers are SMP barriers too, but they are more
> than _just_ SMP barriers.  At least that's how it is _supposed_ to be
> (eg. rmb() is supposed to be stronger than smp_rmb()).
> ...
> However, looking at the blackfin's definitions of SMP barriers I see
> that it uses extra stuff that should _also_ be used in the definitions
> of the mandatory barriers.
> ...

URL: http://lkml.org/lkml/2011/4/13/11
LKML-Reference: <BANLkTi=F-C-vwX4PGGfbkdTBw3OWL-twfg@mail.gmail.com>
Signed-off-by: Graf Yang <graf.yang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/include/asm/system.h