Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/dev/ic



On Sat, Dec 08, 2007 at 03:45:43PM +0000, Izumi Tsutsui wrote:
> 
> Module Name:  src
> Committed By: tsutsui
> Date:         Sat Dec  8 15:45:43 UTC 2007
> 
> Modified Files:
>       src/sys/dev/ic: i82557.c i82557reg.h i82557var.h
> 
> Log Message:
> Pull several fixes from OpenBSD's fxp.c:
> 
> Rev 1.41:
> > use a nop with I bit set at the end of the tx chain.  This avoids a race
> > between status update and clearing the suspend bit on machines which can't
> > write data smaller than 32bits at a time.
> This should fix PR port-alpha/30560.

It looks to me like this problem can be solved more simply by
reading/writing the cb_status and cb_command fields simultaneously as
one 32-bit word.

BTW, it looks to me like there are some DMA barriers missing
from fxp.  After fxp examines a transmit descriptor and finds
that the completion bit, FXP_CB_STATUS_C, is clear, it should
bus_dmamap_sync(BUS_DMASYNC_PREREAD) the descriptor.

BTW, what is the cacheline size on the Alpha?  Are the transmit
descriptors cacheline-aligned?

Dave

-- 
David Young             OJC Technologies
dyoung%ojctech.com@localhost      Urbana, IL * (217) 278-3933 ext 24



Home | Main Index | Thread Index | Old Index