瀏覽代碼

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>
David Howells 17 年之前
父節點
當前提交
5efe92c680
共有 1 個文件被更改,包括 2 次插入0 次删除
  1. 2 0
      arch/mn10300/kernel/gdb-io-ttysm.c

+ 2 - 0
arch/mn10300/kernel/gdb-io-ttysm.c

@@ -196,6 +196,7 @@ int gdbstub_io_rx_char(unsigned char *_ch, int nonblock)
 try_again:
 try_again:
 	/* pull chars out of the buffer */
 	/* pull chars out of the buffer */
 	ix = gdbstub_rx_outp;
 	ix = gdbstub_rx_outp;
+	barrier();
 	if (ix == gdbstub_rx_inp) {
 	if (ix == gdbstub_rx_inp) {
 		if (nonblock)
 		if (nonblock)
 			return -EAGAIN;
 			return -EAGAIN;
@@ -207,6 +208,7 @@ try_again:
 
 
 	ch = gdbstub_rx_buffer[ix++];
 	ch = gdbstub_rx_buffer[ix++];
 	st = gdbstub_rx_buffer[ix++];
 	st = gdbstub_rx_buffer[ix++];
+	barrier();
 	gdbstub_rx_outp = ix & (PAGE_SIZE - 1);
 	gdbstub_rx_outp = ix & (PAGE_SIZE - 1);
 
 
 	st &= SC01STR_RXF | SC01STR_RBF | SC01STR_FEF | SC01STR_PEF |
 	st &= SC01STR_RXF | SC01STR_RBF | SC01STR_FEF | SC01STR_PEF |