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

From: gengdongjiu
Date: Tue Jun 05 2018 - 05:12:55 EST


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 <gengdongjiu@xxxxxxxxxx>
>>>> ---
>>>
>>> Any hint as to what commit caused this warning to show up?
>>
>> It seems below commit:
>>
>> commit e84fce0f8837496a48d11086829bdbe170358b7a
>> Author: Thierry Reding <treding@xxxxxxxxxx>
>> 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 <ajayg@xxxxxxxxxx>
>> Bharath Yadav <byadav@xxxxxxxxxx>
>> Andrew Bresticker <abrestic@xxxxxxxxxxxx>
>>
>> Cc: Mathias Nyman <mathias.nyman@xxxxxxxxx>
>> Cc: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
>> Acked-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx>
>> Signed-off-by: Thierry Reding <treding@xxxxxxxxxx>
>
> 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 <treding@xxxxxxxxxx>
>
> 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
>