Hello Ying,

On 6/6/24 01:03, Ying Hsu wrote:
> On the CalDigit Thunderbolt Station 3 Plus, we've encountered an issue
> when the USB downstream display connection state changes. The
> problematic sequence observed is:
> ```
> igb_io_error_detected
> igb_down
> igb_io_error_detected
> igb_down
> ```
>
> The second igb_down call blocks at napi_synchronize.

From the backtrace in your commit message, I gain the impression you get a 
hotplug event for removing the ethernet device. From your commit message I gain 
the impression you get an AER as well which is handled in 
igb_io_error_detected()/igb_io_resume(). The problem lies IMHO in the 
interaction of both.


> Simply avoiding redundant igb_down calls makes the Ethernet of the 
> thunderbolt dock unusable.

I'm not too sure if the current code is even perfect in your use-case. What 
happens when you get an AER on the ethernet device (without plugging it out at 
the same time)?

Can you try to AER inject a completion timeout into your ethernet device, 
similar how I showed it in my previous message? Just replace the bdf 09:00.0 
with the bdf of your ethernet device. I expect a kernel crash like we see that 
on our embedded system.


> If Intel can identify when an Ethernet device is within a Thunderbolt
> tunnel, the patch can be more specific.

 Stefan

Reply via email to