]> Zhao Yanbai Git Server - minix.git/commit
E1000 - fixed reading/writing device registers
authorTomas Hruby <tom@minix3.org>
Mon, 4 Jul 2011 08:46:51 +0000 (10:46 +0200)
committerTomas Hruby <tom@minix3.org>
Fri, 8 Jul 2011 18:31:21 +0000 (20:31 +0200)
commitd75138be002d079a28901686b9dacb6bdb9eba7d
treee40be11648ea014598ef4dfd1fa5871c655bf8dc
parent170457b73fedef750b351762dde24454ed0121b9
E1000 - fixed reading/writing device registers

- the pointers must be flagged as volatile because otherwise they
  might be "optimized" by a compiler. It is a common good
  practice to access the registers this way, the keyword is in C
  for a reason.

- for instance, in eeprom_eerd() when polling a register the
  compiler, under certain conditions, may decide upon the first
  read and if it does not break the loop it assumes that the
  value is not going to change and thus stays in an infinite
  loop.
drivers/e1000/e1000.c