Yes, I think similar. I tried with uncommenting the netif_ruinning guard, and still the same behavior.
From what I see however, the first time the network is really up and running, whiel the second time it is notified as up “after” the resume, which then causes the double init.
Sorry, after reading you a second time, you basically say the same. You only say that the module itself calles ndev open, while I thaught maybe this is triggered by some kernel signal. (which would explain the different behavior under different kernels to me)
Another thing: I glanced over the git history of this module not so long ago, and if I remember correctly, this suspend/resume logic was changed somewhere after 5.4, so that could explain why 5.4 works fine.
By the way, do you need this module to function? Do you use the “Aquantia AQC108 NBase-T/IEEE 802.3bz Ethernet [AQtion]” device? Because if not, then I believe blacklisting it would be the easiest workaround.
I’m not convinced that change actually solves the problem and that it doesn’t introduce new ones. For one thing, it breaks the “symmetry” of atl_resume_common() and atl_suspend_common().
It seems to take a bit longer for the network to come back. And I hope this will only be temporary, until this module is updated. At least a hell heck better than a frozen system