* drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
@ 2022-01-02 15:09 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-01-02 15:09 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 21608 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Chris Down <chris@chrisdown.name>
CC: Petr Mladek <pmladek@suse.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 278218f6778bc7d6f8b67199446c56cec7ebb841
commit: 337015573718b161891a3473d25f59273f2e626b printk: Userspace format indexing support
date: 6 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 6 months ago
config: riscv-randconfig-c006-20211229 (https://download.01.org/0day-ci/archive/20220102/202201022245.dCg0sgVX-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project cd284b7ac0615afc6e0f1a30da2777e361de27a3)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=337015573718b161891a3473d25f59273f2e626b
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 337015573718b161891a3473d25f59273f2e626b
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
8 warnings generated.
Suppressed 8 warnings (7 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
Suppressed 9 warnings (8 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
Suppressed 9 warnings (8 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (7 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
Suppressed 9 warnings (8 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (7 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (7 in non-user code, 1 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
drivers/char/hw_random/ixp4xx-rng.c:44:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct device *dev = &pdev->dev;
^~~ ~~~~~~~~~~
drivers/char/hw_random/ixp4xx-rng.c:44:17: note: Value stored to 'dev' during its initialization is never read
struct device *dev = &pdev->dev;
^~~ ~~~~~~~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
drivers/gpu/drm/radeon/radeon_drv.c:467:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = radeon_resume_kms(drm_dev, false, false);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_drv.c:467:2: note: Value stored to 'ret' is never read
ret = radeon_resume_kms(drm_dev, false, false);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
58 warnings generated.
>> drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2765:6: note: Assuming the condition is true
if (atom_parse_data_header(mode_info->atom_context, index, NULL,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2765:2: note: Taking true branch
if (atom_parse_data_header(mode_info->atom_context, index, NULL,
^
drivers/gpu/drm/radeon/radeon_atombios.c:2767:3: note: Control jumps to 'case 5:' at line 2774
switch (frev) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2776:4: note: Execution continues on line 2785
break;
^
drivers/gpu/drm/radeon/radeon_atombios.c:2785:6: note: 'state_index' is equal to 0
if (state_index == 0) {
^~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2785:2: note: Taking true branch
if (state_index == 0) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2786:26: note: Calling 'kzalloc'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Calling 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:579:2: note: Taking false branch
if (__builtin_constant_p(size)) {
^
include/linux/slab.h:596:2: note: Returning pointer
return __kmalloc(size, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Returning from 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:2: note: Returning pointer
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2786:26: note: Returning from 'kzalloc'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2786:3: note: Value assigned to field 'power_state'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2787:7: note: Assuming field 'power_state' is null
if (rdev->pm.power_state) {
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2787:3: note: Taking false branch
if (rdev->pm.power_state) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2814:6: note: Assuming field 'default_power_state_index' is >= 0
if (rdev->pm.default_power_state_index >= 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2814:2: note: Taking true branch
if (rdev->pm.default_power_state_index >= 0)
^
drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: note: Dereference of null pointer
rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 57 warnings (8 in non-user code, 49 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
drivers/tty/serial/fsl_lpuart.c:1230:33: warning: The result of the left shift is undefined because the right operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
sport->rx_dma_rng_buf_len = (1 << (fls(sport->rx_dma_rng_buf_len) - 1));
^
drivers/tty/serial/fsl_lpuart.c:2803:6: note: Assuming field 'suspended' is 0
if (sport->port.suspended && !irq_wake)
^~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/fsl_lpuart.c:2803:28: note: Left side of '&&' is false
if (sport->port.suspended && !irq_wake)
^
drivers/tty/serial/fsl_lpuart.c:2806:2: note: Taking true branch
if (lpuart_is_32(sport))
^
drivers/tty/serial/fsl_lpuart.c:2811:6: note: Assuming field 'lpuart_dma_rx_use' is true
if (sport->lpuart_dma_rx_use) {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/fsl_lpuart.c:2811:2: note: Taking true branch
if (sport->lpuart_dma_rx_use) {
^
drivers/tty/serial/fsl_lpuart.c:2812:7: note: Assuming 'irq_wake' is true
if (irq_wake) {
vim +2816 drivers/gpu/drm/radeon/radeon_atombios.c
b0e664140a1703 Alex Deucher 2010-11-22 2754
560154e9a27f2f Alex Deucher 2010-11-22 2755 void radeon_atombios_get_power_modes(struct radeon_device *rdev)
560154e9a27f2f Alex Deucher 2010-11-22 2756 {
560154e9a27f2f Alex Deucher 2010-11-22 2757 struct radeon_mode_info *mode_info = &rdev->mode_info;
560154e9a27f2f Alex Deucher 2010-11-22 2758 int index = GetIndexIntoMasterTable(DATA, PowerPlayInfo);
560154e9a27f2f Alex Deucher 2010-11-22 2759 u16 data_offset;
560154e9a27f2f Alex Deucher 2010-11-22 2760 u8 frev, crev;
560154e9a27f2f Alex Deucher 2010-11-22 2761 int state_index = 0;
560154e9a27f2f Alex Deucher 2010-11-22 2762
560154e9a27f2f Alex Deucher 2010-11-22 2763 rdev->pm.default_power_state_index = -1;
560154e9a27f2f Alex Deucher 2010-11-22 2764
560154e9a27f2f Alex Deucher 2010-11-22 2765 if (atom_parse_data_header(mode_info->atom_context, index, NULL,
560154e9a27f2f Alex Deucher 2010-11-22 2766 &frev, &crev, &data_offset)) {
560154e9a27f2f Alex Deucher 2010-11-22 2767 switch (frev) {
560154e9a27f2f Alex Deucher 2010-11-22 2768 case 1:
560154e9a27f2f Alex Deucher 2010-11-22 2769 case 2:
560154e9a27f2f Alex Deucher 2010-11-22 2770 case 3:
560154e9a27f2f Alex Deucher 2010-11-22 2771 state_index = radeon_atombios_parse_power_table_1_3(rdev);
560154e9a27f2f Alex Deucher 2010-11-22 2772 break;
560154e9a27f2f Alex Deucher 2010-11-22 2773 case 4:
560154e9a27f2f Alex Deucher 2010-11-22 2774 case 5:
560154e9a27f2f Alex Deucher 2010-11-22 2775 state_index = radeon_atombios_parse_power_table_4_5(rdev);
560154e9a27f2f Alex Deucher 2010-11-22 2776 break;
b0e664140a1703 Alex Deucher 2010-11-22 2777 case 6:
b0e664140a1703 Alex Deucher 2010-11-22 2778 state_index = radeon_atombios_parse_power_table_6(rdev);
b0e664140a1703 Alex Deucher 2010-11-22 2779 break;
560154e9a27f2f Alex Deucher 2010-11-22 2780 default:
560154e9a27f2f Alex Deucher 2010-11-22 2781 break;
56278a8edacee9 Alex Deucher 2009-12-28 2782 }
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2783 }
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2784
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2785 if (state_index == 0) {
0975b16274bad1 Alex Deucher 2011-02-02 2786 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
0975b16274bad1 Alex Deucher 2011-02-02 2787 if (rdev->pm.power_state) {
8f3f1c9a22a642 Alex Deucher 2011-11-04 2788 rdev->pm.power_state[0].clock_info =
6396bb221514d2 Kees Cook 2018-06-12 2789 kcalloc(1,
6396bb221514d2 Kees Cook 2018-06-12 2790 sizeof(struct radeon_pm_clock_info),
6396bb221514d2 Kees Cook 2018-06-12 2791 GFP_KERNEL);
8f3f1c9a22a642 Alex Deucher 2011-11-04 2792 if (rdev->pm.power_state[0].clock_info) {
56278a8edacee9 Alex Deucher 2009-12-28 2793 /* add the default mode */
0ec0e74f784ca0 Alex Deucher 2009-12-23 2794 rdev->pm.power_state[state_index].type =
0ec0e74f784ca0 Alex Deucher 2009-12-23 2795 POWER_STATE_TYPE_DEFAULT;
56278a8edacee9 Alex Deucher 2009-12-28 2796 rdev->pm.power_state[state_index].num_clock_modes = 1;
56278a8edacee9 Alex Deucher 2009-12-28 2797 rdev->pm.power_state[state_index].clock_info[0].mclk = rdev->clock.default_mclk;
56278a8edacee9 Alex Deucher 2009-12-28 2798 rdev->pm.power_state[state_index].clock_info[0].sclk = rdev->clock.default_sclk;
56278a8edacee9 Alex Deucher 2009-12-28 2799 rdev->pm.power_state[state_index].default_clock_mode =
56278a8edacee9 Alex Deucher 2009-12-28 2800 &rdev->pm.power_state[state_index].clock_info[0];
56278a8edacee9 Alex Deucher 2009-12-28 2801 rdev->pm.power_state[state_index].clock_info[0].voltage.type = VOLTAGE_NONE;
79daedc942813c Alex Deucher 2010-04-22 2802 rdev->pm.power_state[state_index].pcie_lanes = 16;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2803 rdev->pm.default_power_state_index = state_index;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2804 rdev->pm.power_state[state_index].flags = 0;
56278a8edacee9 Alex Deucher 2009-12-28 2805 state_index++;
56278a8edacee9 Alex Deucher 2009-12-28 2806 }
0975b16274bad1 Alex Deucher 2011-02-02 2807 }
8f3f1c9a22a642 Alex Deucher 2011-11-04 2808 }
02b17cc05372ab Alex Deucher 2010-04-22 2809
56278a8edacee9 Alex Deucher 2009-12-28 2810 rdev->pm.num_power_states = state_index;
771fe6b912fca5 Jerome Glisse 2009-06-05 2811
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2812 rdev->pm.current_power_state_index = rdev->pm.default_power_state_index;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2813 rdev->pm.current_clock_mode_index = 0;
4376eee92e5a83 Alexander Müller 2011-12-30 2814 if (rdev->pm.default_power_state_index >= 0)
4376eee92e5a83 Alexander Müller 2011-12-30 2815 rdev->pm.current_vddc =
4376eee92e5a83 Alexander Müller 2011-12-30 @2816 rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
4376eee92e5a83 Alexander Müller 2011-12-30 2817 else
4376eee92e5a83 Alexander Müller 2011-12-30 2818 rdev->pm.current_vddc = 0;
56278a8edacee9 Alex Deucher 2009-12-28 2819 }
56278a8edacee9 Alex Deucher 2009-12-28 2820
:::::: The code at line 2816 was first introduced by commit
:::::: 4376eee92e5a8332b470040e672ea99cd44c826a drm/radeon/kms/atom: fix possible segfault in pm setup
:::::: TO: Alexander Müller <serveralex@gmail.com>
:::::: CC: Dave Airlie <airlied@redhat.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
^ permalink raw reply [flat|nested] 3+ messages in thread
* drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
@ 2022-03-21 15:46 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-03-21 15:46 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 21287 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Chris Down <chris@chrisdown.name>
CC: Petr Mladek <pmladek@suse.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f443e374ae131c168a065ea1748feac6b2e76613
commit: 337015573718b161891a3473d25f59273f2e626b printk: Userspace format indexing support
date: 8 months ago
:::::: branch date: 20 hours ago
:::::: commit date: 8 months ago
config: arm-randconfig-c002-20220312 (https://download.01.org/0day-ci/archive/20220321/202203212356.tc2ZfUyL-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 276ca87382b8f16a65bddac700202924228982f6)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=337015573718b161891a3473d25f59273f2e626b
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 337015573718b161891a3473d25f59273f2e626b
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/ufs/dir.c:179:2: note: Value stored to 'p' is never read
p = (struct ufs_dir_entry *)(kaddr + offs);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
1 warning generated.
Suppressed 1 warnings (1 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
fs/bfs/dir.c:228:2: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
error = -EPERM;
^ ~~~~~~
fs/bfs/dir.c:228:2: note: Value stored to 'error' is never read
error = -EPERM;
^ ~~~~~~
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
58 warnings generated.
>> drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2765:6: note: Assuming the condition is true
if (atom_parse_data_header(mode_info->atom_context, index, NULL,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2765:2: note: Taking true branch
if (atom_parse_data_header(mode_info->atom_context, index, NULL,
^
drivers/gpu/drm/radeon/radeon_atombios.c:2767:3: note: Control jumps to 'case 5:' at line 2774
switch (frev) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2776:4: note: Execution continues on line 2785
break;
^
drivers/gpu/drm/radeon/radeon_atombios.c:2785:6: note: 'state_index' is equal to 0
if (state_index == 0) {
^~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2785:2: note: Taking true branch
if (state_index == 0) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2786:26: note: Calling 'kzalloc'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Calling 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:579:2: note: Taking false branch
if (__builtin_constant_p(size)) {
^
include/linux/slab.h:596:2: note: Returning pointer
return __kmalloc(size, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Returning from 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:2: note: Returning pointer
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2786:26: note: Returning from 'kzalloc'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2786:3: note: Value assigned to field 'power_state'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2787:7: note: Assuming field 'power_state' is null
if (rdev->pm.power_state) {
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2787:3: note: Taking false branch
if (rdev->pm.power_state) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2814:6: note: Assuming field 'default_power_state_index' is >= 0
if (rdev->pm.default_power_state_index >= 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2814:2: note: Taking true branch
if (rdev->pm.default_power_state_index >= 0)
^
drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: note: Dereference of null pointer
rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 57 warnings (8 in non-user code, 49 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
7 warnings generated.
Suppressed 7 warnings (7 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
6 warnings generated.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
14 warnings generated.
drivers/scsi/sg.c:701:3: warning: 4th function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
printk_ratelimited(KERN_WARNING
^
include/linux/printk.h:628:3: note: expanded from macro 'printk_ratelimited'
printk(fmt, ##__VA_ARGS__); \
^ ~~~~~~~~~~~
include/linux/printk.h:434:44: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^ ~~~~~~~~~~~
include/linux/printk.h:430:3: note: expanded from macro 'printk_index_wrap'
_p_func(_fmt, ##__VA_ARGS__); \
^ ~~~~~~~~~~~
drivers/scsi/sg.c:615:11: note: Calling 'sg_check_file_access'
retval = sg_check_file_access(filp, __func__);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/sg.c:222:22: note: Left side of '&&' is false
if (filp->f_cred != current_real_cred()) {
^
include/linux/cred.h:308:2: note: expanded from macro 'current_real_cred'
rcu_dereference_protected(current->real_cred, 1)
^
include/linux/rcupdate.h:587:2: note: expanded from macro 'rcu_dereference_protected'
__rcu_dereference_protected((p), (c), __rcu)
vim +2816 drivers/gpu/drm/radeon/radeon_atombios.c
b0e664140a1703 Alex Deucher 2010-11-22 2754
560154e9a27f2f Alex Deucher 2010-11-22 2755 void radeon_atombios_get_power_modes(struct radeon_device *rdev)
560154e9a27f2f Alex Deucher 2010-11-22 2756 {
560154e9a27f2f Alex Deucher 2010-11-22 2757 struct radeon_mode_info *mode_info = &rdev->mode_info;
560154e9a27f2f Alex Deucher 2010-11-22 2758 int index = GetIndexIntoMasterTable(DATA, PowerPlayInfo);
560154e9a27f2f Alex Deucher 2010-11-22 2759 u16 data_offset;
560154e9a27f2f Alex Deucher 2010-11-22 2760 u8 frev, crev;
560154e9a27f2f Alex Deucher 2010-11-22 2761 int state_index = 0;
560154e9a27f2f Alex Deucher 2010-11-22 2762
560154e9a27f2f Alex Deucher 2010-11-22 2763 rdev->pm.default_power_state_index = -1;
560154e9a27f2f Alex Deucher 2010-11-22 2764
560154e9a27f2f Alex Deucher 2010-11-22 2765 if (atom_parse_data_header(mode_info->atom_context, index, NULL,
560154e9a27f2f Alex Deucher 2010-11-22 2766 &frev, &crev, &data_offset)) {
560154e9a27f2f Alex Deucher 2010-11-22 2767 switch (frev) {
560154e9a27f2f Alex Deucher 2010-11-22 2768 case 1:
560154e9a27f2f Alex Deucher 2010-11-22 2769 case 2:
560154e9a27f2f Alex Deucher 2010-11-22 2770 case 3:
560154e9a27f2f Alex Deucher 2010-11-22 2771 state_index = radeon_atombios_parse_power_table_1_3(rdev);
560154e9a27f2f Alex Deucher 2010-11-22 2772 break;
560154e9a27f2f Alex Deucher 2010-11-22 2773 case 4:
560154e9a27f2f Alex Deucher 2010-11-22 2774 case 5:
560154e9a27f2f Alex Deucher 2010-11-22 2775 state_index = radeon_atombios_parse_power_table_4_5(rdev);
560154e9a27f2f Alex Deucher 2010-11-22 2776 break;
b0e664140a1703 Alex Deucher 2010-11-22 2777 case 6:
b0e664140a1703 Alex Deucher 2010-11-22 2778 state_index = radeon_atombios_parse_power_table_6(rdev);
b0e664140a1703 Alex Deucher 2010-11-22 2779 break;
560154e9a27f2f Alex Deucher 2010-11-22 2780 default:
560154e9a27f2f Alex Deucher 2010-11-22 2781 break;
56278a8edacee9 Alex Deucher 2009-12-28 2782 }
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2783 }
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2784
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2785 if (state_index == 0) {
0975b16274bad1 Alex Deucher 2011-02-02 2786 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
0975b16274bad1 Alex Deucher 2011-02-02 2787 if (rdev->pm.power_state) {
8f3f1c9a22a642 Alex Deucher 2011-11-04 2788 rdev->pm.power_state[0].clock_info =
6396bb221514d2 Kees Cook 2018-06-12 2789 kcalloc(1,
6396bb221514d2 Kees Cook 2018-06-12 2790 sizeof(struct radeon_pm_clock_info),
6396bb221514d2 Kees Cook 2018-06-12 2791 GFP_KERNEL);
8f3f1c9a22a642 Alex Deucher 2011-11-04 2792 if (rdev->pm.power_state[0].clock_info) {
56278a8edacee9 Alex Deucher 2009-12-28 2793 /* add the default mode */
0ec0e74f784ca0 Alex Deucher 2009-12-23 2794 rdev->pm.power_state[state_index].type =
0ec0e74f784ca0 Alex Deucher 2009-12-23 2795 POWER_STATE_TYPE_DEFAULT;
56278a8edacee9 Alex Deucher 2009-12-28 2796 rdev->pm.power_state[state_index].num_clock_modes = 1;
56278a8edacee9 Alex Deucher 2009-12-28 2797 rdev->pm.power_state[state_index].clock_info[0].mclk = rdev->clock.default_mclk;
56278a8edacee9 Alex Deucher 2009-12-28 2798 rdev->pm.power_state[state_index].clock_info[0].sclk = rdev->clock.default_sclk;
56278a8edacee9 Alex Deucher 2009-12-28 2799 rdev->pm.power_state[state_index].default_clock_mode =
56278a8edacee9 Alex Deucher 2009-12-28 2800 &rdev->pm.power_state[state_index].clock_info[0];
56278a8edacee9 Alex Deucher 2009-12-28 2801 rdev->pm.power_state[state_index].clock_info[0].voltage.type = VOLTAGE_NONE;
79daedc942813c Alex Deucher 2010-04-22 2802 rdev->pm.power_state[state_index].pcie_lanes = 16;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2803 rdev->pm.default_power_state_index = state_index;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2804 rdev->pm.power_state[state_index].flags = 0;
56278a8edacee9 Alex Deucher 2009-12-28 2805 state_index++;
56278a8edacee9 Alex Deucher 2009-12-28 2806 }
0975b16274bad1 Alex Deucher 2011-02-02 2807 }
8f3f1c9a22a642 Alex Deucher 2011-11-04 2808 }
02b17cc05372ab Alex Deucher 2010-04-22 2809
56278a8edacee9 Alex Deucher 2009-12-28 2810 rdev->pm.num_power_states = state_index;
771fe6b912fca5 Jerome Glisse 2009-06-05 2811
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2812 rdev->pm.current_power_state_index = rdev->pm.default_power_state_index;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2813 rdev->pm.current_clock_mode_index = 0;
4376eee92e5a83 Alexander Müller 2011-12-30 2814 if (rdev->pm.default_power_state_index >= 0)
4376eee92e5a83 Alexander Müller 2011-12-30 2815 rdev->pm.current_vddc =
4376eee92e5a83 Alexander Müller 2011-12-30 @2816 rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
4376eee92e5a83 Alexander Müller 2011-12-30 2817 else
4376eee92e5a83 Alexander Müller 2011-12-30 2818 rdev->pm.current_vddc = 0;
56278a8edacee9 Alex Deucher 2009-12-28 2819 }
56278a8edacee9 Alex Deucher 2009-12-28 2820
:::::: The code at line 2816 was first introduced by commit
:::::: 4376eee92e5a8332b470040e672ea99cd44c826a drm/radeon/kms/atom: fix possible segfault in pm setup
:::::: TO: Alexander Müller <serveralex@gmail.com>
:::::: CC: Dave Airlie <airlied@redhat.com>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] 3+ messages in thread
* drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
@ 2022-04-30 17:41 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-04-30 17:41 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 21648 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Chris Down <chris@chrisdown.name>
CC: Petr Mladek <pmladek@suse.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8013d1d3d2e33236dee13a133fba49ad55045e79
commit: 337015573718b161891a3473d25f59273f2e626b printk: Userspace format indexing support
date: 10 months ago
:::::: branch date: 19 hours ago
:::::: commit date: 10 months ago
config: arm-randconfig-c002-20220428 (https://download.01.org/0day-ci/archive/20220501/202205010156.eMTNAlU0-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c59473aacce38cd7dd77eebceaf3c98c5707ab3b)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=337015573718b161891a3473d25f59273f2e626b
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 337015573718b161891a3473d25f59273f2e626b
# save the config file
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
lib/rbtree_test.c:309:3: warning: Value stored to 'node' is never read [clang-analyzer-deadcode.DeadStores]
node = rb_first(&root.rb_root);
^ ~~~~~~~~~~~~~~~~~~~~~~~
lib/rbtree_test.c:309:3: note: Value stored to 'node' is never read
node = rb_first(&root.rb_root);
^ ~~~~~~~~~~~~~~~~~~~~~~~
lib/rbtree_test.c:321:3: warning: Value stored to 'node' is never read [clang-analyzer-deadcode.DeadStores]
node = rb_first_cached(&root);
^
lib/rbtree_test.c:321:3: note: Value stored to 'node' is never read
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
9 warnings generated.
drivers/gpu/drm/radeon/radeon_drv.c:467:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = radeon_resume_kms(drm_dev, false, false);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_drv.c:467:2: note: Value stored to 'ret' is never read
ret = radeon_resume_kms(drm_dev, false, false);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
58 warnings generated.
>> drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: warning: Dereference of null pointer [clang-analyzer-core.NullDereference]
rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2765:6: note: Assuming the condition is true
if (atom_parse_data_header(mode_info->atom_context, index, NULL,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2765:2: note: Taking true branch
if (atom_parse_data_header(mode_info->atom_context, index, NULL,
^
drivers/gpu/drm/radeon/radeon_atombios.c:2767:3: note: Control jumps to 'case 5:' at line 2774
switch (frev) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2776:4: note: Execution continues on line 2785
break;
^
drivers/gpu/drm/radeon/radeon_atombios.c:2785:6: note: 'state_index' is equal to 0
if (state_index == 0) {
^~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2785:2: note: Taking true branch
if (state_index == 0) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2786:26: note: Calling 'kzalloc'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Calling 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:579:2: note: Taking false branch
if (__builtin_constant_p(size)) {
^
include/linux/slab.h:596:2: note: Returning pointer
return __kmalloc(size, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:9: note: Returning from 'kmalloc'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:721:2: note: Returning pointer
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2786:26: note: Returning from 'kzalloc'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2786:3: note: Value assigned to field 'power_state'
rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2787:7: note: Assuming field 'power_state' is null
if (rdev->pm.power_state) {
^~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2787:3: note: Taking false branch
if (rdev->pm.power_state) {
^
drivers/gpu/drm/radeon/radeon_atombios.c:2814:6: note: Assuming field 'default_power_state_index' is >= 0
if (rdev->pm.default_power_state_index >= 0)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/radeon/radeon_atombios.c:2814:2: note: Taking true branch
if (rdev->pm.default_power_state_index >= 0)
^
drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: note: Dereference of null pointer
rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suppressed 57 warnings (8 in non-user code, 49 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
21 warnings generated.
kernel/sched/core.c:5206:16: warning: Value stored to 'preempt_disable_ip' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
unsigned long preempt_disable_ip = get_preempt_disable_ip(current);
^~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/core.c:5206:16: note: Value stored to 'preempt_disable_ip' during its initialization is never read
unsigned long preempt_disable_ip = get_preempt_disable_ip(current);
^~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/core.c:5940:3: warning: Value stored to 'rq' is never read [clang-analyzer-deadcode.DeadStores]
rq = context_switch(rq, prev, next, &rf);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/core.c:5940:3: note: Value stored to 'rq' is never read
rq = context_switch(rq, prev, next, &rf);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/sched/core.c:8938:3: warning: Value stored to 'ptr' is never read [clang-analyzer-deadcode.DeadStores]
ptr += nr_cpu_ids * sizeof(void **);
^
kernel/sched/core.c:8938:3: note: Value stored to 'ptr' is never read
Suppressed 18 warnings (12 in non-user code, 6 with check filters).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
11 warnings generated.
kernel/sched/cputime.c:570:3: warning: Value stored to 'utime' is never read [clang-analyzer-deadcode.DeadStores]
utime = rtime;
^ ~~~~~
kernel/sched/cputime.c:570:3: note: Value stored to 'utime' is never read
utime = rtime;
^ ~~~~~
Suppressed 10 warnings (10 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
10 warnings generated.
Suppressed 10 warnings (10 in non-user code).
vim +2816 drivers/gpu/drm/radeon/radeon_atombios.c
b0e664140a1703 Alex Deucher 2010-11-22 2754
560154e9a27f2f Alex Deucher 2010-11-22 2755 void radeon_atombios_get_power_modes(struct radeon_device *rdev)
560154e9a27f2f Alex Deucher 2010-11-22 2756 {
560154e9a27f2f Alex Deucher 2010-11-22 2757 struct radeon_mode_info *mode_info = &rdev->mode_info;
560154e9a27f2f Alex Deucher 2010-11-22 2758 int index = GetIndexIntoMasterTable(DATA, PowerPlayInfo);
560154e9a27f2f Alex Deucher 2010-11-22 2759 u16 data_offset;
560154e9a27f2f Alex Deucher 2010-11-22 2760 u8 frev, crev;
560154e9a27f2f Alex Deucher 2010-11-22 2761 int state_index = 0;
560154e9a27f2f Alex Deucher 2010-11-22 2762
560154e9a27f2f Alex Deucher 2010-11-22 2763 rdev->pm.default_power_state_index = -1;
560154e9a27f2f Alex Deucher 2010-11-22 2764
560154e9a27f2f Alex Deucher 2010-11-22 2765 if (atom_parse_data_header(mode_info->atom_context, index, NULL,
560154e9a27f2f Alex Deucher 2010-11-22 2766 &frev, &crev, &data_offset)) {
560154e9a27f2f Alex Deucher 2010-11-22 2767 switch (frev) {
560154e9a27f2f Alex Deucher 2010-11-22 2768 case 1:
560154e9a27f2f Alex Deucher 2010-11-22 2769 case 2:
560154e9a27f2f Alex Deucher 2010-11-22 2770 case 3:
560154e9a27f2f Alex Deucher 2010-11-22 2771 state_index = radeon_atombios_parse_power_table_1_3(rdev);
560154e9a27f2f Alex Deucher 2010-11-22 2772 break;
560154e9a27f2f Alex Deucher 2010-11-22 2773 case 4:
560154e9a27f2f Alex Deucher 2010-11-22 2774 case 5:
560154e9a27f2f Alex Deucher 2010-11-22 2775 state_index = radeon_atombios_parse_power_table_4_5(rdev);
560154e9a27f2f Alex Deucher 2010-11-22 2776 break;
b0e664140a1703 Alex Deucher 2010-11-22 2777 case 6:
b0e664140a1703 Alex Deucher 2010-11-22 2778 state_index = radeon_atombios_parse_power_table_6(rdev);
b0e664140a1703 Alex Deucher 2010-11-22 2779 break;
560154e9a27f2f Alex Deucher 2010-11-22 2780 default:
560154e9a27f2f Alex Deucher 2010-11-22 2781 break;
56278a8edacee9 Alex Deucher 2009-12-28 2782 }
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2783 }
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2784
f8e6bfc2ce1628 Alex Deucher 2013-04-25 2785 if (state_index == 0) {
0975b16274bad1 Alex Deucher 2011-02-02 2786 rdev->pm.power_state = kzalloc(sizeof(struct radeon_power_state), GFP_KERNEL);
0975b16274bad1 Alex Deucher 2011-02-02 2787 if (rdev->pm.power_state) {
8f3f1c9a22a642 Alex Deucher 2011-11-04 2788 rdev->pm.power_state[0].clock_info =
6396bb221514d2 Kees Cook 2018-06-12 2789 kcalloc(1,
6396bb221514d2 Kees Cook 2018-06-12 2790 sizeof(struct radeon_pm_clock_info),
6396bb221514d2 Kees Cook 2018-06-12 2791 GFP_KERNEL);
8f3f1c9a22a642 Alex Deucher 2011-11-04 2792 if (rdev->pm.power_state[0].clock_info) {
56278a8edacee9 Alex Deucher 2009-12-28 2793 /* add the default mode */
0ec0e74f784ca0 Alex Deucher 2009-12-23 2794 rdev->pm.power_state[state_index].type =
0ec0e74f784ca0 Alex Deucher 2009-12-23 2795 POWER_STATE_TYPE_DEFAULT;
56278a8edacee9 Alex Deucher 2009-12-28 2796 rdev->pm.power_state[state_index].num_clock_modes = 1;
56278a8edacee9 Alex Deucher 2009-12-28 2797 rdev->pm.power_state[state_index].clock_info[0].mclk = rdev->clock.default_mclk;
56278a8edacee9 Alex Deucher 2009-12-28 2798 rdev->pm.power_state[state_index].clock_info[0].sclk = rdev->clock.default_sclk;
56278a8edacee9 Alex Deucher 2009-12-28 2799 rdev->pm.power_state[state_index].default_clock_mode =
56278a8edacee9 Alex Deucher 2009-12-28 2800 &rdev->pm.power_state[state_index].clock_info[0];
56278a8edacee9 Alex Deucher 2009-12-28 2801 rdev->pm.power_state[state_index].clock_info[0].voltage.type = VOLTAGE_NONE;
79daedc942813c Alex Deucher 2010-04-22 2802 rdev->pm.power_state[state_index].pcie_lanes = 16;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2803 rdev->pm.default_power_state_index = state_index;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2804 rdev->pm.power_state[state_index].flags = 0;
56278a8edacee9 Alex Deucher 2009-12-28 2805 state_index++;
56278a8edacee9 Alex Deucher 2009-12-28 2806 }
0975b16274bad1 Alex Deucher 2011-02-02 2807 }
8f3f1c9a22a642 Alex Deucher 2011-11-04 2808 }
02b17cc05372ab Alex Deucher 2010-04-22 2809
56278a8edacee9 Alex Deucher 2009-12-28 2810 rdev->pm.num_power_states = state_index;
771fe6b912fca5 Jerome Glisse 2009-06-05 2811
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2812 rdev->pm.current_power_state_index = rdev->pm.default_power_state_index;
a48b9b4edb8bb8 Alex Deucher 2010-04-22 2813 rdev->pm.current_clock_mode_index = 0;
4376eee92e5a83 Alexander Müller 2011-12-30 2814 if (rdev->pm.default_power_state_index >= 0)
4376eee92e5a83 Alexander Müller 2011-12-30 2815 rdev->pm.current_vddc =
4376eee92e5a83 Alexander Müller 2011-12-30 @2816 rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
4376eee92e5a83 Alexander Müller 2011-12-30 2817 else
4376eee92e5a83 Alexander Müller 2011-12-30 2818 rdev->pm.current_vddc = 0;
56278a8edacee9 Alex Deucher 2009-12-28 2819 }
56278a8edacee9 Alex Deucher 2009-12-28 2820
:::::: The code at line 2816 was first introduced by commit
:::::: 4376eee92e5a8332b470040e672ea99cd44c826a drm/radeon/kms/atom: fix possible segfault in pm setup
:::::: TO: Alexander Müller <serveralex@gmail.com>
:::::: CC: Dave Airlie <airlied@redhat.com>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-04-30 17:41 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-30 17:41 drivers/gpu/drm/radeon/radeon_atombios.c:2816:4: warning: Dereference of null pointer [clang-analyzer-core.NullDereference] kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2022-03-21 15:46 kernel test robot
2022-01-02 15:09 kernel test robot
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.