| From 9bb966df1d03e27acd0c71167a099f05e5d868b1 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 27 Sep 2021 16:13:02 +0200 |
| Subject: net: ks8851: fix link error |
| |
| From: Arnd Bergmann <arnd@arndb.de> |
| |
| [ Upstream commit 51bb08dd04a05035a64504faa47651d36b0f3125 ] |
| |
| An object file cannot be built for both loadable module and built-in |
| use at the same time: |
| |
| arm-linux-gnueabi-ld: drivers/net/ethernet/micrel/ks8851_common.o: in function `ks8851_probe_common': |
| ks8851_common.c:(.text+0xf80): undefined reference to `__this_module' |
| |
| Change the ks8851_common code to be a standalone module instead, |
| and use Makefile logic to ensure this is built-in if at least one |
| of its two users is. |
| |
| Fixes: 797047f875b5 ("net: ks8851: Implement Parallel bus operations") |
| Link: https://lore.kernel.org/netdev/20210125121937.3900988-1-arnd@kernel.org/ |
| Reviewed-by: Andrew Lunn <andrew@lunn.ch> |
| Acked-by: Marek Vasut <marex@denx.de> |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/micrel/Makefile | 6 ++---- |
| drivers/net/ethernet/micrel/ks8851_common.c | 8 ++++++++ |
| 2 files changed, 10 insertions(+), 4 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/micrel/Makefile b/drivers/net/ethernet/micrel/Makefile |
| index 5cc00d22c708..6ecc4eb30e74 100644 |
| --- a/drivers/net/ethernet/micrel/Makefile |
| +++ b/drivers/net/ethernet/micrel/Makefile |
| @@ -4,8 +4,6 @@ |
| # |
| |
| obj-$(CONFIG_KS8842) += ks8842.o |
| -obj-$(CONFIG_KS8851) += ks8851.o |
| -ks8851-objs = ks8851_common.o ks8851_spi.o |
| -obj-$(CONFIG_KS8851_MLL) += ks8851_mll.o |
| -ks8851_mll-objs = ks8851_common.o ks8851_par.o |
| +obj-$(CONFIG_KS8851) += ks8851_common.o ks8851_spi.o |
| +obj-$(CONFIG_KS8851_MLL) += ks8851_common.o ks8851_par.o |
| obj-$(CONFIG_KSZ884X_PCI) += ksz884x.o |
| diff --git a/drivers/net/ethernet/micrel/ks8851_common.c b/drivers/net/ethernet/micrel/ks8851_common.c |
| index d65872172229..f74eae8eed02 100644 |
| --- a/drivers/net/ethernet/micrel/ks8851_common.c |
| +++ b/drivers/net/ethernet/micrel/ks8851_common.c |
| @@ -1031,6 +1031,7 @@ int ks8851_suspend(struct device *dev) |
| |
| return 0; |
| } |
| +EXPORT_SYMBOL_GPL(ks8851_suspend); |
| |
| int ks8851_resume(struct device *dev) |
| { |
| @@ -1044,6 +1045,7 @@ int ks8851_resume(struct device *dev) |
| |
| return 0; |
| } |
| +EXPORT_SYMBOL_GPL(ks8851_resume); |
| #endif |
| |
| int ks8851_probe_common(struct net_device *netdev, struct device *dev, |
| @@ -1175,6 +1177,7 @@ int ks8851_probe_common(struct net_device *netdev, struct device *dev, |
| err_reg_io: |
| return ret; |
| } |
| +EXPORT_SYMBOL_GPL(ks8851_probe_common); |
| |
| int ks8851_remove_common(struct device *dev) |
| { |
| @@ -1191,3 +1194,8 @@ int ks8851_remove_common(struct device *dev) |
| |
| return 0; |
| } |
| +EXPORT_SYMBOL_GPL(ks8851_remove_common); |
| + |
| +MODULE_DESCRIPTION("KS8851 Network driver"); |
| +MODULE_AUTHOR("Ben Dooks <ben@simtec.co.uk>"); |
| +MODULE_LICENSE("GPL"); |
| -- |
| 2.33.0 |
| |