MN10300: Introduce barriers to replace removed volatiles in gdbstub 16550 driver
[linux-2.6-block.git] / arch / mn10300 / kernel / gdb-io-serial.c
index 9a6d4e8ebe7396f058ccc740d48dfc3a0e14f979..11584c51acd93669dfe587cd2983ca81663397b5 100644 (file)
@@ -99,6 +99,7 @@ int gdbstub_io_rx_char(unsigned char *_ch, int nonblock)
  try_again:
        /* pull chars out of the buffer */
        ix = gdbstub_rx_outp;
+       barrier();
        if (ix == gdbstub_rx_inp) {
                if (nonblock)
                        return -EAGAIN;
@@ -110,6 +111,7 @@ int gdbstub_io_rx_char(unsigned char *_ch, int nonblock)
 
        ch = gdbstub_rx_buffer[ix++];
        st = gdbstub_rx_buffer[ix++];
+       barrier();
        gdbstub_rx_outp = ix & 0x00000fff;
 
        if (st & UART_LSR_BI) {