csky: fixup CACHEV1 store instruction fast retire
authorGuo Ren <ren_guo@c-sky.com>
Tue, 8 Jan 2019 12:17:49 +0000 (20:17 +0800)
committerGuo Ren <ren_guo@c-sky.com>
Tue, 8 Jan 2019 15:42:42 +0000 (23:42 +0800)
commit96354ad79e2e59f9d620669c8e1ac2452440c260
treef2cb1c8aeb4839c1a9de1c6c41672a2dc01ea0fe
parentf553aa1c13cbc29aaf420349a28fc33ca98440e5
csky: fixup CACHEV1 store instruction fast retire

For I/O access, 810/807 store instruction fast retire will cause wrong
primitive. For example:

stw (clear interrupt source)
stw (unmask interrupt controller)
enable interrupt

stw is fast retire instruction. When PC is run at enable interrupt
stage, the clear interrupt source hasn't finished. It will cause another
wrong irq-enter.

So use mb() to prevent above.

Signed-off-by: Guo Ren <ren_guo@c-sky.com>
Cc: Lu Baoquan <lu.baoquan@intellif.com>
arch/csky/include/asm/io.h