2018-06-05 08:31:51

by Dongjiu Geng

[permalink] [raw]
Subject: [PATCH] usb: xhci: remove the code build warning

Initialize the 'err' variate to remove the build warning,
the warning is shown as below:

drivers/usb/host/xhci-tegra.c: In function ‘tegra_xusb_mbox_thread’:
drivers/usb/host/xhci-tegra.c:552:6: warning: ‘err’ may be used uninitialized in this function [-Wuninitialized]
drivers/usb/host/xhci-tegra.c:482:6: note: ‘err’ was declared here

Signed-off-by: Dongjiu Geng <[email protected]>
---
How to reproduce:
1. make defconfig ARCH=arm
2. make -j100 CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm

Then you can see below warnings:
drivers/usb/host/xhci-tegra.c: In function ‘tegra_xusb_mbox_thread’:
drivers/usb/host/xhci-tegra.c:552:6: warning: ‘err’ may be used uninitialized in this function [-Wuninitialized]
drivers/usb/host/xhci-tegra.c:482:6: note: ‘err’ was declared here
---
drivers/usb/host/xhci-tegra.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/usb/host/xhci-tegra.c b/drivers/usb/host/xhci-tegra.c
index 2c076ea..1ed87ce 100644
--- a/drivers/usb/host/xhci-tegra.c
+++ b/drivers/usb/host/xhci-tegra.c
@@ -479,7 +479,7 @@ static void tegra_xusb_mbox_handle(struct tegra_xusb *tegra,
unsigned long mask;
unsigned int port;
bool idle, enable;
- int err;
+ int err = 0;

memset(&rsp, 0, sizeof(rsp));

--
2.7.4



2018-06-05 08:41:22

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] usb: xhci: remove the code build warning

On Wed, Jun 06, 2018 at 12:35:00AM +0800, Dongjiu Geng wrote:
> Initialize the 'err' variate to remove the build warning,
> the warning is shown as below:
>
> drivers/usb/host/xhci-tegra.c: In function ‘tegra_xusb_mbox_thread’:
> drivers/usb/host/xhci-tegra.c:552:6: warning: ‘err’ may be used uninitialized in this function [-Wuninitialized]
> drivers/usb/host/xhci-tegra.c:482:6: note: ‘err’ was declared here
>
> Signed-off-by: Dongjiu Geng <[email protected]>
> ---

Any hint as to what commit caused this warning to show up?

thanks,

greg k-h

2018-06-05 08:56:54

by Dongjiu Geng

[permalink] [raw]
Subject: Re: [PATCH] usb: xhci: remove the code build warning



On 2018/6/5 16:40, Greg KH wrote:
> On Wed, Jun 06, 2018 at 12:35:00AM +0800, Dongjiu Geng wrote:
>> Initialize the 'err' variate to remove the build warning,
>> the warning is shown as below:
>>
>> drivers/usb/host/xhci-tegra.c: In function ‘tegra_xusb_mbox_thread’:
>> drivers/usb/host/xhci-tegra.c:552:6: warning: ‘err’ may be used uninitialized in this function [-Wuninitialized]
>> drivers/usb/host/xhci-tegra.c:482:6: note: ‘err’ was declared here
>>
>> Signed-off-by: Dongjiu Geng <[email protected]>
>> ---
>
> Any hint as to what commit caused this warning to show up?

It seems below commit:

commit e84fce0f8837496a48d11086829bdbe170358b7a
Author: Thierry Reding <[email protected]>
Date: Thu Feb 11 18:10:48 2016 +0100

usb: xhci: Add NVIDIA Tegra XUSB controller driver

Add support for the on-chip XUSB controller present on Tegra SoCs. This
controller, when loaded with external firmware, exposes an interface
compliant with xHCI. This driver loads the firmware, starts the
controller, and is able to service host-specific messages sent by the
controller's firmware.

The controller also supports USB device mode as well as powergating
of the SuperSpeed and host-controller logic when not in use, but
support for these is not yet implemented.

Based on work by:
Ajay Gupta <[email protected]>
Bharath Yadav <[email protected]>
Andrew Bresticker <[email protected]>

Cc: Mathias Nyman <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Acked-by: Mathias Nyman <[email protected]>
Signed-off-by: Thierry Reding <[email protected]>


>
> thanks,
>
> greg k-h
>
> .
>


2018-06-05 09:08:15

by Thierry Reding

[permalink] [raw]
Subject: Re: [PATCH] usb: xhci: remove the code build warning

