Re: [PATCH v4 3/4] kernel hacking: new config CC_OPTIMIZE_FOR_DEBUGGING to apply GCC -Og optimization

From: kbuild test robot
Date: Thu May 10 2018 - 17:00:18 EST


Hi Changbin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[also build test WARNING on v4.17-rc4 next-20180510]
[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/changbin-du-intel-com/kernel-hacking-GCC-optimization-for-better-debug-experience-Og/20180509-213955
config: x86_64-randconfig-s1-05100951 (attached as .config)
compiler: gcc-6 (Debian 6.4.0-9) 6.4.0 20171026
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_get_freq':
>> drivers//net/wireless/zydas/zd1201.c:939:10: warning: 'channel' may be used uninitialized in this function [-Wmaybe-uninitialized]
freq->m = channel;
~~~~~~~~^~~~~~~~~
drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_get_mode':
>> drivers//net/wireless/zydas/zd1201.c:1016:2: warning: 'porttype' may be used uninitialized in this function [-Wmaybe-uninitialized]
switch(porttype) {
^~~~~~
drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_get_rate':
>> drivers//net/wireless/zydas/zd1201.c:1282:2: warning: 'rate' may be used uninitialized in this function [-Wmaybe-uninitialized]
switch(rate) {
^~~~~~
drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_get_rts':
>> drivers//net/wireless/zydas/zd1201.c:1334:13: warning: 'rtst' may be used uninitialized in this function [-Wmaybe-uninitialized]
rts->value = rtst;
~~~~~~~~~~~^~~~~~
drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_get_frag':
>> drivers//net/wireless/zydas/zd1201.c:1372:14: warning: 'fragt' may be used uninitialized in this function [-Wmaybe-uninitialized]
frag->value = fragt;
~~~~~~~~~~~~^~~~~~~
drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_set_power':
>> drivers//net/wireless/zydas/zd1201.c:1503:28: warning: 'duration' may be used uninitialized in this function [-Wmaybe-uninitialized]
level = vwrq->value * 4 / duration;
~~~~~~~~~~~~~~~~^~~~~~~~~~
drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_get_power':
drivers//net/wireless/zydas/zd1201.c:1542:27: warning: 'duration' may be used uninitialized in this function [-Wmaybe-uninitialized]
vwrq->value = duration * level / 4;
~~~~~~~~~^~~~~~~
>> drivers//net/wireless/zydas/zd1201.c:1547:15: warning: 'level' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (enabled && level)
~~~~~~~~^~~~~~~~
>> drivers//net/wireless/zydas/zd1201.c:1547:6: warning: 'enabled' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (enabled && level)
^
drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_get_hostauth':
>> drivers//net/wireless/zydas/zd1201.c:1631:13: warning: 'hostauth' may be used uninitialized in this function [-Wmaybe-uninitialized]
rrq->value = hostauth;
~~~~~~~~~~~^~~~~~~~~~
drivers//net/wireless/zydas/zd1201.c: In function 'zd1201_get_maxassoc':
>> drivers//net/wireless/zydas/zd1201.c:1681:13: warning: 'maxassoc' may be used uninitialized in this function [-Wmaybe-uninitialized]
rrq->value = maxassoc;
~~~~~~~~~~~^~~~~~~~~~
--
drivers/rtc/rtc-da9052.c: In function 'da9052_read_alarm':
>> drivers/rtc/rtc-da9052.c:25:3: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
dev_err(rtc->da9052->dev, "%s: " fmt, __func__, ##__VA_ARGS__)
^~~~~~~
In file included from drivers/rtc/rtc-da9052.c:21:0:
include/linux/mfd/da9052/da9052.h:157:6: note: 'ret' was declared here
int ret;
^~~
>> drivers/rtc/rtc-da9052.c:25:3: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
dev_err(rtc->da9052->dev, "%s: " fmt, __func__, ##__VA_ARGS__)
^~~~~~~
In file included from drivers/rtc/rtc-da9052.c:21:0:
include/linux/mfd/da9052/da9052.h:157:6: note: 'ret' was declared here
int ret;
^~~
drivers/rtc/rtc-da9052.c: In function 'da9052_rtc_read_time':
>> drivers/rtc/rtc-da9052.c:25:3: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
dev_err(rtc->da9052->dev, "%s: " fmt, __func__, ##__VA_ARGS__)
^~~~~~~
In file included from drivers/rtc/rtc-da9052.c:21:0:
include/linux/mfd/da9052/da9052.h:157:6: note: 'ret' was declared here
int ret;
^~~
>> drivers/rtc/rtc-da9052.c:25:3: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
dev_err(rtc->da9052->dev, "%s: " fmt, __func__, ##__VA_ARGS__)
^~~~~~~
In file included from drivers/rtc/rtc-da9052.c:21:0:
include/linux/mfd/da9052/da9052.h:157:6: note: 'ret' was declared here
int ret;
^~~
--
net/bluetooth/mgmt.c: In function 'read_local_oob_ext_data_complete':
>> net/bluetooth/mgmt.c:5669:27: warning: 'r256' may be used uninitialized in this function [-Wmaybe-uninitialized]
u8 *h192, *r192, *h256, *r256;
^~~~
--
In file included from drivers//net/wireless/zydas/zd1211rw/zd_usb.c:28:0:
drivers//net/wireless/zydas/zd1211rw/zd_usb.c: In function 'eject_installer':
>> include/linux/usb.h:1922:23: warning: 'bulk_out_ep' may be used uninitialized in this function [-Wmaybe-uninitialized]
((PIPE_BULK << 30) | __create_pipe(dev, endpoint))
^~~~~~~~~~~~~
drivers//net/wireless/zydas/zd1211rw/zd_usb.c:1278:5: note: 'bulk_out_ep' was declared here
u8 bulk_out_ep;
^~~~~~~~~~~
--
drivers/slimbus/messaging.c: In function 'slim_do_transfer':
>> drivers/slimbus/messaging.c:126:4: warning: 'tid' may be used uninitialized in this function [-Wmaybe-uninitialized]
idr_remove(&ctrl->tid_idr, tid);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
drivers//staging/comedi/drivers/serial2002.c: In function 'serial2002_setup_subdevs':
>> drivers//staging/comedi/drivers/serial2002.c:497:7: warning: 'cfg' may be used uninitialized in this function [-Wmaybe-uninitialized]
if (serial2002_setup_subdevice(s, cfg, range, mapping, kind))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
In file included from drivers/net/wireless/zydas/zd1211rw/zd_usb.c:28:0:
drivers/net/wireless/zydas/zd1211rw/zd_usb.c: In function 'eject_installer':
>> include/linux/usb.h:1922:23: warning: 'bulk_out_ep' may be used uninitialized in this function [-Wmaybe-uninitialized]
((PIPE_BULK << 30) | __create_pipe(dev, endpoint))
^~~~~~~~~~~~~
drivers/net/wireless/zydas/zd1211rw/zd_usb.c:1278:5: note: 'bulk_out_ep' was declared here
u8 bulk_out_ep;
^~~~~~~~~~~
--
drivers//regulator/max8925-regulator.c: In function 'max8925_regulator_probe':
>> drivers//regulator/max8925-regulator.c:315:3: warning: 'ri' may be used uninitialized in this function [-Wmaybe-uninitialized]
dev_err(&pdev->dev, "failed to register regulator %s\n",
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ri->desc.name);
~~~~~~~~~~~~~~
--
drivers//bcma/sprom.c: In function 'bcma_sprom_get':
>> drivers//bcma/sprom.c:642:3: warning: 'sprom' may be used uninitialized in this function [-Wmaybe-uninitialized]
kfree(sprom);
^~~~~~~~~~~~
--
drivers//block/rbd.c: In function 'rbd_v2_snap_id_by_name':
>> drivers//block/rbd.c:4797:25: warning: 'snap_id' may be used uninitialized in this function [-Wmaybe-uninitialized]
return found ? snap_id : CEPH_NOSNAP;

drivers//block/rbd.c: In function 'rbd_dev_image_id':
>> drivers//block/rbd.c:5349:27: warning: 'image_id' may be used uninitialized in this function [-Wmaybe-uninitialized]
rbd_dev->spec->image_id = image_id;
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
--
drivers//firmware/qemu_fw_cfg.c: In function 'fw_cfg_build_symlink':
>> drivers//firmware/qemu_fw_cfg.c:557:9: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized]
return ret;
^~~
..

vim +/seq +33 include/linux/compiler.h

1f0d69a9 Steven Rostedt 2008-11-12 22
d45ae1f7 Steven Rostedt (VMware 2017-01-17 23) #define __branch_check__(x, expect, is_constant) ({ \
1f0d69a9 Steven Rostedt 2008-11-12 24 int ______r; \
134e6a03 Steven Rostedt (VMware 2017-01-19 25) static struct ftrace_likely_data \
1f0d69a9 Steven Rostedt 2008-11-12 26 __attribute__((__aligned__(4))) \
45b79749 Steven Rostedt 2008-11-21 27 __attribute__((section("_ftrace_annotated_branch"))) \
1f0d69a9 Steven Rostedt 2008-11-12 28 ______f = { \
134e6a03 Steven Rostedt (VMware 2017-01-19 29) .data.func = __func__, \
134e6a03 Steven Rostedt (VMware 2017-01-19 30) .data.file = __FILE__, \
134e6a03 Steven Rostedt (VMware 2017-01-19 31) .data.line = __LINE__, \
1f0d69a9 Steven Rostedt 2008-11-12 32 }; \
d45ae1f7 Steven Rostedt (VMware 2017-01-17 @33) ______r = __builtin_expect(!!(x), expect); \
d45ae1f7 Steven Rostedt (VMware 2017-01-17 34) ftrace_likely_update(&______f, ______r, \
d45ae1f7 Steven Rostedt (VMware 2017-01-17 35) expect, is_constant); \
1f0d69a9 Steven Rostedt 2008-11-12 36 ______r; \
1f0d69a9 Steven Rostedt 2008-11-12 37 })
1f0d69a9 Steven Rostedt 2008-11-12 38

:::::: The code at line 33 was first introduced by commit
:::::: d45ae1f7041ac52ade6c5ec76d96bbed765d67aa tracing: Process constants for (un)likely() profiler

:::::: TO: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
:::::: CC: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip