e1000e: Fixes possible phy corrupton on 82571 designs.
authorDave Graham <david.graham@intel.com>
Mon, 8 Jun 2009 14:28:17 +0000 (14:28 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 9 Jun 2009 12:25:35 +0000 (05:25 -0700)
commit23a2d1b233f535fc74f8dca66e488980b4db041b
tree7c0102dfbfa8b789a4385d08151268a6fa3f8a3f
parent8459464f07cf67cab07b17d5736d75fb86adab22
e1000e: Fixes possible phy corrupton on 82571 designs.

Phy corruption has been observed on 2-port 82571 adapters, and is root-caused
to lack of synchronization between the 2 driver instances, which conflict
when attempting to access the phy via the single MDIC register.
A semaphore exists for this purpose, and is now used on these designs. Because
PXE &/or EFI boot code (which we cannot expect to be built with this fix) may
leave the inter-instance semaphore in an invalid initial state when the driver
first loads, this fix also includes a one-time (per driver load) fix-up of the
semaphore initial state.

Signed-off-by: dave graham <david.graham@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/e1000e/82571.c
drivers/net/e1000e/defines.h
drivers/net/e1000e/hw.h