瀏覽代碼

mpc83xx: 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"
Emilian Medve 18 年之前
父節點
當前提交
a28899c910
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      drivers/qe/uec.c

+ 1 - 1
drivers/qe/uec.c

@@ -1148,7 +1148,7 @@ static int uec_send(struct eth_device* dev, volatile void *buf, int len)
 	/* 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);