All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/media/platform/amphion/vpu_msgs.c:138:11: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
@ 2022-05-01  4:29 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-05-01  4:29 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 16465 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: Ming Qian <ming.qian@nxp.com>
CC: Hans Verkuil <hverkuil@xs4all.nl>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   57ae8a492116910bad2b3497ffe555b3a4b4180f
commit: 42356ecbdb69e49cffd0c1df791280965f9f90e1 media: amphion: add amphion vpu entry in Kconfig and Makefile
date:   8 weeks ago
:::::: branch date: 11 hours ago
:::::: commit date: 8 weeks ago
config: arm-randconfig-c002-20220427 (https://download.01.org/0day-ci/archive/20220501/202205011201.ePEvrkWw-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 1cddcfdc3c683b393df1a5c9063252eb60e52818)
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=42356ecbdb69e49cffd0c1df791280965f9f90e1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 42356ecbdb69e49cffd0c1df791280965f9f90e1
        # 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 >>)
                   ^
   include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
           printk_index_subsys_emit("%s %s: ", level, fmt)
           ^
   include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
           __printk_index_emit(fmt, level, subsys_fmt_prefix)
           ^
   include/linux/printk.h:383:14: note: expanded from macro '__printk_index_emit'
                                   .level = __builtin_constant_p(_level) ? (_level) : NULL, \
                                            ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Loop condition is false.  Exiting loop
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:359:4: note: expanded from macro 'vpu_trace'
                           dev_info(dev, "%s: " fmt, __func__, ## arg);    \
                           ^
   include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
           dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
                   dev_printk_index_emit(level, fmt);                      \
                   ^
   include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
           printk_index_subsys_emit("%s %s: ", level, fmt)
           ^
   include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
           __printk_index_emit(fmt, level, subsys_fmt_prefix)
           ^
   include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit'
           do {                                                            \
           ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: 5th function call argument is an uninitialized value
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:359:4: note: expanded from macro 'vpu_trace'
                           dev_info(dev, "%s: " fmt, __func__, ## arg);    \
                           ^                                      ~~~
   include/linux/dev_printk.h:150:24: note: expanded from macro 'dev_info'
           dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
                                 ^                                          ~~~~~~~~~~~
   include/linux/dev_printk.h:110:3: note: expanded from macro 'dev_printk_index_wrap'
                   _p_func(dev, fmt, ##__VA_ARGS__);                       \
                   ^                   ~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:46:2: warning: 2nd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:286:4: note: expanded from macro 'call_void_vop'
                           (inst)->ops->op(inst, ##args);                          \
                           ^                       ~~~~
   drivers/media/platform/amphion/vpu_msgs.c:37:2: note: Calling 'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:6: note: Assuming 'ops' is null
           if (!ops || !ops->unpack_msg_data)
               ^~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:11: note: Left side of '||' is true
           if (!ops || !ops->unpack_msg_data)
                    ^
   drivers/media/platform/amphion/vpu_rpc.h:306:3: note: Returning without writing to 'data->enc_frame_size'
                   return -EINVAL;
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:37:2: note: Returning from 'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Assuming 'debug' is false
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:358:7: note: expanded from macro 'vpu_trace'
                   if (debug)                                              \
                       ^~~~~
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Taking false branch
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:358:3: note: expanded from macro 'vpu_trace'
                   if (debug)                                              \
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Loop condition is false.  Exiting loop
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:357:2: note: expanded from macro 'vpu_trace'
           do {                                                            \
           ^
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: Assuming field 'mem_request' is non-null
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:285:7: note: expanded from macro 'call_void_vop'
                   if ((inst)->ops->op)                                    \
                       ^~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: Taking true branch
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:285:3: note: expanded from macro 'call_void_vop'
                   if ((inst)->ops->op)                                    \
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: 2nd function call argument is an uninitialized value
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:286:4: note: expanded from macro 'call_void_vop'
                           (inst)->ops->op(inst, ##args);                          \
                           ^                       ~~~~
>> drivers/media/platform/amphion/vpu_msgs.c:138:11: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           frame.id = info.id;
                    ^ ~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:135:2: note: Calling 'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:6: note: Assuming 'ops' is null
           if (!ops || !ops->unpack_msg_data)
               ^~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:11: note: Left side of '||' is true
           if (!ops || !ops->unpack_msg_data)
                    ^
   drivers/media/platform/amphion/vpu_rpc.h:306:3: note: Returning without writing to 'data->id'
                   return -EINVAL;
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:135:2: note: Returning from 'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:136:6: note: Assuming field 'type' is not equal to VPU_CORE_TYPE_DEC
           if (inst->core->type == VPU_CORE_TYPE_DEC)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:136:2: note: Taking false branch
           if (inst->core->type == VPU_CORE_TYPE_DEC)
           ^
   drivers/media/platform/amphion/vpu_msgs.c:138:11: note: Assigned value is garbage or undefined
           frame.id = info.id;
                    ^ ~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   4 warnings generated.
   drivers/media/platform/qcom/camss/camss-vfe-170.c:184:6: warning: Value stored to 'gen' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           u32 gen = (hw_version >> 28) & 0xF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:184:6: note: Value stored to 'gen' during its initialization is never read
           u32 gen = (hw_version >> 28) & 0xF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:185:6: warning: Value stored to 'rev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           u32 rev = (hw_version >> 16) & 0xFFF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:185:6: note: Value stored to 'rev' during its initialization is never read
           u32 rev = (hw_version >> 16) & 0xFFF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:186:6: warning: Value stored to 'step' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           u32 step = hw_version & 0xFFFF;
               ^~~~   ~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-170.c:186:6: note: Value stored to 'step' during its initialization is never read
           u32 step = hw_version & 0xFFFF;
               ^~~~   ~~~~~~~~~~~~~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   4 warnings generated.
   drivers/media/platform/qcom/camss/camss-vfe-480.c:101:6: warning: Value stored to 'gen' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           u32 gen = (hw_version >> 28) & 0xF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-480.c:101:6: note: Value stored to 'gen' during its initialization is never read
           u32 gen = (hw_version >> 28) & 0xF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-480.c:102:6: warning: Value stored to 'rev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           u32 rev = (hw_version >> 16) & 0xFFF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-480.c:102:6: note: Value stored to 'rev' during its initialization is never read
           u32 rev = (hw_version >> 16) & 0xFFF;
               ^~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-480.c:103:6: warning: Value stored to 'step' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           u32 step = hw_version & 0xFFFF;
               ^~~~   ~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe-480.c:103:6: note: Value stored to 'step' during its initialization is never read
           u32 step = hw_version & 0xFFFF;
               ^~~~   ~~~~~~~~~~~~~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   Suppressed 1 warnings (1 with check filters).
   2 warnings generated.
   include/media/v4l2-subdev.h:987:10: warning: Access to field 'pads' results in a dereference of a null pointer (loaded from variable 'state') [clang-analyzer-core.NullDereference]
           return &state->pads[pad].try_fmt;
                   ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1533:14: note: Assuming 'i' is < field 'line_num'
           for (i = 0; i < vfe->line_num; i++) {
                       ^~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1533:2: note: Loop condition is true.  Entering loop body
           for (i = 0; i < vfe->line_num; i++) {
           ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1543:7: note: 'i' is not equal to VFE_LINE_PIX
                   if (i == VFE_LINE_PIX)
                       ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1543:3: note: Taking false branch
                   if (i == VFE_LINE_PIX)
                   ^
   drivers/media/platform/qcom/camss/camss-vfe.c:1552:9: note: Calling 'vfe_init_formats'
                   ret = vfe_init_formats(sd, NULL);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/qcom/camss/camss-vfe.c:1260:12: note: 'fh' is null
                   .which = fh ? V4L2_SUBDEV_FORMAT_TRY :
                            ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1260:12: note: '?' condition is false
   drivers/media/platform/qcom/camss/camss-vfe.c:1269:28: note: 'fh' is null
           return vfe_set_format(sd, fh ? fh->state : NULL, &format);
                                     ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1269:28: note: '?' condition is false
   drivers/media/platform/qcom/camss/camss-vfe.c:1269:28: note: Passing null pointer value via 2nd parameter 'sd_state'
           return vfe_set_format(sd, fh ? fh->state : NULL, &format);
                                     ^~
   drivers/media/platform/qcom/camss/camss-vfe.c:1269:9: note: Calling 'vfe_set_format'

vim +138 drivers/media/platform/amphion/vpu_msgs.c

61cbf1c1fa6d74 Ming Qian 2022-02-24  128  
61cbf1c1fa6d74 Ming Qian 2022-02-24  129  static void vpu_session_handle_pic_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24  130  {
61cbf1c1fa6d74 Ming Qian 2022-02-24  131  	struct vpu_dec_pic_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24  132  	struct vpu_frame_info frame;
61cbf1c1fa6d74 Ming Qian 2022-02-24  133  
61cbf1c1fa6d74 Ming Qian 2022-02-24  134  	memset(&frame, 0, sizeof(frame));
61cbf1c1fa6d74 Ming Qian 2022-02-24  135  	vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  136  	if (inst->core->type == VPU_CORE_TYPE_DEC)
61cbf1c1fa6d74 Ming Qian 2022-02-24  137  		frame.type = inst->cap_format.type;
61cbf1c1fa6d74 Ming Qian 2022-02-24 @138  	frame.id = info.id;
61cbf1c1fa6d74 Ming Qian 2022-02-24  139  	frame.luma = info.luma;
61cbf1c1fa6d74 Ming Qian 2022-02-24  140  	frame.skipped = info.skipped;
61cbf1c1fa6d74 Ming Qian 2022-02-24  141  	frame.timestamp = info.timestamp;
61cbf1c1fa6d74 Ming Qian 2022-02-24  142  
61cbf1c1fa6d74 Ming Qian 2022-02-24  143  	call_void_vop(inst, buf_done, &frame);
61cbf1c1fa6d74 Ming Qian 2022-02-24  144  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  145  

:::::: The code at line 138 was first introduced by commit
:::::: 61cbf1c1fa6d74a6a232a365e0aeddcab11036e4 media: amphion: implement vpu core communication based on mailbox

:::::: TO: Ming Qian <ming.qian@nxp.com>
:::::: CC: Hans Verkuil <hverkuil-cisco@xs4all.nl>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 2+ messages in thread

* drivers/media/platform/amphion/vpu_msgs.c:138:11: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
@ 2022-05-03  5:50 kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2022-05-03  5:50 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 22287 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: Ming Qian <ming.qian@nxp.com>
CC: Hans Verkuil <hverkuil@xs4all.nl>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9050ba3a61a4b5bd84c2cde092a100404f814f31
commit: 42356ecbdb69e49cffd0c1df791280965f9f90e1 media: amphion: add amphion vpu entry in Kconfig and Makefile
date:   8 weeks ago
:::::: branch date: 13 hours ago
:::::: commit date: 8 weeks ago
config: arm-randconfig-c002-20220427 (https://download.01.org/0day-ci/archive/20220503/202205031347.87ExTE6s-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 1cddcfdc3c683b393df1a5c9063252eb60e52818)
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=42356ecbdb69e49cffd0c1df791280965f9f90e1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 42356ecbdb69e49cffd0c1df791280965f9f90e1
        # 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 >>)
                   ^
   include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
           printk_index_subsys_emit("%s %s: ", level, fmt)
           ^
   include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
           __printk_index_emit(fmt, level, subsys_fmt_prefix)
           ^
   include/linux/printk.h:383:14: note: expanded from macro '__printk_index_emit'
                                   .level = __builtin_constant_p(_level) ? (_level) : NULL, \
                                            ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Loop condition is false.  Exiting loop
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:359:4: note: expanded from macro 'vpu_trace'
                           dev_info(dev, "%s: " fmt, __func__, ## arg);    \
                           ^
   include/linux/dev_printk.h:150:2: note: expanded from macro 'dev_info'
           dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
           ^
   include/linux/dev_printk.h:109:3: note: expanded from macro 'dev_printk_index_wrap'
                   dev_printk_index_emit(level, fmt);                      \
                   ^
   include/linux/dev_printk.h:105:2: note: expanded from macro 'dev_printk_index_emit'
           printk_index_subsys_emit("%s %s: ", level, fmt)
           ^
   include/linux/printk.h:413:2: note: expanded from macro 'printk_index_subsys_emit'
           __printk_index_emit(fmt, level, subsys_fmt_prefix)
           ^
   include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit'
           do {                                                            \
           ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: 5th function call argument is an uninitialized value
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:359:4: note: expanded from macro 'vpu_trace'
                           dev_info(dev, "%s: " fmt, __func__, ## arg);    \
                           ^                                      ~~~
   include/linux/dev_printk.h:150:24: note: expanded from macro 'dev_info'
           dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
                                 ^                                          ~~~~~~~~~~~
   include/linux/dev_printk.h:110:3: note: expanded from macro 'dev_printk_index_wrap'
                   _p_func(dev, fmt, ##__VA_ARGS__);                       \
                   ^                   ~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:46:2: warning: 2nd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:286:4: note: expanded from macro 'call_void_vop'
                           (inst)->ops->op(inst, ##args);                          \
                           ^                       ~~~~
   drivers/media/platform/amphion/vpu_msgs.c:37:2: note: Calling 'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:6: note: Assuming 'ops' is null
           if (!ops || !ops->unpack_msg_data)
               ^~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:11: note: Left side of '||' is true
           if (!ops || !ops->unpack_msg_data)
                    ^
   drivers/media/platform/amphion/vpu_rpc.h:306:3: note: Returning without writing to 'data->enc_frame_size'
                   return -EINVAL;
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:37:2: note: Returning from 'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Assuming 'debug' is false
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:358:7: note: expanded from macro 'vpu_trace'
                   if (debug)                                              \
                       ^~~~~
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Taking false branch
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:358:3: note: expanded from macro 'vpu_trace'
                   if (debug)                                              \
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:38:2: note: Loop condition is false.  Exiting loop
           vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
           ^
   drivers/media/platform/amphion/vpu.h:357:2: note: expanded from macro 'vpu_trace'
           do {                                                            \
           ^
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: Assuming field 'mem_request' is non-null
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:285:7: note: expanded from macro 'call_void_vop'
                   if ((inst)->ops->op)                                    \
                       ^~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: Taking true branch
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:285:3: note: expanded from macro 'call_void_vop'
                   if ((inst)->ops->op)                                    \
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:46:2: note: 2nd function call argument is an uninitialized value
           call_void_vop(inst, mem_request,
           ^
   drivers/media/platform/amphion/vpu.h:286:4: note: expanded from macro 'call_void_vop'
                           (inst)->ops->op(inst, ##args);                          \
                           ^                       ~~~~
>> drivers/media/platform/amphion/vpu_msgs.c:138:11: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
           frame.id = info.id;
                    ^ ~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:135:2: note: Calling 'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:6: note: Assuming 'ops' is null
           if (!ops || !ops->unpack_msg_data)
               ^~~~
   drivers/media/platform/amphion/vpu_rpc.h:305:11: note: Left side of '||' is true
           if (!ops || !ops->unpack_msg_data)
                    ^
   drivers/media/platform/amphion/vpu_rpc.h:306:3: note: Returning without writing to 'data->id'
                   return -EINVAL;
                   ^
   drivers/media/platform/amphion/vpu_msgs.c:135:2: note: Returning from 'vpu_iface_unpack_msg_data'
           vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:136:6: note: Assuming field 'type' is not equal to VPU_CORE_TYPE_DEC
           if (inst->core->type == VPU_CORE_TYPE_DEC)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/amphion/vpu_msgs.c:136:2: note: Taking false branch
           if (inst->core->type == VPU_CORE_TYPE_DEC)
           ^
   drivers/media/platform/amphion/vpu_msgs.c:138:11: note: Assigned value is garbage or undefined
           frame.id = info.id;
                    ^ ~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   fs/btrfs/free-space-cache.c:755:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = -1;
           ^     ~~
   fs/btrfs/free-space-cache.c:755:2: note: Value stored to 'ret' is never read
           ret = -1;
           ^     ~~
   1 warning generated.
   fs/btrfs/zlib.c:227:13: warning: The left operand of '!=' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
           while (ret != Z_STREAM_END) {
                  ~~~ ^
   fs/btrfs/zlib.c:99:2: note: 'ret' declared without an initial value
           int ret;
           ^~~~~~~
   fs/btrfs/zlib.c:115:6: note: Assuming the condition is false
           if (Z_OK != zlib_deflateInit(&workspace->strm, workspace->level)) {
               ^
   include/linux/zlib.h:148:25: note: expanded from macro 'Z_OK'
   #define Z_OK            0
                           ^
   fs/btrfs/zlib.c:115:2: note: Taking false branch
           if (Z_OK != zlib_deflateInit(&workspace->strm, workspace->level)) {
           ^
   fs/btrfs/zlib.c:125:6: note: Assuming 'out_page' is not equal to NULL
           if (out_page == NULL) {
               ^~~~~~~~~~~~~~~~
   fs/btrfs/zlib.c:125:2: note: Taking false branch
           if (out_page == NULL) {
           ^
   fs/btrfs/zlib.c:138:9: note: Assuming 'len' is <= field 'total_in'
           while (workspace->strm.total_in < len) {
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/btrfs/zlib.c:138:2: note: Loop condition is false. Execution continues on line 222
           while (workspace->strm.total_in < len) {
           ^
   fs/btrfs/zlib.c:227:13: note: The left operand of '!=' is a garbage value
           while (ret != Z_STREAM_END) {
                  ~~~ ^
   1 warning generated.
   fs/gfs2/file.c:793:3: warning: Value stored to 'pages' is never read [clang-analyzer-deadcode.DeadStores]
                   pages = min(pages, nr_dirtied);
                   ^
   fs/gfs2/file.c:793:3: note: Value stored to 'pages' is never read
   1 warning generated.
   fs/gfs2/ops_fstype.c:852:2: warning: Value stored to 'jindex' is never read [clang-analyzer-deadcode.DeadStores]
           jindex = 0;
           ^        ~
   fs/gfs2/ops_fstype.c:852:2: note: Value stored to 'jindex' is never read
           jindex = 0;
           ^        ~
   2 warnings generated.
   fs/gfs2/inode.c:1493:4: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
                           error = 0;
                           ^       ~
   fs/gfs2/inode.c:1493:4: note: Value stored to 'error' is never read
                           error = 0;
                           ^       ~
   fs/gfs2/inode.c:1558:3: warning: Value stored to 'error' is never read [clang-analyzer-deadcode.DeadStores]
                   error = gfs2_unlink_inode(ndip, ndentry);
                   ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   fs/gfs2/inode.c:1558:3: note: Value stored to 'error' is never read
                   error = gfs2_unlink_inode(ndip, ndentry);
                   ^       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   1 warning generated.
   include/linux/hid.h:1037:9: warning: Access to field 'name' results in a dereference of a null pointer (loaded from variable 'input') [clang-analyzer-core.NullDereference]
                                       input->name, c, type);
                                       ^
   drivers/hid/hid-ite.c:49:7: note: Assuming the condition is true
           if ((quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) &&
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-ite.c:49:6: note: Left side of '&&' is true
           if ((quirks & QUIRK_TOUCHPAD_ON_OFF_REPORT) &&
               ^

vim +138 drivers/media/platform/amphion/vpu_msgs.c

61cbf1c1fa6d74 Ming Qian 2022-02-24   32  
61cbf1c1fa6d74 Ming Qian 2022-02-24   33  static void vpu_session_handle_mem_request(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   34  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   35  	struct vpu_pkt_mem_req_data req_data;
61cbf1c1fa6d74 Ming Qian 2022-02-24   36  
61cbf1c1fa6d74 Ming Qian 2022-02-24   37  	vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&req_data);
61cbf1c1fa6d74 Ming Qian 2022-02-24   38  	vpu_trace(inst->dev, "[%d] %d:%d %d:%d %d:%d\n",
61cbf1c1fa6d74 Ming Qian 2022-02-24   39  		  inst->id,
61cbf1c1fa6d74 Ming Qian 2022-02-24   40  		  req_data.enc_frame_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   41  		  req_data.enc_frame_num,
61cbf1c1fa6d74 Ming Qian 2022-02-24   42  		  req_data.ref_frame_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   43  		  req_data.ref_frame_num,
61cbf1c1fa6d74 Ming Qian 2022-02-24   44  		  req_data.act_buf_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   45  		  req_data.act_buf_num);
61cbf1c1fa6d74 Ming Qian 2022-02-24  @46  	call_void_vop(inst, mem_request,
61cbf1c1fa6d74 Ming Qian 2022-02-24   47  		      req_data.enc_frame_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   48  		      req_data.enc_frame_num,
61cbf1c1fa6d74 Ming Qian 2022-02-24   49  		      req_data.ref_frame_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   50  		      req_data.ref_frame_num,
61cbf1c1fa6d74 Ming Qian 2022-02-24   51  		      req_data.act_buf_size,
61cbf1c1fa6d74 Ming Qian 2022-02-24   52  		      req_data.act_buf_num);
61cbf1c1fa6d74 Ming Qian 2022-02-24   53  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   54  
61cbf1c1fa6d74 Ming Qian 2022-02-24   55  static void vpu_session_handle_stop_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   56  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   57  	vpu_trace(inst->dev, "[%d]\n", inst->id);
61cbf1c1fa6d74 Ming Qian 2022-02-24   58  
61cbf1c1fa6d74 Ming Qian 2022-02-24   59  	call_void_vop(inst, stop_done);
61cbf1c1fa6d74 Ming Qian 2022-02-24   60  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   61  
61cbf1c1fa6d74 Ming Qian 2022-02-24   62  static void vpu_session_handle_seq_hdr(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   63  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   64  	struct vpu_dec_codec_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24   65  	const struct vpu_core_resources *res;
61cbf1c1fa6d74 Ming Qian 2022-02-24   66  
61cbf1c1fa6d74 Ming Qian 2022-02-24   67  	memset(&info, 0, sizeof(info));
61cbf1c1fa6d74 Ming Qian 2022-02-24   68  	res = vpu_get_resource(inst);
61cbf1c1fa6d74 Ming Qian 2022-02-24   69  	info.stride = res ? res->stride : 1;
61cbf1c1fa6d74 Ming Qian 2022-02-24   70  	vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24   71  	call_void_vop(inst, event_notify, VPU_MSG_ID_SEQ_HDR_FOUND, &info);
61cbf1c1fa6d74 Ming Qian 2022-02-24   72  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   73  
61cbf1c1fa6d74 Ming Qian 2022-02-24   74  static void vpu_session_handle_resolution_change(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   75  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   76  	call_void_vop(inst, event_notify, VPU_MSG_ID_RES_CHANGE, NULL);
61cbf1c1fa6d74 Ming Qian 2022-02-24   77  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   78  
61cbf1c1fa6d74 Ming Qian 2022-02-24   79  static void vpu_session_handle_enc_frame_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   80  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   81  	struct vpu_enc_pic_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24   82  
61cbf1c1fa6d74 Ming Qian 2022-02-24   83  	vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24   84  	dev_dbg(inst->dev, "[%d] frame id = %d, wptr = 0x%x, size = %d\n",
61cbf1c1fa6d74 Ming Qian 2022-02-24   85  		inst->id, info.frame_id, info.wptr, info.frame_size);
61cbf1c1fa6d74 Ming Qian 2022-02-24   86  	call_void_vop(inst, get_one_frame, &info);
61cbf1c1fa6d74 Ming Qian 2022-02-24   87  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   88  
61cbf1c1fa6d74 Ming Qian 2022-02-24   89  static void vpu_session_handle_frame_request(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   90  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   91  	struct vpu_fs_info fs;
61cbf1c1fa6d74 Ming Qian 2022-02-24   92  
61cbf1c1fa6d74 Ming Qian 2022-02-24   93  	vpu_iface_unpack_msg_data(inst->core, pkt, &fs);
61cbf1c1fa6d74 Ming Qian 2022-02-24   94  	call_void_vop(inst, event_notify, VPU_MSG_ID_FRAME_REQ, &fs);
61cbf1c1fa6d74 Ming Qian 2022-02-24   95  }
61cbf1c1fa6d74 Ming Qian 2022-02-24   96  
61cbf1c1fa6d74 Ming Qian 2022-02-24   97  static void vpu_session_handle_frame_release(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24   98  {
61cbf1c1fa6d74 Ming Qian 2022-02-24   99  	if (inst->core->type == VPU_CORE_TYPE_ENC) {
61cbf1c1fa6d74 Ming Qian 2022-02-24  100  		struct vpu_frame_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24  101  
61cbf1c1fa6d74 Ming Qian 2022-02-24  102  		memset(&info, 0, sizeof(info));
61cbf1c1fa6d74 Ming Qian 2022-02-24  103  		vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info.sequence);
61cbf1c1fa6d74 Ming Qian 2022-02-24  104  		dev_dbg(inst->dev, "[%d] %d\n", inst->id, info.sequence);
61cbf1c1fa6d74 Ming Qian 2022-02-24  105  		info.type = inst->out_format.type;
61cbf1c1fa6d74 Ming Qian 2022-02-24  106  		call_void_vop(inst, buf_done, &info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  107  	} else if (inst->core->type == VPU_CORE_TYPE_DEC) {
61cbf1c1fa6d74 Ming Qian 2022-02-24  108  		struct vpu_fs_info fs;
61cbf1c1fa6d74 Ming Qian 2022-02-24  109  
61cbf1c1fa6d74 Ming Qian 2022-02-24  110  		vpu_iface_unpack_msg_data(inst->core, pkt, &fs);
61cbf1c1fa6d74 Ming Qian 2022-02-24  111  		call_void_vop(inst, event_notify, VPU_MSG_ID_FRAME_RELEASE, &fs);
61cbf1c1fa6d74 Ming Qian 2022-02-24  112  	}
61cbf1c1fa6d74 Ming Qian 2022-02-24  113  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  114  
61cbf1c1fa6d74 Ming Qian 2022-02-24  115  static void vpu_session_handle_input_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24  116  {
61cbf1c1fa6d74 Ming Qian 2022-02-24  117  	dev_dbg(inst->dev, "[%d]\n", inst->id);
61cbf1c1fa6d74 Ming Qian 2022-02-24  118  	call_void_vop(inst, input_done);
61cbf1c1fa6d74 Ming Qian 2022-02-24  119  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  120  
61cbf1c1fa6d74 Ming Qian 2022-02-24  121  static void vpu_session_handle_pic_decoded(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24  122  {
61cbf1c1fa6d74 Ming Qian 2022-02-24  123  	struct vpu_dec_pic_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24  124  
61cbf1c1fa6d74 Ming Qian 2022-02-24  125  	vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  126  	call_void_vop(inst, get_one_frame, &info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  127  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  128  
61cbf1c1fa6d74 Ming Qian 2022-02-24  129  static void vpu_session_handle_pic_done(struct vpu_inst *inst, struct vpu_rpc_event *pkt)
61cbf1c1fa6d74 Ming Qian 2022-02-24  130  {
61cbf1c1fa6d74 Ming Qian 2022-02-24  131  	struct vpu_dec_pic_info info;
61cbf1c1fa6d74 Ming Qian 2022-02-24  132  	struct vpu_frame_info frame;
61cbf1c1fa6d74 Ming Qian 2022-02-24  133  
61cbf1c1fa6d74 Ming Qian 2022-02-24  134  	memset(&frame, 0, sizeof(frame));
61cbf1c1fa6d74 Ming Qian 2022-02-24  135  	vpu_iface_unpack_msg_data(inst->core, pkt, (void *)&info);
61cbf1c1fa6d74 Ming Qian 2022-02-24  136  	if (inst->core->type == VPU_CORE_TYPE_DEC)
61cbf1c1fa6d74 Ming Qian 2022-02-24  137  		frame.type = inst->cap_format.type;
61cbf1c1fa6d74 Ming Qian 2022-02-24 @138  	frame.id = info.id;
61cbf1c1fa6d74 Ming Qian 2022-02-24  139  	frame.luma = info.luma;
61cbf1c1fa6d74 Ming Qian 2022-02-24  140  	frame.skipped = info.skipped;
61cbf1c1fa6d74 Ming Qian 2022-02-24  141  	frame.timestamp = info.timestamp;
61cbf1c1fa6d74 Ming Qian 2022-02-24  142  
61cbf1c1fa6d74 Ming Qian 2022-02-24  143  	call_void_vop(inst, buf_done, &frame);
61cbf1c1fa6d74 Ming Qian 2022-02-24  144  }
61cbf1c1fa6d74 Ming Qian 2022-02-24  145  

:::::: The code at line 138 was first introduced by commit
:::::: 61cbf1c1fa6d74a6a232a365e0aeddcab11036e4 media: amphion: implement vpu core communication based on mailbox

:::::: TO: Ming Qian <ming.qian@nxp.com>
:::::: CC: Hans Verkuil <hverkuil-cisco@xs4all.nl>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-05-03  5:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-01  4:29 drivers/media/platform/amphion/vpu_msgs.c:138:11: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] kernel test robot
2022-05-03  5:50 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.