summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c')
-rw-r--r--c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c b/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c
index 1ae1dbedce..b43d95c83d 100644
--- a/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c
+++ b/c/src/lib/libcpu/powerpc/mpc8260/console-generic/console-generic.c
@@ -1090,12 +1090,15 @@ m8xx_uart_write(
size_t len
)
{
- while( (TxBd[minor]->status) & M8260_BD_READY );
+ if (len > 0) {
+ while( (TxBd[minor]->status) & M8260_BD_READY );
+
+ rtems_cache_flush_multiple_data_lines( buf, len );
+ TxBd[minor]->buffer = (char *) buf;
+ TxBd[minor]->length = len;
+ TxBd[minor]->status = M8260_BD_READY | M8260_BD_WRAP | M8260_BD_INTERRUPT;
+ }
- rtems_cache_flush_multiple_data_lines( buf, len );
- TxBd[minor]->buffer = (char *) buf;
- TxBd[minor]->length = len;
- TxBd[minor]->status = M8260_BD_READY | M8260_BD_WRAP | M8260_BD_INTERRUPT;
return 0;
}