E1000 - fixed reading/writing device registers
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.

veritas-shine/minix3-rpi,veritas-shine/minix3-rpi,veritas-shine/minix3-rpi,veritas-shine/minix3-rpi,veritas-shine/minix3-rpi,veritas-shine/minix3-rpi,veritas-shine/minix3-rpi,veritas-shine/minix3-rpi