[U-Boot-Users] [PATCH] Fix alternating tx error / tx buffer not ready bug in QE UEC

Kim Phillips kim.phillips at freescale.com
Tue Jan 30 23:14:50 CET 2007


From: Emilian Medve <Emilian.Medve at freescale.com>

Fix alternating tx error / tx buffer not ready bug in QE UEC

The problem is not gcc4 but the code itself. The BD_STATUS() macro can't
be used for busy-waiting since it strips the 'volatile' property from
the bd variable. gcc3 was working by pure luck.

This is a follow on patch to "Fix the UEC driver bug of QE"
(commit daa593ca78c63aadf77aa35c3065d42c535e5ddf).
---
 drivers/qe/uec.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/qe/uec.c b/drivers/qe/uec.c
index aea455b..c416a67 100644
--- a/drivers/qe/uec.c
+++ b/drivers/qe/uec.c
@@ -1148,7 +1148,7 @@ static int uec_send(struct eth_device* d
 	/* Init TxBD */
 	BD_DATA_SET(bd, buf);
 	BD_LENGTH_SET(bd, len);
-	status = BD_STATUS(bd);
+	status = bd->status;
 	status &= BD_WRAP;
 	status |= (TxBD_READY | TxBD_LAST);
 	BD_STATUS_SET(bd, status);
-- 
1.4.4





More information about the U-Boot mailing list