Re: [PATCH v3] sky2: receive dma mapping error handling
From: Stephen Hemminger <hidden>
Date: 2010-02-01 22:52:08
Also in:
lkml
From: Stephen Hemminger <hidden>
Date: 2010-02-01 22:52:08
Also in:
lkml
On Mon, 1 Feb 2010 23:46:39 +0100 Jarek Poplawski [off-list ref] wrote:
On Mon, Feb 01, 2010 at 02:29:42PM -0800, Stephen Hemminger wrote:quoted
On Mon, 1 Feb 2010 22:27:41 +0100 Jarek Poplawski [off-list ref] wrote:quoted
@@ -1038,13 +1035,14 @@ static void tx_init(struct sky2_port *sky2) { struct sky2_tx_le *le; - sky2->tx_prod = sky2->tx_cons = 0; + sky2->tx_prod = 0; sky2->tx_tcpsum = 0; sky2->tx_last_mss = 0; le = get_tx_le(sky2, &sky2->tx_prod); le->addr = 0; le->opcode = OP_ADDR64 | HW_OWNER; + sky2->tx_cons = sky2->tx_prod; sky2->tx_last_upper = 0; }Your change causes the initial element to be skipped. I want it to goto the hardware. It makes sure the upper bits of the first request are set (0).I thought "Send high bits if needed" part in sky2_xmit_frame() was enough. If it's otherwise than my patch was wrong.
The definition is "high bits are different than the last value". The code init sets the last value to zero, and initializes the hardware engine as well.