From: Bjorn Helgaas <helgaas@kernel.org>
To: Michael Ellerman <mpe@ellerman.id.au>
Cc: Nathan Chancellor <natechancellor@gmail.com>,
Tyrel Datwyler <tyreld@linux.ibm.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
linux-pci@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com,
Nick Desaulniers <ndesaulniers@google.com>
Subject: Re: [PATCH v2] PCI: rpaphp: Avoid a sometimes-uninitialized warning
Date: Thu, 1 Aug 2019 19:11:02 -0500 [thread overview]
Message-ID: <20190802001102.GG151852@google.com> (raw)
In-Reply-To: <87lfwq7lzb.fsf@concordia.ellerman.id.au>
On Mon, Jul 22, 2019 at 02:05:12PM +1000, Michael Ellerman wrote:
> Nathan Chancellor <natechancellor@gmail.com> writes:
> > On Mon, Jun 03, 2019 at 03:11:58PM -0700, Nathan Chancellor wrote:
> >> When building with -Wsometimes-uninitialized, clang warns:
> >>
> >> drivers/pci/hotplug/rpaphp_core.c:243:14: warning: variable 'fndit' is
> >> used uninitialized whenever 'for' loop exits because its condition is
> >> false [-Wsometimes-uninitialized]
> >> for (j = 0; j < entries; j++) {
> >> ^~~~~~~~~~~
> >> drivers/pci/hotplug/rpaphp_core.c:256:6: note: uninitialized use occurs
> >> here
> >> if (fndit)
> >> ^~~~~
> >> drivers/pci/hotplug/rpaphp_core.c:243:14: note: remove the condition if
> >> it is always true
> >> for (j = 0; j < entries; j++) {
> >> ^~~~~~~~~~~
> >> drivers/pci/hotplug/rpaphp_core.c:233:14: note: initialize the variable
> >> 'fndit' to silence this warning
> >> int j, fndit;
> >> ^
> >> = 0
> >>
> >> fndit is only used to gate a sprintf call, which can be moved into the
> >> loop to simplify the code and eliminate the local variable, which will
> >> fix this warning.
> >>
> >> Link: https://github.com/ClangBuiltLinux/linux/issues/504
> >> Fixes: 2fcf3ae508c2 ("hotplug/drc-info: Add code to search ibm,drc-info property")
> >> Suggested-by: Nick Desaulniers <ndesaulniers@google.com>
> >> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> >> ---
> >>
> >> v1 -> v2:
> >>
> >> * Eliminate fndit altogether by shuffling the sprintf call into the for
> >> loop and changing the if conditional, as suggested by Nick.
> >>
> >> drivers/pci/hotplug/rpaphp_core.c | 18 +++++++-----------
> >> 1 file changed, 7 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c
> >> index bcd5d357ca23..c3899ee1db99 100644
> >> --- a/drivers/pci/hotplug/rpaphp_core.c
> >> +++ b/drivers/pci/hotplug/rpaphp_core.c
> >> @@ -230,7 +230,7 @@ static int rpaphp_check_drc_props_v2(struct device_node *dn, char *drc_name,
> >> struct of_drc_info drc;
> >> const __be32 *value;
> >> char cell_drc_name[MAX_DRC_NAME_LEN];
> >> - int j, fndit;
> >> + int j;
> >>
> >> info = of_find_property(dn->parent, "ibm,drc-info", NULL);
> >> if (info == NULL)
> >> @@ -245,17 +245,13 @@ static int rpaphp_check_drc_props_v2(struct device_node *dn, char *drc_name,
> >>
> >> /* Should now know end of current entry */
> >>
> >> - if (my_index > drc.last_drc_index)
> >> - continue;
> >> -
> >> - fndit = 1;
> >> - break;
> >> + /* Found it */
> >> + if (my_index <= drc.last_drc_index) {
> >> + sprintf(cell_drc_name, "%s%d", drc.drc_name_prefix,
> >> + my_index);
> >> + break;
> >> + }
> >> }
> >> - /* Found it */
> >> -
> >> - if (fndit)
> >> - sprintf(cell_drc_name, "%s%d", drc.drc_name_prefix,
> >> - my_index);
> >>
> >> if (((drc_name == NULL) ||
> >> (drc_name && !strcmp(drc_name, cell_drc_name))) &&
> >> --
> >> 2.22.0.rc3
> >>
> >
> > Hi all,
> >
> > Could someone please pick this up?
>
> I'll take it.
>
> I was expecting Bjorn to take it as a PCI patch, but I realise now that
> I merged that code in the first place so may as well take this too.
>
> I'll put it in my next branch once that opens next week.
Sorry, I should have done something with this. Did you take it,
Michael? I don't see it in -next and haven't figured out where to
look in your git tree, so I can't tell. Just let me know either way
so I know whether to drop this or apply it.
Bjorn
WARNING: multiple messages have this Message-ID (diff)
From: Bjorn Helgaas <helgaas@kernel.org>
To: Michael Ellerman <mpe@ellerman.id.au>
Cc: Tyrel Datwyler <tyreld@linux.ibm.com>,
linux-pci@vger.kernel.org,
Nick Desaulniers <ndesaulniers@google.com>,
linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com,
Paul Mackerras <paulus@samba.org>,
Nathan Chancellor <natechancellor@gmail.com>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH v2] PCI: rpaphp: Avoid a sometimes-uninitialized warning
Date: Thu, 1 Aug 2019 19:11:02 -0500 [thread overview]
Message-ID: <20190802001102.GG151852@google.com> (raw)
In-Reply-To: <87lfwq7lzb.fsf@concordia.ellerman.id.au>
On Mon, Jul 22, 2019 at 02:05:12PM +1000, Michael Ellerman wrote:
> Nathan Chancellor <natechancellor@gmail.com> writes:
> > On Mon, Jun 03, 2019 at 03:11:58PM -0700, Nathan Chancellor wrote:
> >> When building with -Wsometimes-uninitialized, clang warns:
> >>
> >> drivers/pci/hotplug/rpaphp_core.c:243:14: warning: variable 'fndit' is
> >> used uninitialized whenever 'for' loop exits because its condition is
> >> false [-Wsometimes-uninitialized]
> >> for (j = 0; j < entries; j++) {
> >> ^~~~~~~~~~~
> >> drivers/pci/hotplug/rpaphp_core.c:256:6: note: uninitialized use occurs
> >> here
> >> if (fndit)
> >> ^~~~~
> >> drivers/pci/hotplug/rpaphp_core.c:243:14: note: remove the condition if
> >> it is always true
> >> for (j = 0; j < entries; j++) {
> >> ^~~~~~~~~~~
> >> drivers/pci/hotplug/rpaphp_core.c:233:14: note: initialize the variable
> >> 'fndit' to silence this warning
> >> int j, fndit;
> >> ^
> >> = 0
> >>
> >> fndit is only used to gate a sprintf call, which can be moved into the
> >> loop to simplify the code and eliminate the local variable, which will
> >> fix this warning.
> >>
> >> Link: https://github.com/ClangBuiltLinux/linux/issues/504
> >> Fixes: 2fcf3ae508c2 ("hotplug/drc-info: Add code to search ibm,drc-info property")
> >> Suggested-by: Nick Desaulniers <ndesaulniers@google.com>
> >> Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
> >> ---
> >>
> >> v1 -> v2:
> >>
> >> * Eliminate fndit altogether by shuffling the sprintf call into the for
> >> loop and changing the if conditional, as suggested by Nick.
> >>
> >> drivers/pci/hotplug/rpaphp_core.c | 18 +++++++-----------
> >> 1 file changed, 7 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/drivers/pci/hotplug/rpaphp_core.c b/drivers/pci/hotplug/rpaphp_core.c
> >> index bcd5d357ca23..c3899ee1db99 100644
> >> --- a/drivers/pci/hotplug/rpaphp_core.c
> >> +++ b/drivers/pci/hotplug/rpaphp_core.c
> >> @@ -230,7 +230,7 @@ static int rpaphp_check_drc_props_v2(struct device_node *dn, char *drc_name,
> >> struct of_drc_info drc;
> >> const __be32 *value;
> >> char cell_drc_name[MAX_DRC_NAME_LEN];
> >> - int j, fndit;
> >> + int j;
> >>
> >> info = of_find_property(dn->parent, "ibm,drc-info", NULL);
> >> if (info == NULL)
> >> @@ -245,17 +245,13 @@ static int rpaphp_check_drc_props_v2(struct device_node *dn, char *drc_name,
> >>
> >> /* Should now know end of current entry */
> >>
> >> - if (my_index > drc.last_drc_index)
> >> - continue;
> >> -
> >> - fndit = 1;
> >> - break;
> >> + /* Found it */
> >> + if (my_index <= drc.last_drc_index) {
> >> + sprintf(cell_drc_name, "%s%d", drc.drc_name_prefix,
> >> + my_index);
> >> + break;
> >> + }
> >> }
> >> - /* Found it */
> >> -
> >> - if (fndit)
> >> - sprintf(cell_drc_name, "%s%d", drc.drc_name_prefix,
> >> - my_index);
> >>
> >> if (((drc_name == NULL) ||
> >> (drc_name && !strcmp(drc_name, cell_drc_name))) &&
> >> --
> >> 2.22.0.rc3
> >>
> >
> > Hi all,
> >
> > Could someone please pick this up?
>
> I'll take it.
>
> I was expecting Bjorn to take it as a PCI patch, but I realise now that
> I merged that code in the first place so may as well take this too.
>
> I'll put it in my next branch once that opens next week.
Sorry, I should have done something with this. Did you take it,
Michael? I don't see it in -next and haven't figured out where to
look in your git tree, so I can't tell. Just let me know either way
so I know whether to drop this or apply it.
Bjorn
next prev parent reply other threads:[~2019-08-02 0:11 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-03 17:43 [PATCH] PCI: rpaphp: Avoid a sometimes-uninitialized warning Nathan Chancellor
2019-06-03 17:43 ` Nathan Chancellor
2019-06-03 21:07 ` Nick Desaulniers
2019-06-03 21:07 ` Nick Desaulniers
2019-06-03 21:51 ` Nathan Chancellor
2019-06-03 21:51 ` Nathan Chancellor
2019-06-03 22:11 ` [PATCH v2] " Nathan Chancellor
2019-06-03 22:11 ` Nathan Chancellor
2019-06-04 0:03 ` Tyrel Datwyler
2019-06-04 0:03 ` Tyrel Datwyler
2019-06-27 19:18 ` Nathan Chancellor
2019-06-27 19:18 ` Nathan Chancellor
2019-06-28 2:57 ` Joel Savitz
2019-06-28 2:57 ` Joel Savitz
2019-07-22 2:43 ` Nathan Chancellor
2019-07-22 2:43 ` Nathan Chancellor
2019-07-22 4:05 ` Michael Ellerman
2019-07-22 4:05 ` Michael Ellerman
2019-08-02 0:11 ` Bjorn Helgaas [this message]
2019-08-02 0:11 ` Bjorn Helgaas
2019-08-02 12:24 ` Michael Ellerman
2019-08-02 12:24 ` Michael Ellerman
2019-08-10 10:20 ` Michael Ellerman
2019-06-04 6:24 ` [PATCH] " Christophe Leroy
2019-06-04 6:24 ` Christophe Leroy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190802001102.GG151852@google.com \
--to=helgaas@kernel.org \
--cc=benh@kernel.crashing.org \
--cc=clang-built-linux@googlegroups.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=natechancellor@gmail.com \
--cc=ndesaulniers@google.com \
--cc=paulus@samba.org \
--cc=tyreld@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.