Subject: linux-next: build failure after merge of the thermal-soc tree

From: Stephen Rothwell <[email-masked]>
Date: Mon, 13 May 2019 11:02:44 +1000

Hi all,

After merging the thermal-soc tree, today's linux-next build (powerpc
ppc64_defconfig) failed like this:

ld: drivers/infiniband/hw/cxgb4/cm.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x23f0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/cm.o:(.opd+0x2e8): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/infiniband/hw/cxgb4/provider.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0xf90): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/provider.o:(.opd+0x198): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/infiniband/hw/cxgb4/mem.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x11c0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/mem.o:(.opd+0xa8): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/infiniband/hw/cxgb4/cq.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x1750): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/cq.o:(.opd+0x90): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/infiniband/hw/cxgb4/qp.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x1550): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/qp.o:(.opd+0x108): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/infiniband/hw/cxgb4/resource.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/resource.o:(.opd+0x0): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/infiniband/hw/cxgb4/ev.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/ev.o:(.opd+0x18): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/infiniband/hw/cxgb4/id_table.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/id_table.o:(.opd+0x0): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/infiniband/hw/cxgb4/restrack.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x1590): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.text+0x28c0): first defined here
ld: drivers/infiniband/hw/cxgb4/restrack.o:(.opd+0xc0): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/infiniband/hw/cxgb4/device.o:(.opd+0x198): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/l2t.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x1220): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/l2t.o:(.opd+0x120): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/smt.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x4d0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/smt.o:(.opd+0x30): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/t4_hw.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x21f0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/t4_hw.o:(.opd+0x198): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/sge.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x3a60): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/sge.o:(.opd+0x270): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/clip_tbl.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x990): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/clip_tbl.o:(.opd+0x90): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x2f80): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_ethtool.o:(.opd+0x390): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x1f60): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_uld.o:(.opd+0x138): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/srq.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x1b0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/srq.o:(.opd+0x18): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/sched.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x250): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/sched.o:(.opd+0x18): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0xf10): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.o:(.opd+0xc0): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x430): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_u32.o:(.opd+0x198): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x570): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_ptp.o:(.opd+0x78): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x9a0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_tc_flower.o:(.opd+0x78): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0xb00): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_cudbg.o:(.opd+0x30): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cudbg_common.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cudbg_common.o:(.opd+0x0): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x1ae0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cudbg_lib.o:(.opd+0xd8): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cudbg_zlib.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0x0): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cudbg_zlib.o:(.opd+0x0): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.o: in function `.devm_thermal_of_cooling_device_register':
(.text+0xed00): multiple definition of `.devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.text+0x79a0): first defined here
ld: drivers/net/ethernet/chelsio/cxgb4/cxgb4_debugfs.o:(.opd+0x8d0): multiple definition of `devm_thermal_of_cooling_device_register'; drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.o:(.opd+0x708): first defined here

Caused by commit

  4e211e068ae9 ("thermal: Introduce devm_thermal_of_cooling_device_register")

I applied the following patch for today:

From: Stephen Rothwell <[email-masked]>
Date: Mon, 13 May 2019 10:55:00 +1000
Subject: [PATCH] thermal: use "static inline" for stub function

Fixes: 4e211e068ae9 ("thermal: Introduce devm_thermal_of_cooling_device_register")
Signed-off-by: Stephen Rothwell <[email-masked]>
---
 include/linux/thermal.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/thermal.h b/include/linux/thermal.h
index 6f78fa9238da..15a4ca5d7099 100644
--- a/include/linux/thermal.h
+++ b/include/linux/thermal.h
@@ -508,7 +508,7 @@ static inline struct thermal_cooling_device *
 thermal_of_cooling_device_register(struct device_node *np,
 	char *type, void *devdata, const struct thermal_cooling_device_ops *ops)
 { return ERR_PTR(-ENODEV); }
-struct thermal_cooling_device *
+static inline struct thermal_cooling_device *
 devm_thermal_of_cooling_device_register(struct device *dev,
 				struct device_node *np,
 				char *type, void *devdata,
-- 
2.20.1

-- 
Cheers,
Stephen Rothwell