Messages in this thread | | | Subject | Re: drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c:96: undefined reference to `thermal_zone_device_register' | From | Randy Dunlap <> | Date | Thu, 8 Nov 2018 16:46:52 -0800 |
| |
[adding netdev + maintainers]
On 11/7/18 11:08 PM, kbuild test robot wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master > head: 85758777c2a227fd1541b6dd122a08ab79c347ce > commit: e70a57fa59bb7fefe063780a49e063d0d0f61863 cxgb4: fix thermal configuration dependencies > date: 4 weeks ago > config: x86_64-randconfig-s0-11081213 (attached as .config) > compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026 > reproduce: > git checkout e70a57fa59bb7fefe063780a49e063d0d0f61863 > # save the attached .config to linux build tree > make ARCH=x86_64 > > All errors (new ones prefixed by >>): > > drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.o: In function `cxgb4_thermal_init': >>> drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c:96: undefined reference to `thermal_zone_device_register' > drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.o: In function `cxgb4_thermal_remove': >>> drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c:112: undefined reference to `thermal_zone_device_unregister' >
Hi,
There was a Kconfig WARNING (clue!) before the build errors:
WARNING: unmet direct dependencies detected for CHELSIO_T4 Depends on [m]: NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_CHELSIO [=y] && PCI [=y] && (IPV6 [=n] || IPV6 [=n]=n) && (THERMAL [=m] || !THERMAL [=m]) Selected by [y]: - SCSI_CXGB4_ISCSI [=y] && SCSI_LOWLEVEL [=y] && SCSI [=y] && PCI [=y] && INET [=y] && (IPV6 [=n] || IPV6 [=n]=n)
That says that the problem is with CONFIG_THERMAL=m while CONFIG_CHELSIO_T4=y. This is caused by drivers/scsi/cxgbi/cxgb4i/Kconfig and its use of "select" instead of "depends on":
config SCSI_CXGB4_ISCSI tristate "Chelsio T4 iSCSI support" depends on PCI && INET && (IPV6 || IPV6=n) select NETDEVICES select ETHERNET select NET_VENDOR_CHELSIO select CHELSIO_T4 select CHELSIO_LIB select SCSI_ISCSI_ATTRS ---help--- This driver supports iSCSI offload for the Chelsio T4 devices.
> vim +96 drivers/net/ethernet/chelsio/cxgb4/cxgb4_thermal.c > > b1871915 Ganesh Goudar 2018-10-09 72 > b1871915 Ganesh Goudar 2018-10-09 73 int cxgb4_thermal_init(struct adapter *adap) > b1871915 Ganesh Goudar 2018-10-09 74 { > b1871915 Ganesh Goudar 2018-10-09 75 struct ch_thermal *ch_thermal = &adap->ch_thermal; > b1871915 Ganesh Goudar 2018-10-09 76 int num_trip = CXGB4_NUM_TRIPS; > b1871915 Ganesh Goudar 2018-10-09 77 u32 param, val; > b1871915 Ganesh Goudar 2018-10-09 78 int ret; > b1871915 Ganesh Goudar 2018-10-09 79 > b1871915 Ganesh Goudar 2018-10-09 80 /* on older firmwares we may not get the trip temperature, > b1871915 Ganesh Goudar 2018-10-09 81 * set the num of trips to 0. > b1871915 Ganesh Goudar 2018-10-09 82 */ > b1871915 Ganesh Goudar 2018-10-09 83 param = (FW_PARAMS_MNEM_V(FW_PARAMS_MNEM_DEV) | > b1871915 Ganesh Goudar 2018-10-09 84 FW_PARAMS_PARAM_X_V(FW_PARAMS_PARAM_DEV_DIAG) | > b1871915 Ganesh Goudar 2018-10-09 85 FW_PARAMS_PARAM_Y_V(FW_PARAM_DEV_DIAG_MAXTMPTHRESH)); > b1871915 Ganesh Goudar 2018-10-09 86 > b1871915 Ganesh Goudar 2018-10-09 87 ret = t4_query_params(adap, adap->mbox, adap->pf, 0, 1, > b1871915 Ganesh Goudar 2018-10-09 88 ¶m, &val); > b1871915 Ganesh Goudar 2018-10-09 89 if (ret < 0) { > b1871915 Ganesh Goudar 2018-10-09 90 num_trip = 0; /* could not get trip temperature */ > b1871915 Ganesh Goudar 2018-10-09 91 } else { > b1871915 Ganesh Goudar 2018-10-09 92 ch_thermal->trip_temp = val * 1000; > b1871915 Ganesh Goudar 2018-10-09 93 ch_thermal->trip_type = THERMAL_TRIP_CRITICAL; > b1871915 Ganesh Goudar 2018-10-09 94 } > b1871915 Ganesh Goudar 2018-10-09 95 > b1871915 Ganesh Goudar 2018-10-09 @96 ch_thermal->tzdev = thermal_zone_device_register("cxgb4", num_trip, > b1871915 Ganesh Goudar 2018-10-09 97 0, adap, > b1871915 Ganesh Goudar 2018-10-09 98 &cxgb4_thermal_ops, > b1871915 Ganesh Goudar 2018-10-09 99 NULL, 0, 0); > b1871915 Ganesh Goudar 2018-10-09 100 if (IS_ERR(ch_thermal->tzdev)) { > b1871915 Ganesh Goudar 2018-10-09 101 ret = PTR_ERR(ch_thermal->tzdev); > b1871915 Ganesh Goudar 2018-10-09 102 dev_err(adap->pdev_dev, "Failed to register thermal zone\n"); > b1871915 Ganesh Goudar 2018-10-09 103 ch_thermal->tzdev = NULL; > b1871915 Ganesh Goudar 2018-10-09 104 return ret; > b1871915 Ganesh Goudar 2018-10-09 105 } > b1871915 Ganesh Goudar 2018-10-09 106 return 0; > b1871915 Ganesh Goudar 2018-10-09 107 } > b1871915 Ganesh Goudar 2018-10-09 108 > b1871915 Ganesh Goudar 2018-10-09 109 int cxgb4_thermal_remove(struct adapter *adap) > b1871915 Ganesh Goudar 2018-10-09 110 { > b1871915 Ganesh Goudar 2018-10-09 111 if (adap->ch_thermal.tzdev) > b1871915 Ganesh Goudar 2018-10-09 @112 thermal_zone_device_unregister(adap->ch_thermal.tzdev); > > :::::: The code at line 96 was first introduced by commit > :::::: b187191577629b5358acf4e234809ee8d441ceb4 cxgb4: Add thermal zone support > > :::::: TO: Ganesh Goudar <ganeshgr@chelsio.com> > :::::: CC: David S. Miller <davem@davemloft.net> > > --- > 0-DAY kernel test infrastructure Open Source Technology Center > https://lists.01.org/pipermail/kbuild-all Intel Corporation >
ciao. -- ~Randy
| |