* [pm:bleeding-edge 75/85] drivers/base/swnode.c:587:23-27: ERROR: swnode is NULL but dereferenced. (fwd)
@ 2019-04-17 6:07 Julia Lawall
0 siblings, 0 replies; only message in thread
From: Julia Lawall @ 2019-04-17 6:07 UTC (permalink / raw)
To: Heikki Krogerus
Cc: Rafael J. Wysocki, linux-pm, devel, linux-acpi, kbuild-all
Hello,
The problem appears to be on line 551. swnode can't be NULL after the
lock is taken. Perhaps the test is just not needed, or perhaps something
else was intended to be checked.
julia
---------- Forwarded message ----------
Date: Wed, 17 Apr 2019 08:37:13 +0800
From: kbuild test robot <lkp@intel.com>
To: kbuild@01.org
Cc: Julia Lawall <julia.lawall@lip6.fr>
Subject: [pm:bleeding-edge 75/85] drivers/base/swnode.c:587:23-27: ERROR: swnode
is NULL but dereferenced.
CC: kbuild-all@01.org
CC: linux-acpi@vger.kernel.org
CC: devel@acpica.org
CC: linux-pm@vger.kernel.org
TO: Heikki Krogerus <heikki.krogerus@linux.intel.com>
CC: "Rafael J. Wysocki" <rjw@rjwysocki.net>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git bleeding-edge
head: 98438d88cbe65037744bdc071720389797f9c575
commit: 7b68d5fe9581aed81d84280891f9a8b1508c911b [75/85] software node: Implement .get_reference_args fwnode operation
:::::: branch date: 3 hours ago
:::::: commit date: 3 hours ago
>> drivers/base/swnode.c:587:23-27: ERROR: swnode is NULL but dereferenced.
# https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git/commit/?id=7b68d5fe9581aed81d84280891f9a8b1508c911b
git remote add pm https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git
git remote update pm
git checkout 7b68d5fe9581aed81d84280891f9a8b1508c911b
vim +587 drivers/base/swnode.c
59abd836 Heikki Krogerus 2018-11-09 536
7b68d5fe Heikki Krogerus 2019-04-12 537 static int
7b68d5fe Heikki Krogerus 2019-04-12 538 software_node_get_reference_args(const struct fwnode_handle *fwnode,
7b68d5fe Heikki Krogerus 2019-04-12 539 const char *propname, const char *nargs_prop,
7b68d5fe Heikki Krogerus 2019-04-12 540 unsigned int nargs, unsigned int index,
7b68d5fe Heikki Krogerus 2019-04-12 541 struct fwnode_reference_args *args)
7b68d5fe Heikki Krogerus 2019-04-12 542 {
7b68d5fe Heikki Krogerus 2019-04-12 543 struct software_node *swnode = to_software_node(fwnode);
7b68d5fe Heikki Krogerus 2019-04-12 544 struct software_node_reference *ref;
7b68d5fe Heikki Krogerus 2019-04-12 545 const struct property_entry *prop;
7b68d5fe Heikki Krogerus 2019-04-12 546 int ret = -ENOENT;
7b68d5fe Heikki Krogerus 2019-04-12 547 int i;
7b68d5fe Heikki Krogerus 2019-04-12 548
7b68d5fe Heikki Krogerus 2019-04-12 549 mutex_lock(&swnode->lock);
7b68d5fe Heikki Krogerus 2019-04-12 550
7b68d5fe Heikki Krogerus 2019-04-12 551 if (!swnode || list_empty(&swnode->references))
7b68d5fe Heikki Krogerus 2019-04-12 552 goto err_unlock;
7b68d5fe Heikki Krogerus 2019-04-12 553
7b68d5fe Heikki Krogerus 2019-04-12 554 if (nargs_prop) {
7b68d5fe Heikki Krogerus 2019-04-12 555 prop = property_entry_get(swnode->properties, nargs_prop);
7b68d5fe Heikki Krogerus 2019-04-12 556 if (!prop) {
7b68d5fe Heikki Krogerus 2019-04-12 557 ret = -EINVAL;
7b68d5fe Heikki Krogerus 2019-04-12 558 goto err_unlock;
7b68d5fe Heikki Krogerus 2019-04-12 559 }
7b68d5fe Heikki Krogerus 2019-04-12 560
7b68d5fe Heikki Krogerus 2019-04-12 561 nargs = prop->value.u32_data;
7b68d5fe Heikki Krogerus 2019-04-12 562 }
7b68d5fe Heikki Krogerus 2019-04-12 563
7b68d5fe Heikki Krogerus 2019-04-12 564 if (nargs > NR_FWNODE_REFERENCE_ARGS) {
7b68d5fe Heikki Krogerus 2019-04-12 565 ret = -EINVAL;
7b68d5fe Heikki Krogerus 2019-04-12 566 goto err_unlock;
7b68d5fe Heikki Krogerus 2019-04-12 567 }
7b68d5fe Heikki Krogerus 2019-04-12 568
7b68d5fe Heikki Krogerus 2019-04-12 569 list_for_each_entry(ref, &swnode->references, list) {
7b68d5fe Heikki Krogerus 2019-04-12 570 if (strcmp(ref->name, propname))
7b68d5fe Heikki Krogerus 2019-04-12 571 continue;
7b68d5fe Heikki Krogerus 2019-04-12 572
7b68d5fe Heikki Krogerus 2019-04-12 573 if (index > (ref->nrefs - 1))
7b68d5fe Heikki Krogerus 2019-04-12 574 break;
7b68d5fe Heikki Krogerus 2019-04-12 575
7b68d5fe Heikki Krogerus 2019-04-12 576 args->nargs = nargs;
7b68d5fe Heikki Krogerus 2019-04-12 577 args->fwnode = software_node_get(ref->args[index].fwnode);
7b68d5fe Heikki Krogerus 2019-04-12 578
7b68d5fe Heikki Krogerus 2019-04-12 579 for (i = 0; i < nargs; i++)
7b68d5fe Heikki Krogerus 2019-04-12 580 args->args[i] = ref->args[index].args[i];
7b68d5fe Heikki Krogerus 2019-04-12 581
7b68d5fe Heikki Krogerus 2019-04-12 582 ret = 0;
7b68d5fe Heikki Krogerus 2019-04-12 583 break;
7b68d5fe Heikki Krogerus 2019-04-12 584 }
7b68d5fe Heikki Krogerus 2019-04-12 585
7b68d5fe Heikki Krogerus 2019-04-12 586 err_unlock:
7b68d5fe Heikki Krogerus 2019-04-12 @587 mutex_unlock(&swnode->lock);
7b68d5fe Heikki Krogerus 2019-04-12 588
7b68d5fe Heikki Krogerus 2019-04-12 589 return ret;
7b68d5fe Heikki Krogerus 2019-04-12 590 }
7b68d5fe Heikki Krogerus 2019-04-12 591
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-04-17 6:07 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-17 6:07 [pm:bleeding-edge 75/85] drivers/base/swnode.c:587:23-27: ERROR: swnode is NULL but dereferenced. (fwd) Julia Lawall
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox