mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-19 17:14:40 +08:00
e1000: always call e1000_check_for_link() on e1000_ce4100 MACs.
Interrupts about link lost or rx sequence errors are not reported by the ce4100 hardware, leading to transitions from link UP to link DOWN never being reported. Signed-off-by: Nicolas Schichan <nschichan@freebox.fr> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
61463a30f6
commit
6d9e5130b9
@ -2402,13 +2402,16 @@ bool e1000_has_link(struct e1000_adapter *adapter)
|
|||||||
struct e1000_hw *hw = &adapter->hw;
|
struct e1000_hw *hw = &adapter->hw;
|
||||||
bool link_active = false;
|
bool link_active = false;
|
||||||
|
|
||||||
/* get_link_status is set on LSC (link status) interrupt or
|
/* get_link_status is set on LSC (link status) interrupt or rx
|
||||||
* rx sequence error interrupt. get_link_status will stay
|
* sequence error interrupt (except on intel ce4100).
|
||||||
* false until the e1000_check_for_link establishes link
|
* get_link_status will stay false until the
|
||||||
* for copper adapters ONLY
|
* e1000_check_for_link establishes link for copper adapters
|
||||||
|
* ONLY
|
||||||
*/
|
*/
|
||||||
switch (hw->media_type) {
|
switch (hw->media_type) {
|
||||||
case e1000_media_type_copper:
|
case e1000_media_type_copper:
|
||||||
|
if (hw->mac_type == e1000_ce4100)
|
||||||
|
hw->get_link_status = 1;
|
||||||
if (hw->get_link_status) {
|
if (hw->get_link_status) {
|
||||||
e1000_check_for_link(hw);
|
e1000_check_for_link(hw);
|
||||||
link_active = !hw->get_link_status;
|
link_active = !hw->get_link_status;
|
||||||
|
Loading…
Reference in New Issue
Block a user