On Tue, Jun 05, 2018 at 04:54:17PM +0800, gengdongjiu wrote:
>
>
> On 2018/6/5 16:40, Greg KH wrote:
> > On Wed, Jun 06, 2018 at 12:35:00AM +0800, Dongjiu Geng wrote:
> >> Initialize the 'err' variate to remove the build warning,
> >> the warning is shown as below:
> >>
> >> drivers/usb/host/xhci-tegra.c: In function ‘tegra_xusb_mbox_thread’:
> >> drivers/usb/host/xhci-tegra.c:552:6: warning: ‘err’ may be used uninitialized in this function [-Wuninitialized]
> >> drivers/usb/host/xhci-tegra.c:482:6: note: ‘err’ was declared here
> >>
> >> Signed-off-by: Dongjiu Geng <[email protected]>
> >> ---
> >
> > Any hint as to what commit caused this warning to show up?
>
> It seems below commit:
>
> commit e84fce0f8837496a48d11086829bdbe170358b7a
> Author: Thierry Reding <[email protected]>
> Date: Thu Feb 11 18:10:48 2016 +0100
>
> usb: xhci: Add NVIDIA Tegra XUSB controller driver
>
> Add support for the on-chip XUSB controller present on Tegra SoCs. This
> controller, when loaded with external firmware, exposes an interface
> compliant with xHCI. This driver loads the firmware, starts the
> controller, and is able to service host-specific messages sent by the
> controller's firmware.
>
> The controller also supports USB device mode as well as powergating
> of the SuperSpeed and host-controller logic when not in use, but
> support for these is not yet implemented.
>
> Based on work by:
> Ajay Gupta <[email protected]>
> Bharath Yadav <[email protected]>
> Andrew Bresticker <[email protected]>
>
> Cc: Mathias Nyman <[email protected]>
> Cc: Greg Kroah-Hartman <[email protected]>
> Acked-by: Mathias Nyman <[email protected]>
> Signed-off-by: Thierry Reding <[email protected]>

I've never seen this warning before. It's also a false positive in that
technically the mailbox message will always have at least one bit set in
"mask". However, I don't see how the compiler could know about it, given
that the data comes from an external source, so I think this makes sense
as a hint to the compiler. So:

Acked-by: Thierry Reding <[email protected]>

Can you provide more detail on what exact version of which compiler you
used that triggered this? I wonder why it's never presented itself with
the compiler that I use.

Thierry


Attachments:
(No filename) (2.38 kB)
signature.asc (849.00 B)
Download all attachments

2018-06-05 09:13:40

by Dongjiu Geng

[permalink] [raw]
Subject: Re: [PATCH] usb: xhci: remove the code build warning

On 2018/6/5 17:06, Thierry Reding wrote:
> On Tue, Jun 05, 2018 at 04:54:17PM +0800, gengdongjiu wrote:
>>
>>
>> On 2018/6/5 16:40, Greg KH wrote:
>>> On Wed, Jun 06, 2018 at 12:35:00AM +0800, Dongjiu Geng wrote:
>>>> Initialize the 'err' variate to remove the build warning,
>>>> the warning is shown as below:
>>>>
>>>> drivers/usb/host/xhci-tegra.c: In function ‘tegra_xusb_mbox_thread’:
>>>> drivers/usb/host/xhci-tegra.c:552:6: warning: ‘err’ may be used uninitialized in this function [-Wuninitialized]
>>>> drivers/usb/host/xhci-tegra.c:482:6: note: ‘err’ was declared here
>>>>
>>>> Signed-off-by: Dongjiu Geng <[email protected]>
>>>> ---
>>>
>>> Any hint as to what commit caused this warning to show up?
>>
>> It seems below commit:
>>
>> commit e84fce0f8837496a48d11086829bdbe170358b7a
>> Author: Thierry Reding <[email protected]>
>> Date: Thu Feb 11 18:10:48 2016 +0100
>>
>> usb: xhci: Add NVIDIA Tegra XUSB controller driver
>>
>> Add support for the on-chip XUSB controller present on Tegra SoCs. This
>> controller, when loaded with external firmware, exposes an interface
>> compliant with xHCI. This driver loads the firmware, starts the
>> controller, and is able to service host-specific messages sent by the
>> controller's firmware.
>>
>> The controller also supports USB device mode as well as powergating
>> of the SuperSpeed and host-controller logic when not in use, but
>> support for these is not yet implemented.
>>
>> Based on work by:
>> Ajay Gupta <[email protected]>
>> Bharath Yadav <[email protected]>
>> Andrew Bresticker <[email protected]>
>>
>> Cc: Mathias Nyman <[email protected]>
>> Cc: Greg Kroah-Hartman <[email protected]>
>> Acked-by: Mathias Nyman <[email protected]>
>> Signed-off-by: Thierry Reding <[email protected]>
>
> I've never seen this warning before. It's also a false positive in that
> technically the mailbox message will always have at least one bit set in
> "mask". However, I don't see how the compiler could know about it, given
> that the data comes from an external source, so I think this makes sense
> as a hint to the compiler. So:
>
> Acked-by: Thierry Reding <[email protected]>
>
> Can you provide more detail on what exact version of which compiler you
> used that triggered this? I wonder why it's never presented itself with
> the compiler that I use.

Below is the detailed version of compiler that I used.

$ sudo lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 14.04.5 LTS
Release: 14.04
Codename: trusty

$ arm-linux-gnueabi-gcc -v
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabi-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/lto-wrapper
Target: arm-linux-gnueabi
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.7.3-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-4.7/README.Bugs --enable-languages=c,c++,go,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.7 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.7.3 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-gnu-unique-object --disable-libmudflap --disable-libitm --enable-plugin --with-system-zlib --enable-objc-gc --with-cloog --enable-cloog-backend=ppl --disable-cloog-version-check --disable-ppl-version-check --enable-multiarch --enable-multilib --disable-sjlj-exceptions --with-arch=armv5t --with-float=soft --disable-werror --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=arm-linux-gnueabi --program-prefix=arm-linux-gnueabi- --includedir=/usr/arm-linux-gnueabi/include
Thread model: posix
gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-12ubuntu1)

>
> Thierry
>