aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2008-02-19 13:58:54 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-19 18:51:36 -0500
commit5efe92c68045817b97927b748f369d407c1d89ab (patch)
treec42dcc6799cac1f56dd8073b0205dc5ecb2beb4f /arch
parent2b79aac9038ee52fd8d89216b1a3ec9bd8285fac (diff)
MN10300: Introduce barriers to replace removed volatiles in gdbstub
Introduce into the MN10300 gdbstub a couple of barrier() calls to replace the removed volatility of the input/output index variables for the Rx ring buffer. Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/mn10300/kernel/gdb-io-ttysm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/mn10300/kernel/gdb-io-ttysm.c b/arch/mn10300/kernel/gdb-io-ttysm.c
index c5451592d403..e94c25e8ca05 100644
--- a/arch/mn10300/kernel/gdb-io-ttysm.c
+++ b/arch/mn10300/kernel/gdb-io-ttysm.c
@@ -196,6 +196,7 @@ int gdbstub_io_rx_char(unsigned char *_ch, int nonblock)
196try_again: 196try_again:
197 /* pull chars out of the buffer */ 197 /* pull chars out of the buffer */
198 ix = gdbstub_rx_outp; 198 ix = gdbstub_rx_outp;
199 barrier();
199 if (ix == gdbstub_rx_inp) { 200 if (ix == gdbstub_rx_inp) {
200 if (nonblock) 201 if (nonblock)
201 return -EAGAIN; 202 return -EAGAIN;
@@ -207,6 +208,7 @@ try_again:
207 208
208 ch = gdbstub_rx_buffer[ix++]; 209 ch = gdbstub_rx_buffer[ix++];
209 st = gdbstub_rx_buffer[ix++]; 210 st = gdbstub_rx_buffer[ix++];
211 barrier();
210 gdbstub_rx_outp = ix & (PAGE_SIZE - 1); 212 gdbstub_rx_outp = ix & (PAGE_SIZE - 1);
211 213
212 st &= SC01STR_RXF | SC01STR_RBF | SC01STR_FEF | SC01STR_PEF | 214 st &= SC01STR_RXF | SC01STR_RBF | SC01STR_FEF | SC01STR_PEF |