From mboxrd@z Thu Jan 1 00:00:00 1970 From: kbuild test robot Subject: Re: [PATCH] net: cavium: Drop dependency of NET_VENDOR_CAVIUM on PCI Date: Tue, 17 Jul 2018 09:01:59 +0800 Message-ID: <20180717010159.GD10593@intel.com> References: <20180713150428.1638-1-alexander.sverdlin@nokia.com> Reply-To: internal check Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="TYecfFk8j8mZq+dy" Cc: kbuild-all@01.org, netdev@vger.kernel.org, Alexander Sverdlin , "David S. Miller" , Aleksey Makarov , Sunil Goutham , Raghu Vatsavayi , Vijaya Mohan Guvva To: Alexander Sverdlin Return-path: Received: from mga04.intel.com ([192.55.52.120]:35815 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729841AbeGQBXp (ORCPT ); Mon, 16 Jul 2018 21:23:45 -0400 Content-Disposition: inline In-Reply-To: <20180713150428.1638-1-alexander.sverdlin@nokia.com> Sender: netdev-owner@vger.kernel.org List-ID: --TYecfFk8j8mZq+dy Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Alexander, I love your patch! Yet something to improve: [auto build test ERROR on net-next/master] [also build test ERROR on v4.18-rc5 next-20180713] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Alexander-Sverdlin/net-cavium-Drop-dependency-of-NET_VENDOR_CAVIUM-on-PCI/20180716-002448 config: s390-defconfig (attached as .config) compiler: s390x-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.2.0 make.cross ARCH=s390 :::::: branch date: 15 hours ago :::::: commit date: 15 hours ago All error/warnings (new ones prefixed by >>): drivers/net/ethernet/cavium/common/cavium_ptp.c: In function 'cavium_ptp_probe': >> drivers/net/ethernet/cavium/common/cavium_ptp.c:235:8: error: implicit declaration of function 'pcim_enable_device'; did you mean 'pci_enable_device'? [-Werror=implicit-function-declaration] err = pcim_enable_device(pdev); ^~~~~~~~~~~~~~~~~~ pci_enable_device drivers/net/ethernet/cavium/common/cavium_ptp.c: At top level: >> drivers/net/ethernet/cavium/common/cavium_ptp.c:339:1: warning: data definition has no type or storage class module_pci_driver(cavium_ptp_driver); ^~~~~~~~~~~~~~~~~ >> drivers/net/ethernet/cavium/common/cavium_ptp.c:339:1: error: type defaults to 'int' in declaration of 'module_pci_driver' [-Werror=implicit-int] >> drivers/net/ethernet/cavium/common/cavium_ptp.c:339:1: warning: parameter names (without types) in function declaration drivers/net/ethernet/cavium/common/cavium_ptp.c:332:26: warning: 'cavium_ptp_driver' defined but not used [-Wunused-variable] static struct pci_driver cavium_ptp_driver = { ^~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors # https://github.com/0day-ci/linux/commit/c862aa8f427828f2c08fdc96494152690a2ec5d0 git remote add linux-review https://github.com/0day-ci/linux git remote update linux-review git checkout c862aa8f427828f2c08fdc96494152690a2ec5d0 vim +235 drivers/net/ethernet/cavium/common/cavium_ptp.c 8c56df37 Radoslaw Biernacki 2018-01-15 216 8c56df37 Radoslaw Biernacki 2018-01-15 217 static int cavium_ptp_probe(struct pci_dev *pdev, 8c56df37 Radoslaw Biernacki 2018-01-15 218 const struct pci_device_id *ent) 8c56df37 Radoslaw Biernacki 2018-01-15 219 { 8c56df37 Radoslaw Biernacki 2018-01-15 220 struct device *dev = &pdev->dev; 8c56df37 Radoslaw Biernacki 2018-01-15 221 struct cavium_ptp *clock; 8c56df37 Radoslaw Biernacki 2018-01-15 222 struct cyclecounter *cc; 8c56df37 Radoslaw Biernacki 2018-01-15 223 u64 clock_cfg; 8c56df37 Radoslaw Biernacki 2018-01-15 224 u64 clock_comp; 8c56df37 Radoslaw Biernacki 2018-01-15 225 int err; 8c56df37 Radoslaw Biernacki 2018-01-15 226 8c56df37 Radoslaw Biernacki 2018-01-15 227 clock = devm_kzalloc(dev, sizeof(*clock), GFP_KERNEL); 8c56df37 Radoslaw Biernacki 2018-01-15 228 if (!clock) { 8c56df37 Radoslaw Biernacki 2018-01-15 229 err = -ENOMEM; 8c56df37 Radoslaw Biernacki 2018-01-15 230 goto error; 8c56df37 Radoslaw Biernacki 2018-01-15 231 } 8c56df37 Radoslaw Biernacki 2018-01-15 232 8c56df37 Radoslaw Biernacki 2018-01-15 233 clock->pdev = pdev; 8c56df37 Radoslaw Biernacki 2018-01-15 234 8c56df37 Radoslaw Biernacki 2018-01-15 @235 err = pcim_enable_device(pdev); 8c56df37 Radoslaw Biernacki 2018-01-15 236 if (err) 8c56df37 Radoslaw Biernacki 2018-01-15 237 goto error_free; 8c56df37 Radoslaw Biernacki 2018-01-15 238 8c56df37 Radoslaw Biernacki 2018-01-15 239 err = pcim_iomap_regions(pdev, 1 << PCI_PTP_BAR_NO, pci_name(pdev)); 8c56df37 Radoslaw Biernacki 2018-01-15 240 if (err) 8c56df37 Radoslaw Biernacki 2018-01-15 241 goto error_free; 8c56df37 Radoslaw Biernacki 2018-01-15 242 8c56df37 Radoslaw Biernacki 2018-01-15 243 clock->reg_base = pcim_iomap_table(pdev)[PCI_PTP_BAR_NO]; 8c56df37 Radoslaw Biernacki 2018-01-15 244 8c56df37 Radoslaw Biernacki 2018-01-15 245 spin_lock_init(&clock->spin_lock); 8c56df37 Radoslaw Biernacki 2018-01-15 246 8c56df37 Radoslaw Biernacki 2018-01-15 247 cc = &clock->cycle_counter; 8c56df37 Radoslaw Biernacki 2018-01-15 248 cc->read = cavium_ptp_cc_read; 8c56df37 Radoslaw Biernacki 2018-01-15 249 cc->mask = CYCLECOUNTER_MASK(64); 8c56df37 Radoslaw Biernacki 2018-01-15 250 cc->mult = 1; 8c56df37 Radoslaw Biernacki 2018-01-15 251 cc->shift = 0; 8c56df37 Radoslaw Biernacki 2018-01-15 252 8c56df37 Radoslaw Biernacki 2018-01-15 253 timecounter_init(&clock->time_counter, &clock->cycle_counter, 8c56df37 Radoslaw Biernacki 2018-01-15 254 ktime_to_ns(ktime_get_real())); 8c56df37 Radoslaw Biernacki 2018-01-15 255 8c56df37 Radoslaw Biernacki 2018-01-15 256 clock->clock_rate = ptp_cavium_clock_get(); 8c56df37 Radoslaw Biernacki 2018-01-15 257 8c56df37 Radoslaw Biernacki 2018-01-15 258 clock->ptp_info = (struct ptp_clock_info) { 8c56df37 Radoslaw Biernacki 2018-01-15 259 .owner = THIS_MODULE, 8c56df37 Radoslaw Biernacki 2018-01-15 260 .name = "ThunderX PTP", 8c56df37 Radoslaw Biernacki 2018-01-15 261 .max_adj = 1000000000ull, 8c56df37 Radoslaw Biernacki 2018-01-15 262 .n_ext_ts = 0, 8c56df37 Radoslaw Biernacki 2018-01-15 263 .n_pins = 0, 8c56df37 Radoslaw Biernacki 2018-01-15 264 .pps = 0, 8c56df37 Radoslaw Biernacki 2018-01-15 265 .adjfine = cavium_ptp_adjfine, 8c56df37 Radoslaw Biernacki 2018-01-15 266 .adjtime = cavium_ptp_adjtime, 8c56df37 Radoslaw Biernacki 2018-01-15 267 .gettime64 = cavium_ptp_gettime, 8c56df37 Radoslaw Biernacki 2018-01-15 268 .settime64 = cavium_ptp_settime, 8c56df37 Radoslaw Biernacki 2018-01-15 269 .enable = cavium_ptp_enable, 8c56df37 Radoslaw Biernacki 2018-01-15 270 }; 8c56df37 Radoslaw Biernacki 2018-01-15 271 8c56df37 Radoslaw Biernacki 2018-01-15 272 clock_cfg = readq(clock->reg_base + PTP_CLOCK_CFG); 8c56df37 Radoslaw Biernacki 2018-01-15 273 clock_cfg |= PTP_CLOCK_CFG_PTP_EN; 8c56df37 Radoslaw Biernacki 2018-01-15 274 writeq(clock_cfg, clock->reg_base + PTP_CLOCK_CFG); 8c56df37 Radoslaw Biernacki 2018-01-15 275 8c56df37 Radoslaw Biernacki 2018-01-15 276 clock_comp = ((u64)1000000000ull << 32) / clock->clock_rate; 8c56df37 Radoslaw Biernacki 2018-01-15 277 writeq(clock_comp, clock->reg_base + PTP_CLOCK_COMP); 8c56df37 Radoslaw Biernacki 2018-01-15 278 8c56df37 Radoslaw Biernacki 2018-01-15 279 clock->ptp_clock = ptp_clock_register(&clock->ptp_info, dev); 8c56df37 Radoslaw Biernacki 2018-01-15 280 if (!clock->ptp_clock) { 8c56df37 Radoslaw Biernacki 2018-01-15 281 err = -ENODEV; 8c56df37 Radoslaw Biernacki 2018-01-15 282 goto error_stop; 8c56df37 Radoslaw Biernacki 2018-01-15 283 } 8c56df37 Radoslaw Biernacki 2018-01-15 284 if (IS_ERR(clock->ptp_clock)) { 8c56df37 Radoslaw Biernacki 2018-01-15 285 err = PTR_ERR(clock->ptp_clock); 8c56df37 Radoslaw Biernacki 2018-01-15 286 goto error_stop; 8c56df37 Radoslaw Biernacki 2018-01-15 287 } 8c56df37 Radoslaw Biernacki 2018-01-15 288 8c56df37 Radoslaw Biernacki 2018-01-15 289 pci_set_drvdata(pdev, clock); 8c56df37 Radoslaw Biernacki 2018-01-15 290 return 0; 8c56df37 Radoslaw Biernacki 2018-01-15 291 8c56df37 Radoslaw Biernacki 2018-01-15 292 error_stop: 8c56df37 Radoslaw Biernacki 2018-01-15 293 clock_cfg = readq(clock->reg_base + PTP_CLOCK_CFG); 8c56df37 Radoslaw Biernacki 2018-01-15 294 clock_cfg &= ~PTP_CLOCK_CFG_PTP_EN; 8c56df37 Radoslaw Biernacki 2018-01-15 295 writeq(clock_cfg, clock->reg_base + PTP_CLOCK_CFG); 8c56df37 Radoslaw Biernacki 2018-01-15 296 pcim_iounmap_regions(pdev, 1 << PCI_PTP_BAR_NO); 8c56df37 Radoslaw Biernacki 2018-01-15 297 8c56df37 Radoslaw Biernacki 2018-01-15 298 error_free: 8c56df37 Radoslaw Biernacki 2018-01-15 299 devm_kfree(dev, clock); 8c56df37 Radoslaw Biernacki 2018-01-15 300 8c56df37 Radoslaw Biernacki 2018-01-15 301 error: 8c56df37 Radoslaw Biernacki 2018-01-15 302 /* For `cavium_ptp_get()` we need to differentiate between the case 8c56df37 Radoslaw Biernacki 2018-01-15 303 * when the core has not tried to probe this device and the case when 8c56df37 Radoslaw Biernacki 2018-01-15 304 * the probe failed. In the later case we pretend that the 8c56df37 Radoslaw Biernacki 2018-01-15 305 * initialization was successful and keep the error in 8c56df37 Radoslaw Biernacki 2018-01-15 306 * `dev->driver_data`. 8c56df37 Radoslaw Biernacki 2018-01-15 307 */ 8c56df37 Radoslaw Biernacki 2018-01-15 308 pci_set_drvdata(pdev, ERR_PTR(err)); 8c56df37 Radoslaw Biernacki 2018-01-15 309 return 0; 8c56df37 Radoslaw Biernacki 2018-01-15 310 } 8c56df37 Radoslaw Biernacki 2018-01-15 311 8c56df37 Radoslaw Biernacki 2018-01-15 312 static void cavium_ptp_remove(struct pci_dev *pdev) 8c56df37 Radoslaw Biernacki 2018-01-15 313 { 8c56df37 Radoslaw Biernacki 2018-01-15 314 struct cavium_ptp *clock = pci_get_drvdata(pdev); 8c56df37 Radoslaw Biernacki 2018-01-15 315 u64 clock_cfg; 8c56df37 Radoslaw Biernacki 2018-01-15 316 8c56df37 Radoslaw Biernacki 2018-01-15 317 if (IS_ERR_OR_NULL(clock)) 8c56df37 Radoslaw Biernacki 2018-01-15 318 return; 8c56df37 Radoslaw Biernacki 2018-01-15 319 8c56df37 Radoslaw Biernacki 2018-01-15 320 ptp_clock_unregister(clock->ptp_clock); 8c56df37 Radoslaw Biernacki 2018-01-15 321 8c56df37 Radoslaw Biernacki 2018-01-15 322 clock_cfg = readq(clock->reg_base + PTP_CLOCK_CFG); 8c56df37 Radoslaw Biernacki 2018-01-15 323 clock_cfg &= ~PTP_CLOCK_CFG_PTP_EN; 8c56df37 Radoslaw Biernacki 2018-01-15 324 writeq(clock_cfg, clock->reg_base + PTP_CLOCK_CFG); 8c56df37 Radoslaw Biernacki 2018-01-15 325 } 8c56df37 Radoslaw Biernacki 2018-01-15 326 8c56df37 Radoslaw Biernacki 2018-01-15 327 static const struct pci_device_id cavium_ptp_id_table[] = { 8c56df37 Radoslaw Biernacki 2018-01-15 328 { PCI_DEVICE(PCI_VENDOR_ID_CAVIUM, PCI_DEVICE_ID_CAVIUM_PTP) }, 8c56df37 Radoslaw Biernacki 2018-01-15 329 { 0, } 8c56df37 Radoslaw Biernacki 2018-01-15 330 }; 8c56df37 Radoslaw Biernacki 2018-01-15 331 8c56df37 Radoslaw Biernacki 2018-01-15 332 static struct pci_driver cavium_ptp_driver = { 8c56df37 Radoslaw Biernacki 2018-01-15 333 .name = DRV_NAME, 8c56df37 Radoslaw Biernacki 2018-01-15 334 .id_table = cavium_ptp_id_table, 8c56df37 Radoslaw Biernacki 2018-01-15 335 .probe = cavium_ptp_probe, 8c56df37 Radoslaw Biernacki 2018-01-15 336 .remove = cavium_ptp_remove, 8c56df37 Radoslaw Biernacki 2018-01-15 337 }; 8c56df37 Radoslaw Biernacki 2018-01-15 338 75498aa1 Wei Yongjun 2018-03-28 @339 module_pci_driver(cavium_ptp_driver); 8c56df37 Radoslaw Biernacki 2018-01-15 340 :::::: The code at line 235 was first introduced by commit :::::: 8c56df372bc1371504bf3cc29fbb3c09967cafff net: add support for Cavium PTP coprocessor :::::: TO: Radoslaw Biernacki :::::: CC: David S. Miller --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --TYecfFk8j8mZq+dy Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --TYecfFk8j8mZq+dy--