Re: [PATCH 1/5] devres: Move managed io function declarations into device.h

From: kbuild test robot
Date: Mon Jan 22 2018 - 04:30:21 EST


Hi Ladislav,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on next-20180119]
[also build test ERROR on v4.15-rc9]
[cannot apply to linus/master pci/next l2-mtd-boris/nand/next v4.15-rc8 v4.15-rc7 v4.15-rc6]
[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/Ladislav-Michl/Add-managed-ioremap-function-for-shared-resources/20180122-164512
config: i386-tinyconfig (attached as .config)
compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All errors (new ones prefixed by >>):

In file included from include/linux/device.h:23:0,
from drivers/base/dd.c:19:
include/linux/pinctrl/devinfo.h:48:44: warning: 'struct device' declared inside parameter list will not be visible outside of this definition or declaration
static inline int pinctrl_bind_pins(struct device *dev)
^~~~~~
include/linux/pinctrl/devinfo.h:53:44: warning: 'struct device' declared inside parameter list will not be visible outside of this definition or declaration
static inline int pinctrl_init_done(struct device *dev)
^~~~~~
drivers/base/dd.c: In function 'really_probe':
>> drivers/base/dd.c:394:26: error: passing argument 1 of 'pinctrl_bind_pins' from incompatible pointer type [-Werror=incompatible-pointer-types]
ret = pinctrl_bind_pins(dev);
^~~
In file included from include/linux/device.h:23:0,
from drivers/base/dd.c:19:
include/linux/pinctrl/devinfo.h:48:19: note: expected 'struct device *' but argument is of type 'struct device *'
static inline int pinctrl_bind_pins(struct device *dev)
^~~~~~~~~~~~~~~~~
>> drivers/base/dd.c:451:20: error: passing argument 1 of 'pinctrl_init_done' from incompatible pointer type [-Werror=incompatible-pointer-types]
pinctrl_init_done(dev);
^~~
In file included from include/linux/device.h:23:0,
from drivers/base/dd.c:19:
include/linux/pinctrl/devinfo.h:53:19: note: expected 'struct device *' but argument is of type 'struct device *'
static inline int pinctrl_init_done(struct device *dev)
^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors

vim +/pinctrl_bind_pins +394 drivers/base/dd.c

0ff26c662 Adrian Hunter 2017-11-02 360
21c7f30b1 Cornelia Huck 2007-02-05 361 static int really_probe(struct device *dev, struct device_driver *drv)
07e4a3e27 Patrick Mochel 2005-03-21 362 {
013c074f8 Strashko, Grygorii 2015-11-10 363 int ret = -EPROBE_DEFER;
58b116bce Grant Likely 2014-04-29 364 int local_trigger_count = atomic_read(&deferred_trigger_count);
c5f062748 Rob Herring 2016-10-11 365 bool test_remove = IS_ENABLED(CONFIG_DEBUG_TEST_DRIVER_REMOVE) &&
c5f062748 Rob Herring 2016-10-11 366 !drv->suppress_bind_attrs;
07e4a3e27 Patrick Mochel 2005-03-21 367
013c074f8 Strashko, Grygorii 2015-11-10 368 if (defer_all_probes) {
013c074f8 Strashko, Grygorii 2015-11-10 369 /*
013c074f8 Strashko, Grygorii 2015-11-10 370 * Value of defer_all_probes can be set only by
013c074f8 Strashko, Grygorii 2015-11-10 371 * device_defer_all_probes_enable() which, in turn, will call
013c074f8 Strashko, Grygorii 2015-11-10 372 * wait_for_device_probe() right after that to avoid any races.
013c074f8 Strashko, Grygorii 2015-11-10 373 */
013c074f8 Strashko, Grygorii 2015-11-10 374 dev_dbg(dev, "Driver %s force probe deferral\n", drv->name);
013c074f8 Strashko, Grygorii 2015-11-10 375 driver_deferred_probe_add(dev);
013c074f8 Strashko, Grygorii 2015-11-10 376 return ret;
013c074f8 Strashko, Grygorii 2015-11-10 377 }
013c074f8 Strashko, Grygorii 2015-11-10 378
9ed989537 Rafael J. Wysocki 2016-10-30 379 ret = device_links_check_suppliers(dev);
0ff26c662 Adrian Hunter 2017-11-02 380 if (ret == -EPROBE_DEFER)
0ff26c662 Adrian Hunter 2017-11-02 381 driver_deferred_probe_add_trigger(dev, local_trigger_count);
9ed989537 Rafael J. Wysocki 2016-10-30 382 if (ret)
9ed989537 Rafael J. Wysocki 2016-10-30 383 return ret;
9ed989537 Rafael J. Wysocki 2016-10-30 384
d779249ed Greg Kroah-Hartman 2006-07-18 385 atomic_inc(&probe_count);
7dc72b284 Greg Kroah-Hartman 2007-11-28 386 pr_debug("bus: '%s': %s: probing driver %s with device %s\n",
1e0b2cf93 Kay Sievers 2008-10-30 387 drv->bus->name, __func__, drv->name, dev_name(dev));
9ac7849e3 Tejun Heo 2007-01-20 388 WARN_ON(!list_empty(&dev->devres_head));
07e4a3e27 Patrick Mochel 2005-03-21 389
bea5b158f Rob Herring 2016-08-11 390 re_probe:
07e4a3e27 Patrick Mochel 2005-03-21 391 dev->driver = drv;
ab78029ec Linus Walleij 2013-01-22 392
ab78029ec Linus Walleij 2013-01-22 393 /* If using pinctrl, bind pins now before probing */
ab78029ec Linus Walleij 2013-01-22 @394 ret = pinctrl_bind_pins(dev);
ab78029ec Linus Walleij 2013-01-22 395 if (ret)
14b6257a5 Andy Shevchenko 2015-12-04 396 goto pinctrl_bind_failed;
ab78029ec Linus Walleij 2013-01-22 397
09515ef5d Sricharan R 2017-04-10 398 ret = dma_configure(dev);
09515ef5d Sricharan R 2017-04-10 399 if (ret)
09515ef5d Sricharan R 2017-04-10 400 goto dma_failed;
09515ef5d Sricharan R 2017-04-10 401
1901fb260 Kay Sievers 2006-10-07 402 if (driver_sysfs_add(dev)) {
1901fb260 Kay Sievers 2006-10-07 403 printk(KERN_ERR "%s: driver_sysfs_add(%s) failed\n",
1e0b2cf93 Kay Sievers 2008-10-30 404 __func__, dev_name(dev));
1901fb260 Kay Sievers 2006-10-07 405 goto probe_failed;
1901fb260 Kay Sievers 2006-10-07 406 }
1901fb260 Kay Sievers 2006-10-07 407
e90d55327 Rafael J. Wysocki 2015-03-20 408 if (dev->pm_domain && dev->pm_domain->activate) {
e90d55327 Rafael J. Wysocki 2015-03-20 409 ret = dev->pm_domain->activate(dev);
e90d55327 Rafael J. Wysocki 2015-03-20 410 if (ret)
e90d55327 Rafael J. Wysocki 2015-03-20 411 goto probe_failed;
e90d55327 Rafael J. Wysocki 2015-03-20 412 }
e90d55327 Rafael J. Wysocki 2015-03-20 413
52cdbdd49 Grygorii Strashko 2015-07-27 414 /*
52cdbdd49 Grygorii Strashko 2015-07-27 415 * Ensure devices are listed in devices_kset in correct order
52cdbdd49 Grygorii Strashko 2015-07-27 416 * It's important to move Dev to the end of devices_kset before
52cdbdd49 Grygorii Strashko 2015-07-27 417 * calling .probe, because it could be recursive and parent Dev
52cdbdd49 Grygorii Strashko 2015-07-27 418 * should always go first
52cdbdd49 Grygorii Strashko 2015-07-27 419 */
52cdbdd49 Grygorii Strashko 2015-07-27 420 devices_kset_move_last(dev);
52cdbdd49 Grygorii Strashko 2015-07-27 421
594c8281f Russell King 2006-01-05 422 if (dev->bus->probe) {
594c8281f Russell King 2006-01-05 423 ret = dev->bus->probe(dev);
1901fb260 Kay Sievers 2006-10-07 424 if (ret)
d779249ed Greg Kroah-Hartman 2006-07-18 425 goto probe_failed;
594c8281f Russell King 2006-01-05 426 } else if (drv->probe) {
0d3e5a2e3 Patrick Mochel 2005-04-05 427 ret = drv->probe(dev);
1901fb260 Kay Sievers 2006-10-07 428 if (ret)
d779249ed Greg Kroah-Hartman 2006-07-18 429 goto probe_failed;
07e4a3e27 Patrick Mochel 2005-03-21 430 }
1901fb260 Kay Sievers 2006-10-07 431
bea5b158f Rob Herring 2016-08-11 432 if (test_remove) {
bea5b158f Rob Herring 2016-08-11 433 test_remove = false;
bea5b158f Rob Herring 2016-08-11 434
bdacd1b42 Rob Herring 2016-10-11 435 if (dev->bus->remove)
bea5b158f Rob Herring 2016-08-11 436 dev->bus->remove(dev);
bea5b158f Rob Herring 2016-08-11 437 else if (drv->remove)
bea5b158f Rob Herring 2016-08-11 438 drv->remove(dev);
bea5b158f Rob Herring 2016-08-11 439
bea5b158f Rob Herring 2016-08-11 440 devres_release_all(dev);
bea5b158f Rob Herring 2016-08-11 441 driver_sysfs_remove(dev);
bea5b158f Rob Herring 2016-08-11 442 dev->driver = NULL;
bea5b158f Rob Herring 2016-08-11 443 dev_set_drvdata(dev, NULL);
bea5b158f Rob Herring 2016-08-11 444 if (dev->pm_domain && dev->pm_domain->dismiss)
bea5b158f Rob Herring 2016-08-11 445 dev->pm_domain->dismiss(dev);
bea5b158f Rob Herring 2016-08-11 446 pm_runtime_reinit(dev);
bea5b158f Rob Herring 2016-08-11 447
bea5b158f Rob Herring 2016-08-11 448 goto re_probe;
bea5b158f Rob Herring 2016-08-11 449 }
bea5b158f Rob Herring 2016-08-11 450
ef0eebc05 Douglas Anderson 2015-10-20 @451 pinctrl_init_done(dev);
ef0eebc05 Douglas Anderson 2015-10-20 452
e90d55327 Rafael J. Wysocki 2015-03-20 453 if (dev->pm_domain && dev->pm_domain->sync)
e90d55327 Rafael J. Wysocki 2015-03-20 454 dev->pm_domain->sync(dev);
e90d55327 Rafael J. Wysocki 2015-03-20 455
1901fb260 Kay Sievers 2006-10-07 456 driver_bound(dev);
0d3e5a2e3 Patrick Mochel 2005-04-05 457 ret = 1;
7dc72b284 Greg Kroah-Hartman 2007-11-28 458 pr_debug("bus: '%s': %s: bound device %s to driver %s\n",
1e0b2cf93 Kay Sievers 2008-10-30 459 drv->bus->name, __func__, dev_name(dev), drv->name);
d779249ed Greg Kroah-Hartman 2006-07-18 460 goto done;
2287c322b Patrick Mochel 2005-03-24 461
d779249ed Greg Kroah-Hartman 2006-07-18 462 probe_failed:
09515ef5d Sricharan R 2017-04-10 463 dma_deconfigure(dev);
09515ef5d Sricharan R 2017-04-10 464 dma_failed:
14b6257a5 Andy Shevchenko 2015-12-04 465 if (dev->bus)
14b6257a5 Andy Shevchenko 2015-12-04 466 blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
14b6257a5 Andy Shevchenko 2015-12-04 467 BUS_NOTIFY_DRIVER_NOT_BOUND, dev);
14b6257a5 Andy Shevchenko 2015-12-04 468 pinctrl_bind_failed:
9ed989537 Rafael J. Wysocki 2016-10-30 469 device_links_no_driver(dev);
9ac7849e3 Tejun Heo 2007-01-20 470 devres_release_all(dev);
1901fb260 Kay Sievers 2006-10-07 471 driver_sysfs_remove(dev);
1901fb260 Kay Sievers 2006-10-07 472 dev->driver = NULL;
0998d0631 Hans de Goede 2012-05-23 473 dev_set_drvdata(dev, NULL);
e90d55327 Rafael J. Wysocki 2015-03-20 474 if (dev->pm_domain && dev->pm_domain->dismiss)
e90d55327 Rafael J. Wysocki 2015-03-20 475 dev->pm_domain->dismiss(dev);
5de85b9d5 Ulf Hansson 2015-11-18 476 pm_runtime_reinit(dev);
08810a411 Rafael J. Wysocki 2017-10-25 477 dev_pm_set_driver_flags(dev, 0);
1901fb260 Kay Sievers 2006-10-07 478
bb2b40754 Sergei Shtylyov 2015-01-17 479 switch (ret) {
bb2b40754 Sergei Shtylyov 2015-01-17 480 case -EPROBE_DEFER:
d1c3414c2 Grant Likely 2012-03-05 481 /* Driver requested deferred probing */
13fcffbbd Mark Brown 2015-03-10 482 dev_dbg(dev, "Driver %s requests probe deferral\n", drv->name);
0ff26c662 Adrian Hunter 2017-11-02 483 driver_deferred_probe_add_trigger(dev, local_trigger_count);
bb2b40754 Sergei Shtylyov 2015-01-17 484 break;
bb2b40754 Sergei Shtylyov 2015-01-17 485 case -ENODEV:
bb2b40754 Sergei Shtylyov 2015-01-17 486 case -ENXIO:
bb2b40754 Sergei Shtylyov 2015-01-17 487 pr_debug("%s: probe of %s rejects match %d\n",
bb2b40754 Sergei Shtylyov 2015-01-17 488 drv->name, dev_name(dev), ret);
bb2b40754 Sergei Shtylyov 2015-01-17 489 break;
bb2b40754 Sergei Shtylyov 2015-01-17 490 default:
2287c322b Patrick Mochel 2005-03-24 491 /* driver matched but the probe failed */
2287c322b Patrick Mochel 2005-03-24 492 printk(KERN_WARNING
2287c322b Patrick Mochel 2005-03-24 493 "%s: probe of %s failed with error %d\n",
1e0b2cf93 Kay Sievers 2008-10-30 494 drv->name, dev_name(dev), ret);
2287c322b Patrick Mochel 2005-03-24 495 }
c578abbc2 Cornelia Huck 2006-11-27 496 /*
c578abbc2 Cornelia Huck 2006-11-27 497 * Ignore errors returned by ->probe so that the next driver can try
c578abbc2 Cornelia Huck 2006-11-27 498 * its luck.
c578abbc2 Cornelia Huck 2006-11-27 499 */
c578abbc2 Cornelia Huck 2006-11-27 500 ret = 0;
d779249ed Greg Kroah-Hartman 2006-07-18 501 done:
d779249ed Greg Kroah-Hartman 2006-07-18 502 atomic_dec(&probe_count);
735a7ffb7 Andrew Morton 2006-10-27 503 wake_up(&probe_waitqueue);
d779249ed Greg Kroah-Hartman 2006-07-18 504 return ret;
d779249ed Greg Kroah-Hartman 2006-07-18 505 }
d779249ed Greg Kroah-Hartman 2006-07-18 506

:::::: The code at line 394 was first introduced by commit
:::::: ab78029ecc347debbd737f06688d788bd9d60c1d drivers/pinctrl: grab default handles from device core

:::::: TO: Linus Walleij <linus.walleij@xxxxxxxxxx>
:::::: CC: Linus Walleij <linus.walleij@xxxxxxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip