Re: [PATCH net 4/4] net: axienet: Split into MAC and MDIO drivers
From: Jakub Kicinski <kuba@kernel.org>
Date: 2025-06-19 23:10:32
Also in:
linux-arm-kernel, lkml
From: Jakub Kicinski <kuba@kernel.org>
Date: 2025-06-19 23:10:32
Also in:
linux-arm-kernel, lkml
On Thu, 19 Jun 2025 16:05:37 -0400 Sean Anderson wrote:
Returning EPROBE_DEFER after probing a bus may result in an infinite probe loop if the EPROBE_DEFER error is never resolved. For example, if the PCS is located on another MDIO bus and that MDIO bus is missing its driver then we will always return EPROBE_DEFER. But if there are any devices on our own MDIO bus (such as PHYs), those devices will be successfully bound before we fail our own probe. This will cause the deferred probing infrastructure to continuously try to probe our device. To prevent this, split the MAC and MDIO functionality into separate auxiliary devices. These can then be re-probed independently.
There's a, pardon the expression, C++-like build failure here culminating in: drivers/net/ethernet/xilinx/xilinx_axienet_main.c:3225:1: error: redefinition of '__exittest' drivers/net/ethernet/xilinx/xilinx_axienet_main.c:3225:1: error: redefinition of '__inittest' drivers/net/ethernet/xilinx/xilinx_axienet_main.c:3225:1: error: redefinition of 'init_module' drivers/net/ethernet/xilinx/xilinx_axienet_main.c:3225:1: error: redefinition of 'cleanup_module' I'm guessing the existing module_platform_driver() and the new module_auxiliary_driver() don't want to be friends when this code is built as a module? -- pw-bot: cr