问题原因:
底层驱动是e1000的网卡查询链路状态获取不到寄存器状态,寄存器被读,导致等待
主要代码逻辑:
e1000_read_phy_reg_82580->acquire/release->e1000_get_hw_semaphore_generic
需要获取状态的逻辑代码
e1000_get_hw_semaphore_generic函数中调用E1000_READ_REG(hw, E1000_SWSM),需要获取的状态为E1000_SWSM_SMBI
E1000_SWSM_SMBI状态的置位官方文档解释:

系统环境:
在linux 内核版本4.14的版本出现获取状态超时问题,在3.0.10的版本内核未出现。
该问题应该如何解决