Message ID | 20230501150624.3552344-1-arnd@kernel.org (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | pds_core: fix linking without CONFIG_DEBUG_FS | expand |
On Mon, May 01, 2023 at 05:06:14PM +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The debugfs.o file is only built when the fs is enabled: > > main.c:(.text+0x47c): undefined reference to `pdsc_debugfs_del_dev' > main.c:(.text+0x8dc): undefined reference to `pdsc_debugfs_add_dev' > main.c:(.exit.text+0x14): undefined reference to `pdsc_debugfs_destroy' > main.c:(.init.text+0x8): undefined reference to `pdsc_debugfs_create' > dev.c:(.text+0x988): undefined reference to `pdsc_debugfs_add_ident' > core.c:(.text+0x6b0): undefined reference to `pdsc_debugfs_del_qcq' > core.c:(.text+0x998): undefined reference to `pdsc_debugfs_add_qcq' > core.c:(.text+0xf0c): undefined reference to `pdsc_debugfs_add_viftype' > > Add dummy helper functions for these interfaces. > > Fixes: 55435ea7729a ("pds_core: initial framework for pds_core PF driver") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Thanks Arnd, this looks good to me. Reviewed-by: Simon Horman <simon.horman@corigine.com> While exercising this I noticed that building pds_core fails if either CONFIG_AUXILIARY_BUS or NET_DEVLINK are not enabled. I think the solution is for PFS_CORE to select both CONFIG_AUXILIARY_BUS and NET_DEVLINK. I am wondering if this is on anyone's radar. If not I'll send a patch.
On Mon, May 1, 2023, at 17:41, Simon Horman wrote: > On Mon, May 01, 2023 at 05:06:14PM +0200, Arnd Bergmann wrote: > > While exercising this I noticed that building pds_core fails > if either CONFIG_AUXILIARY_BUS or NET_DEVLINK are not enabled. > > I think the solution is for PFS_CORE to select both CONFIG_AUXILIARY_BUS > and NET_DEVLINK. Makes sense. I just double-checked the other uses of these symbols to see if they should be 'select' or 'depends on', and you are right that selecting them is the correct solution. There are two instances of 'depends on CONFIG_AUXILIARY_BUS' in drivers/reset that both should be 'select' as well, since this is not a user-visible symbol. Arnd
On Mon, 1 May 2023 17:06:14 +0200 Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > The debugfs.o file is only built when the fs is enabled: > > main.c:(.text+0x47c): undefined reference to `pdsc_debugfs_del_dev' > main.c:(.text+0x8dc): undefined reference to `pdsc_debugfs_add_dev' > main.c:(.exit.text+0x14): undefined reference to `pdsc_debugfs_destroy' > main.c:(.init.text+0x8): undefined reference to `pdsc_debugfs_create' > dev.c:(.text+0x988): undefined reference to `pdsc_debugfs_add_ident' > core.c:(.text+0x6b0): undefined reference to `pdsc_debugfs_del_qcq' > core.c:(.text+0x998): undefined reference to `pdsc_debugfs_add_qcq' > core.c:(.text+0xf0c): undefined reference to `pdsc_debugfs_add_viftype' > > Add dummy helper functions for these interfaces. Debugfs should wrap itself. Doesn't this work: diff --git a/drivers/net/ethernet/amd/pds_core/Makefile b/drivers/net/ethernet/amd/pds_core/Makefile index 0abc33ce826c..54d1d5b375ce 100644 --- a/drivers/net/ethernet/amd/pds_core/Makefile +++ b/drivers/net/ethernet/amd/pds_core/Makefile @@ -9,6 +9,5 @@ pds_core-y := main.o \ dev.o \ adminq.o \ core.o \ - fw.o - -pds_core-$(CONFIG_DEBUG_FS) += debugfs.o + fw.o \ + debugfs.o
On 5/1/23 3:35 PM, Jakub Kicinski wrote: > On Mon, 1 May 2023 17:06:14 +0200 Arnd Bergmann wrote: >> From: Arnd Bergmann <arnd@arndb.de> >> >> The debugfs.o file is only built when the fs is enabled: >> >> main.c:(.text+0x47c): undefined reference to `pdsc_debugfs_del_dev' >> main.c:(.text+0x8dc): undefined reference to `pdsc_debugfs_add_dev' >> main.c:(.exit.text+0x14): undefined reference to `pdsc_debugfs_destroy' >> main.c:(.init.text+0x8): undefined reference to `pdsc_debugfs_create' >> dev.c:(.text+0x988): undefined reference to `pdsc_debugfs_add_ident' >> core.c:(.text+0x6b0): undefined reference to `pdsc_debugfs_del_qcq' >> core.c:(.text+0x998): undefined reference to `pdsc_debugfs_add_qcq' >> core.c:(.text+0xf0c): undefined reference to `pdsc_debugfs_add_viftype' >> >> Add dummy helper functions for these interfaces. > > Debugfs should wrap itself. Doesn't this work: > > diff --git a/drivers/net/ethernet/amd/pds_core/Makefile b/drivers/net/ethernet/amd/pds_core/Makefile > index 0abc33ce826c..54d1d5b375ce 100644 > --- a/drivers/net/ethernet/amd/pds_core/Makefile > +++ b/drivers/net/ethernet/amd/pds_core/Makefile > @@ -9,6 +9,5 @@ pds_core-y := main.o \ > dev.o \ > adminq.o \ > core.o \ > - fw.o > - > -pds_core-$(CONFIG_DEBUG_FS) += debugfs.o > + fw.o \ > + debugfs.o Yes, that should do it, and should have been done in the rest of the change that I made after Leon suggested removing the dummy functions that I originally had there [0]. Tomorrow when I'm back from vacation I can do a couple of follow-up patches for this and for the other config tags that Simon pointed out. sln [0] https://lore.kernel.org/netdev/20230409112645.GS14869@unreal/
diff --git a/drivers/net/ethernet/amd/pds_core/core.h b/drivers/net/ethernet/amd/pds_core/core.h index e545fafc4819..2cc430403e9c 100644 --- a/drivers/net/ethernet/amd/pds_core/core.h +++ b/drivers/net/ethernet/amd/pds_core/core.h @@ -261,6 +261,7 @@ int pdsc_dl_enable_validate(struct devlink *dl, u32 id, void __iomem *pdsc_map_dbpage(struct pdsc *pdsc, int page_num); +#ifdef CONFIG_DEBUG_FS void pdsc_debugfs_create(void); void pdsc_debugfs_destroy(void); void pdsc_debugfs_add_dev(struct pdsc *pdsc); @@ -270,6 +271,17 @@ void pdsc_debugfs_add_viftype(struct pdsc *pdsc); void pdsc_debugfs_add_irqs(struct pdsc *pdsc); void pdsc_debugfs_add_qcq(struct pdsc *pdsc, struct pdsc_qcq *qcq); void pdsc_debugfs_del_qcq(struct pdsc_qcq *qcq); +#else +static inline void pdsc_debugfs_create(void) {} +static inline void pdsc_debugfs_destroy(void) {} +static inline void pdsc_debugfs_add_dev(struct pdsc *pdsc) {} +static inline void pdsc_debugfs_del_dev(struct pdsc *pdsc) {} +static inline void pdsc_debugfs_add_ident(struct pdsc *pdsc) {} +static inline void pdsc_debugfs_add_viftype(struct pdsc *pdsc) {} +static inline void pdsc_debugfs_add_irqs(struct pdsc *pdsc) {} +static inline void pdsc_debugfs_add_qcq(struct pdsc *pdsc, struct pdsc_qcq *qcq) {} +static inline void pdsc_debugfs_del_qcq(struct pdsc_qcq *qcq) {} +#endif int pdsc_err_to_errno(enum pds_core_status_code code); bool pdsc_is_fw_running(struct pdsc *pdsc);