Messages in this thread | | | Date | Fri, 22 Sep 2023 00:58:04 +0100 | Subject | Re: [PATCH net-next 2/3] ice: fix undefined references from DPLL code when !CONFIG_PTP_1588_CLOCK | From | Vadim Fedorenko <> |
| |
On 20/09/2023 19:07, Alexander Lobakin wrote: > DPLL code in ice unconditionally calls several PTP functions which are > only built when CONFIG_PTP_1588_CLOCK is set. This throws a good bunch > of link errors: > > ERROR: modpost: "ice_cgu_get_pin_name" > [drivers/net/ethernet/intel/ice/ice.ko] undefined! > ERROR: modpost: "ice_get_cgu_state" > [drivers/net/ethernet/intel/ice/ice.ko] undefined! > OR: modpost: "ice_is_cgu_present" > [drivers/net/ethernet/intel/ice/ice.ko] undefined! > ERROR: modpost: "ice_get_cgu_rclk_pin_info" > [drivers/net/ethernet/intel/ice/ice.ko] undefined! > ERROR: modpost: "ice_cgu_get_pin_type" > [drivers/net/ethernet/intel/ice/ice.ko] undefined! > ERROR: modpost: "ice_cgu_get_pin_freq_supp" > [drivers/net/ethernet/intel/ice/ice.ko] undefined! > > ice_dpll_{,de}init() can be only called at runtime when the > corresponding feature flags are set, which is not the case when PTP > support is not compiled. However, the linker has no clue about this. > Compile DPLL code only when CONFIG_PTP_1588_CLOCK is enabled and guard > the mentioned init/deinit function calls, so that ice_dpll.o is only > referred when it gets compiled. > > Note that ideally ice_is_feature_supported() needs to check for > compile-time flags first to be able to handle this without any > additional call guards, and we may want to do that in the future. >
There is another fix under review [1], which came from Jacob. It converts the code a bit more, and will create conflicts. I would suggest to drop this patch until another series is fully reviewed.
[1] https://lore.kernel.org/netdev/20230921000633.1238097-1-jacob.e.keller@intel.com/
| |