On 12/27/2011 17:34, Stephen Hemminger wrote: > On Tue, 27 Dec 2011 16:29:57 -0500 > Joshua Kinard <kumba@xxxxxxxxxx> wrote: > >> MIPS I/O registers are always memory-mapped, and to prevent the compiler >> from trying to over-optimize, volatile is used to make sure we always read a >> value from the hardware and not from some cached value. > > Almost every other network driver had memory mapped register. > The problem is volatile is that the compiler is stupid and wrong. > Using explicit barriers is preferred and ensures correct and fast > code. I am somewhat new to driver development, so I do not know all the tricks of the trade just yet. Do you have references to doing explicit barriers that I can look at? Might be worth trying on the RTC driver I have to get the hang of them. -- Joshua Kinard Gentoo/MIPS kumba@xxxxxxxxxx 4096R/D25D95E3 2011-03-28 "The past tempts us, the present confuses us, the future frightens us. And our lives slip away, moment by moment, lost in that vast, terrible in-between." --Emperor Turhan, Centauri Republic