e1000e: Correct link check logic for 82571 serdes
e1000e: Correct link check logic for 82571 serdes

SYNCH bit and IV bit of RXCW register are sticky. Before examining these bits,
RXCW should be read twice to filter out one-time false events and have correct
values for these bits. Incorrect values of these bits in link check logic can
cause weird link stability issues if auto-negotiation fails.

CC: stable <4fbacc2fa0ffdbb11bf1ad6925b886ebd08dd15f@vger.kernel.org> [2.6.38+]
Reported-by: Dean Nelson <d3465cf1d47044656beb99a21b027db731478f56@redhat.com>
Signed-off-by: Tushar Dave <87283134ef8c4467e5607edc1225ad1197ffdd4c@intel.com>
Reviewed-by: Bruce Allan <9ca9a0356a10eed24a8d9ec38dc19d9cd20ba07b@intel.com>
Tested-by: Jeff Pieper <89ae28dca346dcf475c1c4c5ccad0a12c81be577@intel.com>
Signed-off-by: Jeff Kirsher <87e35f5be20bb3e67f4ba6b86f5f6be3085b1b3a@intel.com>

TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs,TeamVee-Kanas/android_kernel_samsung_kanas,KristFoundation/Programs