[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4F7AE9D3.80204@permonline.ru>
Date: Tue, 03 Apr 2012 18:15:15 +0600
From: Mike Sinkovsky <msink@...monline.ru>
To: Eric Dumazet <eric.dumazet@...il.com>
CC: netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v6 0/2] Ethernet drivers for WIZnet chips
03.04.2012 17:39, Eric Dumazet написал:
> On Tue, 2012-04-03 at 16:58 +0600, Mike Sinkovsky wrote:
>> Based on original driver from chip manufacturer, but nearly full rewite.
>> Tested and used in production with Blackfin BF531 embedded processor.
>>
>> Signed-off-by: Mike Sinkovsky<msink@...monline.ru>
>> ---
>> v6:
>> - remove (S0_TX_FSR< skb->len) check in TX handler, it doesn't work
>> anyway. Chip can transmit only one frame with MTU 1500 at a time,
>> and tx buffer size is bigger.
>
> So what happens if XXX frames are given to start_xmit() in a flood ?
>
> You removed any flow control, how can this work ?
>
> Device has an infinite queue ?
As I understand from datasheet, device doesn't have tx queue at all.
It have tx buffer, processor must save transmitted frame to it, and then
save SEND command to command register. When transmission completed,
SENDOK bit in interrupt register will be set to '1', and interrupt
handler will be called.
So, according to datasheet, driver must stop queue in start_xmit()
routine, and wake in interrupt handler of SENDOK bit.
I tried this, and it basically works, but SOMETIMES, very rare, I see
tx_timeout().
And without any flow control - driver works perfectly.
Weird, don't know why.
--
Mike
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists