All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
@ 2021-12-14  7:23 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-12-14  7:23 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 37082 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Michael Tretter <m.tretter@pengutronix.de>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Hans Verkuil <hverkuil@xs4all.nl>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   5472f14a37421d1bca3dddf33cabd3bd6dbefbbc
commit: d74d4e2359ec7985831192f9b5ee22ed5e55b81c media: allegro: move driver out of staging
date:   11 months ago
:::::: branch date: 9 hours ago
:::::: commit date: 11 months ago
config: riscv-randconfig-c006-20211213 (https://download.01.org/0day-ci/archive/20211214/202112141555.FbypAilI-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a2ddb6c8ac29412b1361810972e15221fa021c)
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=d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        # 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 >>)
   measure_proximity, 
   set_power_state, 
   num_channels, 
   irq_support, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct vcnl4000_chip_spec {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
   drivers/iio/light/vcnl4000.c:132:8: note: Excessive padding in 'struct vcnl4000_chip_spec' (11 padding bytes, where 3 is optimal). Optimal fields order: prod, channels, info, init, measure_light, measure_proximity, set_power_state, num_channels, irq_support, consider reordering the fields or adding explicit padding members
   struct vcnl4000_chip_spec {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~
   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.
   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.
   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.
   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.
   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.
   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.
   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.
   drivers/siox/siox-core.c:240:4: warning: Value stored to 'status' is never read [clang-analyzer-deadcode.DeadStores]
                           status &= ~SIOX_STATUS_WDG;
                           ^         ~~~~~~~~~~~~~~~~
   drivers/siox/siox-core.c:240:4: note: Value stored to 'status' is never read
                           status &= ~SIOX_STATUS_WDG;
                           ^         ~~~~~~~~~~~~~~~~
   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.
   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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   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.
   11 warnings generated.
   fs/gfs2/ops_fstype.c:823:2: warning: Value stored to 'jindex' is never read [clang-analyzer-deadcode.DeadStores]
           jindex = 0;
           ^        ~
   fs/gfs2/ops_fstype.c:823:2: note: Value stored to 'jindex' is never read
           jindex = 0;
           ^        ~
   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.
   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.
   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.
>> drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
                   curr += len;
                   ^       ~~~
   drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: note: Value stored to 'curr' is never read
                   curr += len;
                   ^       ~~~
   Suppressed 9 warnings (9 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.
   drivers/usb/serial/usb-serial.c:1414:2: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
           rc = driver_attach(&udriver->drvwrap.driver);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/serial/usb-serial.c:1414:2: note: Value stored to 'rc' is never read
           rc = driver_attach(&udriver->drvwrap.driver);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 9 warnings (9 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.
   Suppressed 9 warnings (9 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.
   Suppressed 9 warnings (9 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.
   Suppressed 9 warnings (9 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.
   Suppressed 9 warnings (9 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.
   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.
   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.
   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.
   11 warnings generated.
   drivers/gpu/drm/drm_modes.c:1768:4: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
                           strcpy(mode->name, drm_named_modes_whitelist[i]);
                           ^~~~~~
   drivers/gpu/drm/drm_modes.c:1768:4: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
                           strcpy(mode->name, drm_named_modes_whitelist[i]);
                           ^~~~~~
   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.
   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.
   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.
   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.
   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.
   8 warnings generated.
   drivers/iio/imu/fxos8700_core.c:167:8: warning: Excessive padding in 'struct fxos8700_data' (106 padding bytes, where 42 is optimal). 
   Optimal fields order: 
   buf, 
   regmap, 
   trig, 

vim +/curr +1593 drivers/media/platform/allegro-dvt/allegro-core.c

09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1470  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1471  static void allegro_channel_finish_frame(struct allegro_channel *channel,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1472  		struct mcu_msg_encode_frame_response *msg)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1473  {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1474  	struct allegro_dev *dev = channel->dev;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1475  	struct vb2_v4l2_buffer *src_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1476  	struct vb2_v4l2_buffer *dst_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1477  	struct {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1478  		u32 offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1479  		u32 size;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1480  	} *partition;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1481  	enum vb2_buffer_state state = VB2_BUF_STATE_ERROR;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1482  	char *curr;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1483  	ssize_t len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1484  	ssize_t free;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1485  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1486  	src_buf = allegro_get_buffer(channel, &channel->source_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1487  				     msg->src_handle);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1488  	if (!src_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1489  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1490  			  "channel %d: invalid source buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1491  			  channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1492  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1493  	dst_buf = allegro_get_buffer(channel, &channel->stream_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1494  				     msg->stream_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1495  	if (!dst_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1496  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1497  			  "channel %d: invalid stream buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1498  			  channel->mcu_channel_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1499  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1500  	if (!src_buf || !dst_buf)
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1501  		goto err;
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1502  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1503  	dst_buf->sequence = channel->csequence++;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1504  
b646f99642b749 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1505  	if (msg->error_code & AL_ERROR) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1506  		v4l2_err(&dev->v4l2_dev,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1507  			 "channel %d: failed to encode frame: %s (%x)\n",
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1508  			 channel->mcu_channel_id,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1509  			 allegro_err_to_string(msg->error_code),
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1510  			 msg->error_code);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1511  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1512  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1513  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1514  	if (msg->partition_table_size != 1) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1515  		v4l2_warn(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1516  			  "channel %d: only handling first partition table entry (%d entries)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1517  			  channel->mcu_channel_id, msg->partition_table_size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1518  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1519  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1520  	if (msg->partition_table_offset +
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1521  	    msg->partition_table_size * sizeof(*partition) >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1522  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1523  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1524  			 "channel %d: partition table outside of dst_buf\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1525  			 channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1526  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1527  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1528  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1529  	partition =
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1530  	    vb2_plane_vaddr(&dst_buf->vb2_buf, 0) + msg->partition_table_offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1531  	if (partition->offset + partition->size >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1532  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1533  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1534  			 "channel %d: encoded frame is outside of dst_buf (offset 0x%x, size 0x%x)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1535  			 channel->mcu_channel_id, partition->offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1536  			 partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1537  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1538  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1539  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1540  	v4l2_dbg(2, debug, &dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1541  		 "channel %d: encoded frame of size %d is at offset 0x%x\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1542  		 channel->mcu_channel_id, partition->size, partition->offset);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1543  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1544  	/*
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1545  	 * The payload must include the data before the partition offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1546  	 * because we will put the sps and pps data there.
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1547  	 */
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1548  	vb2_set_plane_payload(&dst_buf->vb2_buf, 0,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1549  			      partition->offset + partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1550  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1551  	curr = vb2_plane_vaddr(&dst_buf->vb2_buf, 0);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1552  	free = partition->offset;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1553  	if (msg->is_idr) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1554  		len = allegro_h264_write_sps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1555  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1556  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1557  				 "not enough space for sequence parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1558  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1559  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1560  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1561  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1562  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1563  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1564  			 "channel %d: wrote %zd byte SPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1565  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1566  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1567  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1568  	if (msg->slice_type == AL_ENC_SLICE_TYPE_I) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1569  		len = allegro_h264_write_pps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1570  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1571  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1572  				 "not enough space for picture parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1573  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1574  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1575  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1576  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1577  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1578  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1579  			 "channel %d: wrote %zd byte PPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1580  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1581  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1582  
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1583  	if (msg->slice_type != AL_ENC_SLICE_TYPE_I && !msg->is_idr) {
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1584  		dst_buf->vb2_buf.planes[0].data_offset = free;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1585  		free = 0;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1586  	} else {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1587  		len = nal_h264_write_filler(&dev->plat_dev->dev, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1588  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1589  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1590  				 "failed to write %zd filler data\n", free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1591  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1592  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28 @1593  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1594  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1595  		v4l2_dbg(2, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1596  			 "channel %d: wrote %zd bytes filler nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1597  			 channel->mcu_channel_id, len);
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1598  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1599  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1600  	if (free != 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1601  		v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1602  			 "non-VCL NAL units do not fill space until VCL NAL unit: %zd bytes left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1603  			 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1604  		goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1605  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1606  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1607  	state = VB2_BUF_STATE_DONE;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1608  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1609  	v4l2_m2m_buf_copy_metadata(src_buf, dst_buf, false);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1610  	if (msg->is_idr)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1611  		dst_buf->flags |= V4L2_BUF_FLAG_KEYFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1612  	else
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1613  		dst_buf->flags |= V4L2_BUF_FLAG_PFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1614  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1615  	v4l2_dbg(1, debug, &dev->v4l2_dev,
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1616  		 "channel %d: encoded frame #%03d (%s%s, QP %d, %d bytes)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1617  		 channel->mcu_channel_id,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1618  		 dst_buf->sequence,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1619  		 msg->is_idr ? "IDR, " : "",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1620  		 msg->slice_type == AL_ENC_SLICE_TYPE_I ? "I slice" :
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1621  		 msg->slice_type == AL_ENC_SLICE_TYPE_P ? "P slice" : "unknown",
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1622  		 msg->qp, partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1623  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1624  err:
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1625  	if (src_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1626  		v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_DONE);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1627  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1628  	if (dst_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1629  		allegro_channel_buf_done(channel, dst_buf, state);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1630  }
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1631  

:::::: The code at line 1593 was first introduced by commit
:::::: 878344de61d0d5f351a1b84fce009a321be3eb45 media: allegro: add SPS/PPS nal unit writer

:::::: TO: Michael Tretter <m.tretter@pengutronix.de>
:::::: CC: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

---
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] 5+ messages in thread

* drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-01-02  7:15 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2022-01-02  7:15 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 37580 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Michael Tretter <m.tretter@pengutronix.de>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Hans Verkuil <hverkuil@xs4all.nl>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   278218f6778bc7d6f8b67199446c56cec7ebb841
commit: d74d4e2359ec7985831192f9b5ee22ed5e55b81c media: allegro: move driver out of staging
date:   12 months ago
:::::: branch date: 13 hours ago
:::::: commit date: 12 months ago
config: riscv-randconfig-c006-20211227 (https://download.01.org/0day-ci/archive/20220102/202201021518.4mEWdid6-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 511726c64d3b6cca66f7c54d457d586aa3129f67)
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=d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        # 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 >>)
   Suppressed 12 warnings (5 in non-user code, 7 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.
   12 warnings generated.
   Suppressed 12 warnings (5 in non-user code, 7 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.
   12 warnings generated.
   Suppressed 12 warnings (5 in non-user code, 7 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.
   14 warnings generated.
   drivers/media/v4l2-core/v4l2-ioctl.c:3331:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
                   err = -EFAULT;
                   ^     ~~~~~~~
   drivers/media/v4l2-core/v4l2-ioctl.c:3331:3: note: Value stored to 'err' is never read
                   err = -EFAULT;
                   ^     ~~~~~~~
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   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.
   12 warnings generated.
   Suppressed 12 warnings (5 in non-user code, 7 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.
   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.
   20 warnings generated.
   Suppressed 20 warnings (13 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   16 warnings generated.
   Suppressed 16 warnings (9 in non-user code, 7 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.
   15 warnings generated.
   drivers/iio/dac/ad5421.c:67:8: warning: Excessive padding in 'struct ad5421_state' (68 padding bytes, where 4 is optimal). 
   Optimal fields order: 
   data, 
   spi, 
   lock, 
   ctrl, 
   current_range, 
   fault_mask, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct ad5421_state {
   ~~~~~~~^~~~~~~~~~~~~~
   drivers/iio/dac/ad5421.c:67:8: note: Excessive padding in 'struct ad5421_state' (68 padding bytes, where 4 is optimal). Optimal fields order: data, spi, lock, ctrl, current_range, fault_mask, consider reordering the fields or adding explicit padding members
   struct ad5421_state {
   ~~~~~~~^~~~~~~~~~~~~~
   Suppressed 14 warnings (7 in non-user code, 7 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.
   15 warnings generated.
   Suppressed 15 warnings (8 in non-user code, 7 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.
   16 warnings generated.
   drivers/iio/dac/ad5504.c:50:8: warning: Excessive padding in 'struct ad5504_state' (98 padding bytes, where 34 is optimal). 
   Optimal fields order: 
   data, 
   pwr_down_mask, 
   spi, 
   reg, 
   pwr_down_mode, 
   vref_mv, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct ad5504_state {
   ~~~~~~~^~~~~~~~~~~~~~
   drivers/iio/dac/ad5504.c:50:8: note: Excessive padding in 'struct ad5504_state' (98 padding bytes, where 34 is optimal). Optimal fields order: data, pwr_down_mask, spi, reg, pwr_down_mode, vref_mv, consider reordering the fields or adding explicit padding members
   struct ad5504_state {
   ~~~~~~~^~~~~~~~~~~~~~
   Suppressed 15 warnings (8 in non-user code, 7 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.
   15 warnings generated.
   Suppressed 15 warnings (8 in non-user code, 7 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.
   15 warnings generated.
   Suppressed 15 warnings (8 in non-user code, 7 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.
   14 warnings generated.
>> drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
                   curr += len;
                   ^       ~~~
   drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: note: Value stored to 'curr' is never read
                   curr += len;
                   ^       ~~~
   Suppressed 13 warnings (6 in non-user code, 7 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.
   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.
   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.
   14 warnings generated.
   drivers/media/platform/aspeed-video.c:429:6: warning: Value stored to 'before' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           u32 before = t;
               ^~~~~~   ~
   drivers/media/platform/aspeed-video.c:429:6: note: Value stored to 'before' during its initialization is never read
           u32 before = t;
               ^~~~~~   ~
   Suppressed 13 warnings (6 in non-user code, 7 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.
   12 warnings generated.
   Suppressed 12 warnings (5 in non-user code, 7 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.
   12 warnings generated.
   Suppressed 12 warnings (5 in non-user code, 7 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.
   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.
   14 warnings generated.
   Suppressed 14 warnings (6 in non-user code, 8 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   12 warnings generated.
   Suppressed 12 warnings (5 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   14 warnings generated.
   Suppressed 14 warnings (7 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   12 warnings generated.
   Suppressed 12 warnings (5 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   12 warnings generated.
   Suppressed 12 warnings (5 in non-user code, 7 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.
   14 warnings generated.
   Suppressed 14 warnings (7 in non-user code, 7 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.
   16 warnings generated.
   Suppressed 16 warnings (8 in non-user code, 8 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.
   17 warnings generated.
   Suppressed 17 warnings (9 in non-user code, 8 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.
   17 warnings generated.
   drivers/iio/imu/inv_mpu6050/inv_mpu_core.c:707:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
                           ret = inv_mpu6050_sensor_show(st, st->reg->gyro_offset,
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/imu/inv_mpu6050/inv_mpu_core.c:707:4: note: Value stored to 'ret' is never read
                           ret = inv_mpu6050_sensor_show(st, st->reg->gyro_offset,
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/imu/inv_mpu6050/inv_mpu_core.c:713:4: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
                           ret = inv_mpu6050_sensor_show(st, st->reg->accl_offset,
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/imu/inv_mpu6050/inv_mpu_core.c:713:4: note: Value stored to 'ret' is never read
                           ret = inv_mpu6050_sensor_show(st, st->reg->accl_offset,
                           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 15 warnings (8 in non-user code, 7 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.
   14 warnings generated.
   Suppressed 14 warnings (7 in non-user code, 7 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.
   14 warnings generated.
   Suppressed 14 warnings (7 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.

vim +/curr +1593 drivers/media/platform/allegro-dvt/allegro-core.c

09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1470  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1471  static void allegro_channel_finish_frame(struct allegro_channel *channel,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1472  		struct mcu_msg_encode_frame_response *msg)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1473  {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1474  	struct allegro_dev *dev = channel->dev;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1475  	struct vb2_v4l2_buffer *src_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1476  	struct vb2_v4l2_buffer *dst_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1477  	struct {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1478  		u32 offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1479  		u32 size;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1480  	} *partition;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1481  	enum vb2_buffer_state state = VB2_BUF_STATE_ERROR;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1482  	char *curr;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1483  	ssize_t len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1484  	ssize_t free;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1485  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1486  	src_buf = allegro_get_buffer(channel, &channel->source_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1487  				     msg->src_handle);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1488  	if (!src_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1489  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1490  			  "channel %d: invalid source buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1491  			  channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1492  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1493  	dst_buf = allegro_get_buffer(channel, &channel->stream_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1494  				     msg->stream_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1495  	if (!dst_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1496  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1497  			  "channel %d: invalid stream buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1498  			  channel->mcu_channel_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1499  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1500  	if (!src_buf || !dst_buf)
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1501  		goto err;
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1502  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1503  	dst_buf->sequence = channel->csequence++;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1504  
b646f99642b749 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1505  	if (msg->error_code & AL_ERROR) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1506  		v4l2_err(&dev->v4l2_dev,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1507  			 "channel %d: failed to encode frame: %s (%x)\n",
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1508  			 channel->mcu_channel_id,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1509  			 allegro_err_to_string(msg->error_code),
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1510  			 msg->error_code);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1511  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1512  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1513  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1514  	if (msg->partition_table_size != 1) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1515  		v4l2_warn(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1516  			  "channel %d: only handling first partition table entry (%d entries)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1517  			  channel->mcu_channel_id, msg->partition_table_size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1518  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1519  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1520  	if (msg->partition_table_offset +
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1521  	    msg->partition_table_size * sizeof(*partition) >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1522  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1523  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1524  			 "channel %d: partition table outside of dst_buf\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1525  			 channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1526  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1527  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1528  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1529  	partition =
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1530  	    vb2_plane_vaddr(&dst_buf->vb2_buf, 0) + msg->partition_table_offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1531  	if (partition->offset + partition->size >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1532  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1533  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1534  			 "channel %d: encoded frame is outside of dst_buf (offset 0x%x, size 0x%x)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1535  			 channel->mcu_channel_id, partition->offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1536  			 partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1537  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1538  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1539  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1540  	v4l2_dbg(2, debug, &dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1541  		 "channel %d: encoded frame of size %d is at offset 0x%x\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1542  		 channel->mcu_channel_id, partition->size, partition->offset);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1543  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1544  	/*
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1545  	 * The payload must include the data before the partition offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1546  	 * because we will put the sps and pps data there.
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1547  	 */
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1548  	vb2_set_plane_payload(&dst_buf->vb2_buf, 0,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1549  			      partition->offset + partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1550  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1551  	curr = vb2_plane_vaddr(&dst_buf->vb2_buf, 0);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1552  	free = partition->offset;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1553  	if (msg->is_idr) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1554  		len = allegro_h264_write_sps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1555  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1556  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1557  				 "not enough space for sequence parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1558  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1559  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1560  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1561  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1562  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1563  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1564  			 "channel %d: wrote %zd byte SPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1565  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1566  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1567  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1568  	if (msg->slice_type == AL_ENC_SLICE_TYPE_I) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1569  		len = allegro_h264_write_pps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1570  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1571  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1572  				 "not enough space for picture parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1573  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1574  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1575  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1576  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1577  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1578  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1579  			 "channel %d: wrote %zd byte PPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1580  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1581  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1582  
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1583  	if (msg->slice_type != AL_ENC_SLICE_TYPE_I && !msg->is_idr) {
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1584  		dst_buf->vb2_buf.planes[0].data_offset = free;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1585  		free = 0;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1586  	} else {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1587  		len = nal_h264_write_filler(&dev->plat_dev->dev, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1588  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1589  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1590  				 "failed to write %zd filler data\n", free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1591  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1592  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28 @1593  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1594  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1595  		v4l2_dbg(2, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1596  			 "channel %d: wrote %zd bytes filler nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1597  			 channel->mcu_channel_id, len);
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1598  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1599  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1600  	if (free != 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1601  		v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1602  			 "non-VCL NAL units do not fill space until VCL NAL unit: %zd bytes left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1603  			 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1604  		goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1605  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1606  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1607  	state = VB2_BUF_STATE_DONE;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1608  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1609  	v4l2_m2m_buf_copy_metadata(src_buf, dst_buf, false);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1610  	if (msg->is_idr)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1611  		dst_buf->flags |= V4L2_BUF_FLAG_KEYFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1612  	else
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1613  		dst_buf->flags |= V4L2_BUF_FLAG_PFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1614  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1615  	v4l2_dbg(1, debug, &dev->v4l2_dev,
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1616  		 "channel %d: encoded frame #%03d (%s%s, QP %d, %d bytes)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1617  		 channel->mcu_channel_id,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1618  		 dst_buf->sequence,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1619  		 msg->is_idr ? "IDR, " : "",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1620  		 msg->slice_type == AL_ENC_SLICE_TYPE_I ? "I slice" :
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1621  		 msg->slice_type == AL_ENC_SLICE_TYPE_P ? "P slice" : "unknown",
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1622  		 msg->qp, partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1623  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1624  err:
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1625  	if (src_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1626  		v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_DONE);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1627  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1628  	if (dst_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1629  		allegro_channel_buf_done(channel, dst_buf, state);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1630  }
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1631  

:::::: The code at line 1593 was first introduced by commit
:::::: 878344de61d0d5f351a1b84fce009a321be3eb45 media: allegro: add SPS/PPS nal unit writer

:::::: TO: Michael Tretter <m.tretter@pengutronix.de>
:::::: CC: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

---
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] 5+ messages in thread

* drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
@ 2022-01-01 12:05 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2022-01-01 12:05 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 36097 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Michael Tretter <m.tretter@pengutronix.de>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Hans Verkuil <hverkuil@xs4all.nl>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   8008293888188c3923f5bd8a69370dae25ed14e5
commit: d74d4e2359ec7985831192f9b5ee22ed5e55b81c media: allegro: move driver out of staging
date:   12 months ago
:::::: branch date: 15 hours ago
:::::: commit date: 12 months ago
config: riscv-randconfig-c006-20211213 (https://download.01.org/0day-ci/archive/20220101/202201012035.ZyRuyUa7-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a2ddb6c8ac29412b1361810972e15221fa021c)
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=d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        # 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 >>)
   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.
   12 warnings generated.
   drivers/media/usb/cx231xx/cx231xx-audio.c:429:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = cx231xx_capture_start(dev, 1, Audio);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/usb/cx231xx/cx231xx-audio.c:429:2: note: Value stored to 'ret' is never read
           ret = cx231xx_capture_start(dev, 1, Audio);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/usb/cx231xx/cx231xx-audio.c:450:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = cx231xx_capture_start(dev, 0, Audio);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/usb/cx231xx/cx231xx-audio.c:450:2: note: Value stored to 'ret' is never read
           ret = cx231xx_capture_start(dev, 0, Audio);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   16 warnings generated.
   Suppressed 16 warnings (16 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.
   12 warnings generated.
   Suppressed 12 warnings (9 in non-user code, 3 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.
   drivers/media/i2c/tvaudio.c:74:8: warning: Excessive padding in 'struct CHIPDESC' (8 padding bytes, where 0 is optimal). 
   Optimal fields order: 
   name, 
   insmodopt, 
   checkit, 
   initialize, 
   volfunc, 
   treblefunc, 
   bassfunc, 
   getrxsubchans, 
   setaudmode, 
   addr_lo, 
   addr_hi, 
   registers, 
   flags, 
   leftreg, 
   rightreg, 
   treblereg, 
   bassreg, 
   volinit, 
   trebleinit, 
   bassinit, 
   inputreg, 
   inputmute, 
   inputmask, 
   inputmap, 
   init, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct CHIPDESC {
   ~~~~~~~^~~~~~~~~~
   drivers/media/i2c/tvaudio.c:74:8: note: Excessive padding in 'struct CHIPDESC' (8 padding bytes, where 0 is optimal). Optimal fields order: name, insmodopt, checkit, initialize, volfunc, treblefunc, bassfunc, getrxsubchans, setaudmode, addr_lo, addr_hi, registers, flags, leftreg, rightreg, treblereg, bassreg, volinit, trebleinit, bassinit, inputreg, inputmute, inputmask, inputmap, init, consider reordering the fields or adding explicit padding members
   struct CHIPDESC {
   ~~~~~~~^~~~~~~~~~
   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.
   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.
   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.
   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.
   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.
>> drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
                   curr += len;
                   ^       ~~~
   drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: note: Value stored to 'curr' is never read
                   curr += len;
                   ^       ~~~
   Suppressed 9 warnings (9 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.
   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.
   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.
   Suppressed 11 warnings (11 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.
   Suppressed 11 warnings (11 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.
   Suppressed 11 warnings (11 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.
   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.
   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.
   drivers/iio/adc/hx711.c:536:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = of_property_read_u32(np, "clock-frequency",
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/adc/hx711.c:536:2: note: Value stored to 'ret' is never read
           ret = of_property_read_u32(np, "clock-frequency",
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.
   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.
   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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   Suppressed 9 warnings (9 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/leds/leds-pca9532.c:514:23: warning: Value stored to 'data' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct pca9532_data *data = i2c_get_clientdata(client);
                                ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/leds/leds-pca9532.c:514:23: note: Value stored to 'data' during its initialization is never read
           struct pca9532_data *data = i2c_get_clientdata(client);
                                ^~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~
   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.

vim +/curr +1593 drivers/media/platform/allegro-dvt/allegro-core.c

09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1470  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1471  static void allegro_channel_finish_frame(struct allegro_channel *channel,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1472  		struct mcu_msg_encode_frame_response *msg)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1473  {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1474  	struct allegro_dev *dev = channel->dev;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1475  	struct vb2_v4l2_buffer *src_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1476  	struct vb2_v4l2_buffer *dst_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1477  	struct {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1478  		u32 offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1479  		u32 size;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1480  	} *partition;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1481  	enum vb2_buffer_state state = VB2_BUF_STATE_ERROR;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1482  	char *curr;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1483  	ssize_t len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1484  	ssize_t free;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1485  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1486  	src_buf = allegro_get_buffer(channel, &channel->source_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1487  				     msg->src_handle);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1488  	if (!src_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1489  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1490  			  "channel %d: invalid source buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1491  			  channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1492  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1493  	dst_buf = allegro_get_buffer(channel, &channel->stream_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1494  				     msg->stream_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1495  	if (!dst_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1496  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1497  			  "channel %d: invalid stream buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1498  			  channel->mcu_channel_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1499  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1500  	if (!src_buf || !dst_buf)
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1501  		goto err;
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1502  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1503  	dst_buf->sequence = channel->csequence++;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1504  
b646f99642b749 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1505  	if (msg->error_code & AL_ERROR) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1506  		v4l2_err(&dev->v4l2_dev,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1507  			 "channel %d: failed to encode frame: %s (%x)\n",
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1508  			 channel->mcu_channel_id,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1509  			 allegro_err_to_string(msg->error_code),
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1510  			 msg->error_code);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1511  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1512  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1513  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1514  	if (msg->partition_table_size != 1) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1515  		v4l2_warn(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1516  			  "channel %d: only handling first partition table entry (%d entries)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1517  			  channel->mcu_channel_id, msg->partition_table_size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1518  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1519  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1520  	if (msg->partition_table_offset +
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1521  	    msg->partition_table_size * sizeof(*partition) >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1522  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1523  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1524  			 "channel %d: partition table outside of dst_buf\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1525  			 channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1526  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1527  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1528  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1529  	partition =
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1530  	    vb2_plane_vaddr(&dst_buf->vb2_buf, 0) + msg->partition_table_offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1531  	if (partition->offset + partition->size >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1532  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1533  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1534  			 "channel %d: encoded frame is outside of dst_buf (offset 0x%x, size 0x%x)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1535  			 channel->mcu_channel_id, partition->offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1536  			 partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1537  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1538  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1539  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1540  	v4l2_dbg(2, debug, &dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1541  		 "channel %d: encoded frame of size %d is at offset 0x%x\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1542  		 channel->mcu_channel_id, partition->size, partition->offset);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1543  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1544  	/*
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1545  	 * The payload must include the data before the partition offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1546  	 * because we will put the sps and pps data there.
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1547  	 */
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1548  	vb2_set_plane_payload(&dst_buf->vb2_buf, 0,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1549  			      partition->offset + partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1550  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1551  	curr = vb2_plane_vaddr(&dst_buf->vb2_buf, 0);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1552  	free = partition->offset;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1553  	if (msg->is_idr) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1554  		len = allegro_h264_write_sps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1555  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1556  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1557  				 "not enough space for sequence parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1558  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1559  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1560  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1561  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1562  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1563  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1564  			 "channel %d: wrote %zd byte SPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1565  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1566  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1567  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1568  	if (msg->slice_type == AL_ENC_SLICE_TYPE_I) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1569  		len = allegro_h264_write_pps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1570  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1571  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1572  				 "not enough space for picture parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1573  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1574  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1575  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1576  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1577  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1578  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1579  			 "channel %d: wrote %zd byte PPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1580  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1581  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1582  
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1583  	if (msg->slice_type != AL_ENC_SLICE_TYPE_I && !msg->is_idr) {
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1584  		dst_buf->vb2_buf.planes[0].data_offset = free;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1585  		free = 0;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1586  	} else {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1587  		len = nal_h264_write_filler(&dev->plat_dev->dev, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1588  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1589  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1590  				 "failed to write %zd filler data\n", free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1591  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1592  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28 @1593  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1594  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1595  		v4l2_dbg(2, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1596  			 "channel %d: wrote %zd bytes filler nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1597  			 channel->mcu_channel_id, len);
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1598  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1599  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1600  	if (free != 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1601  		v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1602  			 "non-VCL NAL units do not fill space until VCL NAL unit: %zd bytes left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1603  			 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1604  		goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1605  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1606  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1607  	state = VB2_BUF_STATE_DONE;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1608  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1609  	v4l2_m2m_buf_copy_metadata(src_buf, dst_buf, false);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1610  	if (msg->is_idr)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1611  		dst_buf->flags |= V4L2_BUF_FLAG_KEYFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1612  	else
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1613  		dst_buf->flags |= V4L2_BUF_FLAG_PFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1614  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1615  	v4l2_dbg(1, debug, &dev->v4l2_dev,
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1616  		 "channel %d: encoded frame #%03d (%s%s, QP %d, %d bytes)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1617  		 channel->mcu_channel_id,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1618  		 dst_buf->sequence,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1619  		 msg->is_idr ? "IDR, " : "",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1620  		 msg->slice_type == AL_ENC_SLICE_TYPE_I ? "I slice" :
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1621  		 msg->slice_type == AL_ENC_SLICE_TYPE_P ? "P slice" : "unknown",
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1622  		 msg->qp, partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1623  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1624  err:
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1625  	if (src_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1626  		v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_DONE);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1627  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1628  	if (dst_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1629  		allegro_channel_buf_done(channel, dst_buf, state);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1630  }
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1631  

:::::: The code at line 1593 was first introduced by commit
:::::: 878344de61d0d5f351a1b84fce009a321be3eb45 media: allegro: add SPS/PPS nal unit writer

:::::: TO: Michael Tretter <m.tretter@pengutronix.de>
:::::: CC: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

---
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] 5+ messages in thread

* drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
@ 2021-12-18  1:58 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-12-18  1:58 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 34836 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Michael Tretter <m.tretter@pengutronix.de>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Hans Verkuil <hverkuil@xs4all.nl>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   6441998e2e37131b0a4c310af9156d79d3351c16
commit: d74d4e2359ec7985831192f9b5ee22ed5e55b81c media: allegro: move driver out of staging
date:   12 months ago
:::::: branch date: 27 hours ago
:::::: commit date: 12 months ago
config: riscv-randconfig-c006-20211213 (https://download.01.org/0day-ci/archive/20211218/202112180923.td2YOXTx-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project b6a2ddb6c8ac29412b1361810972e15221fa021c)
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=d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        # 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 >>)
   drivers/hwmon/tmp401.c:451:8: note: Assuming '__UNIQUE_ID___x212' is > '__UNIQUE_ID___y213'
           val = clamp_val(val, 125, 16000);
                 ^
   include/linux/minmax.h:143:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:130:48: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
                                      ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:118:27: note: expanded from macro 'max_t'
   #define max_t(type, x, y)       __careful_cmp((type)(x), (type)(y), >)
                                   ^
   note: (skipping 3 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
   include/linux/minmax.h:110:48: note: expanded from macro 'min_t'
   #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
                                   ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:44:14: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:37:25: note: expanded from macro '__cmp_once'
                   typeof(x) unique_x = (x);               \
                                         ^
   drivers/hwmon/tmp401.c:451:8: note: '?' condition is true
           val = clamp_val(val, 125, 16000);
                 ^
   include/linux/minmax.h:143:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^
   include/linux/minmax.h:130:48: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
                                                  ^
   include/linux/minmax.h:118:27: note: expanded from macro 'max_t'
   #define max_t(type, x, y)       __careful_cmp((type)(x), (type)(y), >)
                                   ^
   include/linux/minmax.h:44:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:39:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:34:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/hwmon/tmp401.c:451:8: note: Assuming '__UNIQUE_ID___x214' is < '__UNIQUE_ID___y215'
           val = clamp_val(val, 125, 16000);
                 ^
   include/linux/minmax.h:143:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:130:36: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:110:27: note: expanded from macro 'min_t'
   #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:44:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:39:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:34:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^~~~~~~~~~
   drivers/hwmon/tmp401.c:451:8: note: '?' condition is true
           val = clamp_val(val, 125, 16000);
                 ^
   include/linux/minmax.h:143:32: note: expanded from macro 'clamp_val'
   #define clamp_val(val, lo, hi) clamp_t(typeof(val), val, lo, hi)
                                  ^
   include/linux/minmax.h:130:36: note: expanded from macro 'clamp_t'
   #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
                                      ^
   include/linux/minmax.h:110:27: note: expanded from macro 'min_t'
   #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
                                   ^
   include/linux/minmax.h:44:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:39:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:34:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/hwmon/tmp401.c:455:29: note: The result of the left shift is undefined due to shifting by '63', which is greater or equal to the width of type 'int'
           data->update_interval = (1 << (7 - rate)) * 125;
                                      ^  ~~~~~~~~~~
   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.
   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.
>> drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
                   curr += len;
                   ^       ~~~
   drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: note: Value stored to 'curr' is never read
                   curr += len;
                   ^       ~~~
   Suppressed 9 warnings (9 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.
   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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   drivers/media/platform/imx-pxp.c:335:4: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
                           BF_PXP_CSC1_COEF0_UV_OFFSET(-128) |
                           ^
   drivers/media/platform/imx-pxp.h:598:8: note: expanded from macro 'BF_PXP_CSC1_COEF0_UV_OFFSET'
           (((v) << 9) & BM_PXP_CSC1_COEF0_UV_OFFSET)
                 ^
   drivers/media/platform/imx-pxp.c:968:2: note: Calling 'pxp_start'
           pxp_start(ctx, src_buf, dst_buf);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/imx-pxp.c:749:6: note: Assuming 'p_in' is not equal to 0
           if (!p_in || !p_out) {
               ^~~~~
   drivers/media/platform/imx-pxp.c:749:6: note: Left side of '||' is false
   drivers/media/platform/imx-pxp.c:749:15: note: Assuming 'p_out' is not equal to 0
           if (!p_in || !p_out) {
                        ^~~~~~
   drivers/media/platform/imx-pxp.c:749:2: note: Taking false branch
           if (!p_in || !p_out) {
           ^
   drivers/media/platform/imx-pxp.c:760:6: note: Assuming the condition is false
           if (in_vb->flags & V4L2_BUF_FLAG_TIMECODE)
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/imx-pxp.c:760:2: note: Taking false branch
           if (in_vb->flags & V4L2_BUF_FLAG_TIMECODE)
           ^
   drivers/media/platform/imx-pxp.c:771:29: note: Assuming the condition is false
           ctrl = BF_PXP_CTRL_VFLIP0(!!(ctx->mode & MEM2MEM_VFLIP)) |
                                      ^
   drivers/media/platform/imx-pxp.h:84:5: note: expanded from macro 'BF_PXP_CTRL_VFLIP0'
           (((v) << 11) & BM_PXP_CTRL_VFLIP0)
              ^
   drivers/media/platform/imx-pxp.c:772:29: note: Assuming the condition is false
                  BF_PXP_CTRL_HFLIP0(!!(ctx->mode & MEM2MEM_HFLIP));
                                      ^
   drivers/media/platform/imx-pxp.h:87:5: note: expanded from macro 'BF_PXP_CTRL_HFLIP0'
           (((v) << 10) & BM_PXP_CTRL_HFLIP0)
              ^
   drivers/media/platform/imx-pxp.c:778:2: note: Control jumps to the 'default' case at line 785
           switch (dst_fourcc) {
           ^
   drivers/media/platform/imx-pxp.c:800:10: note: Assuming 'src_width' is <= 'dst_width'
           decx = (src_width <= dst_width) ? 0 : ilog2(src_width / dst_width);
                   ^~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/imx-pxp.c:800:9: note: '?' condition is true
           decx = (src_width <= dst_width) ? 0 : ilog2(src_width / dst_width);
                  ^
   drivers/media/platform/imx-pxp.c:801:10: note: Assuming 'src_height' is <= 'dst_height'
           decy = (src_height <= dst_height) ? 0 : ilog2(src_height / dst_height);
                   ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/imx-pxp.c:801:9: note: '?' condition is true
           decy = (src_height <= dst_height) ? 0 : ilog2(src_height / dst_height);
                  ^
   drivers/media/platform/imx-pxp.c:806:2: note: Control jumps to 'case 540291161:'  at line 823
           switch (src_fourcc) {
           ^
   drivers/media/platform/imx-pxp.c:827:3: note:  Execution continues on line 833
                   break;
                   ^
   drivers/media/platform/imx-pxp.c:834:6: note: 'decx' is 0
           if (decx) {
               ^~~~
   drivers/media/platform/imx-pxp.c:834:2: note: Taking false branch
           if (decx) {
           ^
   drivers/media/platform/imx-pxp.c:837:3: note: Control jumps to the 'default' case@line 854
                   switch (src_fourcc) {
                   ^
   drivers/media/platform/imx-pxp.c:856:4: note:  Execution continues on line 859
                           break;
                           ^
   drivers/media/platform/imx-pxp.c:859:6: note: 'decy' is 0
           if (decy)
               ^~~~
   drivers/media/platform/imx-pxp.c:859:2: note: Taking false branch
           if (decy)
           ^
   drivers/media/platform/imx-pxp.c:895:2: note: Calling 'pxp_setup_csc'
           pxp_setup_csc(ctx);
           ^~~~~~~~~~~~~~~~~~
   drivers/media/platform/imx-pxp.c:315:6: note: Assuming the condition is true
           if (pxp_v4l2_pix_fmt_is_yuv(ctx->q_data[V4L2_M2M_SRC].fmt->fourcc) &&
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/imx-pxp.c:315:6: note: Left side of '&&' is true

vim +/curr +1593 drivers/media/platform/allegro-dvt/allegro-core.c

09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1470  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1471  static void allegro_channel_finish_frame(struct allegro_channel *channel,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1472  		struct mcu_msg_encode_frame_response *msg)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1473  {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1474  	struct allegro_dev *dev = channel->dev;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1475  	struct vb2_v4l2_buffer *src_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1476  	struct vb2_v4l2_buffer *dst_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1477  	struct {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1478  		u32 offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1479  		u32 size;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1480  	} *partition;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1481  	enum vb2_buffer_state state = VB2_BUF_STATE_ERROR;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1482  	char *curr;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1483  	ssize_t len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1484  	ssize_t free;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1485  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1486  	src_buf = allegro_get_buffer(channel, &channel->source_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1487  				     msg->src_handle);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1488  	if (!src_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1489  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1490  			  "channel %d: invalid source buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1491  			  channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1492  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1493  	dst_buf = allegro_get_buffer(channel, &channel->stream_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1494  				     msg->stream_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1495  	if (!dst_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1496  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1497  			  "channel %d: invalid stream buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1498  			  channel->mcu_channel_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1499  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1500  	if (!src_buf || !dst_buf)
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1501  		goto err;
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1502  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1503  	dst_buf->sequence = channel->csequence++;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1504  
b646f99642b749 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1505  	if (msg->error_code & AL_ERROR) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1506  		v4l2_err(&dev->v4l2_dev,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1507  			 "channel %d: failed to encode frame: %s (%x)\n",
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1508  			 channel->mcu_channel_id,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1509  			 allegro_err_to_string(msg->error_code),
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1510  			 msg->error_code);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1511  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1512  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1513  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1514  	if (msg->partition_table_size != 1) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1515  		v4l2_warn(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1516  			  "channel %d: only handling first partition table entry (%d entries)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1517  			  channel->mcu_channel_id, msg->partition_table_size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1518  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1519  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1520  	if (msg->partition_table_offset +
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1521  	    msg->partition_table_size * sizeof(*partition) >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1522  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1523  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1524  			 "channel %d: partition table outside of dst_buf\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1525  			 channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1526  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1527  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1528  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1529  	partition =
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1530  	    vb2_plane_vaddr(&dst_buf->vb2_buf, 0) + msg->partition_table_offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1531  	if (partition->offset + partition->size >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1532  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1533  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1534  			 "channel %d: encoded frame is outside of dst_buf (offset 0x%x, size 0x%x)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1535  			 channel->mcu_channel_id, partition->offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1536  			 partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1537  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1538  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1539  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1540  	v4l2_dbg(2, debug, &dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1541  		 "channel %d: encoded frame of size %d is at offset 0x%x\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1542  		 channel->mcu_channel_id, partition->size, partition->offset);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1543  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1544  	/*
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1545  	 * The payload must include the data before the partition offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1546  	 * because we will put the sps and pps data there.
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1547  	 */
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1548  	vb2_set_plane_payload(&dst_buf->vb2_buf, 0,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1549  			      partition->offset + partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1550  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1551  	curr = vb2_plane_vaddr(&dst_buf->vb2_buf, 0);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1552  	free = partition->offset;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1553  	if (msg->is_idr) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1554  		len = allegro_h264_write_sps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1555  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1556  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1557  				 "not enough space for sequence parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1558  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1559  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1560  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1561  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1562  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1563  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1564  			 "channel %d: wrote %zd byte SPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1565  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1566  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1567  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1568  	if (msg->slice_type == AL_ENC_SLICE_TYPE_I) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1569  		len = allegro_h264_write_pps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1570  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1571  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1572  				 "not enough space for picture parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1573  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1574  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1575  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1576  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1577  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1578  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1579  			 "channel %d: wrote %zd byte PPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1580  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1581  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1582  
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1583  	if (msg->slice_type != AL_ENC_SLICE_TYPE_I && !msg->is_idr) {
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1584  		dst_buf->vb2_buf.planes[0].data_offset = free;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1585  		free = 0;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1586  	} else {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1587  		len = nal_h264_write_filler(&dev->plat_dev->dev, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1588  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1589  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1590  				 "failed to write %zd filler data\n", free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1591  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1592  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28 @1593  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1594  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1595  		v4l2_dbg(2, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1596  			 "channel %d: wrote %zd bytes filler nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1597  			 channel->mcu_channel_id, len);
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1598  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1599  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1600  	if (free != 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1601  		v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1602  			 "non-VCL NAL units do not fill space until VCL NAL unit: %zd bytes left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1603  			 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1604  		goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1605  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1606  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1607  	state = VB2_BUF_STATE_DONE;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1608  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1609  	v4l2_m2m_buf_copy_metadata(src_buf, dst_buf, false);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1610  	if (msg->is_idr)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1611  		dst_buf->flags |= V4L2_BUF_FLAG_KEYFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1612  	else
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1613  		dst_buf->flags |= V4L2_BUF_FLAG_PFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1614  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1615  	v4l2_dbg(1, debug, &dev->v4l2_dev,
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1616  		 "channel %d: encoded frame #%03d (%s%s, QP %d, %d bytes)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1617  		 channel->mcu_channel_id,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1618  		 dst_buf->sequence,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1619  		 msg->is_idr ? "IDR, " : "",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1620  		 msg->slice_type == AL_ENC_SLICE_TYPE_I ? "I slice" :
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1621  		 msg->slice_type == AL_ENC_SLICE_TYPE_P ? "P slice" : "unknown",
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1622  		 msg->qp, partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1623  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1624  err:
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1625  	if (src_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1626  		v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_DONE);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1627  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1628  	if (dst_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1629  		allegro_channel_buf_done(channel, dst_buf, state);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1630  }
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1631  

:::::: The code at line 1593 was first introduced by commit
:::::: 878344de61d0d5f351a1b84fce009a321be3eb45 media: allegro: add SPS/PPS nal unit writer

:::::: TO: Michael Tretter <m.tretter@pengutronix.de>
:::::: CC: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

---
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] 5+ messages in thread

* drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
@ 2021-11-07 14:33 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2021-11-07 14:33 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 36516 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Michael Tretter <m.tretter@pengutronix.de>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Hans Verkuil <hverkuil@xs4all.nl>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   b5013d084e03e82ceeab4db8ae8ceeaebe76b0eb
commit: d74d4e2359ec7985831192f9b5ee22ed5e55b81c media: allegro: move driver out of staging
date:   10 months ago
:::::: branch date: 15 hours ago
:::::: commit date: 10 months ago
config: riscv-randconfig-c006-20211017 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 8ca4b3ef19fe82d7ad6a6e1515317dcc01b41515)
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=d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout d74d4e2359ec7985831192f9b5ee22ed5e55b81c
        # save the attached .config 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 >>)
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:231:25: warning: Value stored to 'stream' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct hva_streaminfo *stream = &ctx->streaminfo;
                                  ^~~~~~   ~~~~~~~~~~~~~~~~
   drivers/media/platform/sti/hva/hva-v4l2.c:231:25: note: Value stored to 'stream' during its initialization is never read
           struct hva_streaminfo *stream = &ctx->streaminfo;
                                  ^~~~~~   ~~~~~~~~~~~~~~~~
   drivers/media/platform/sti/hva/hva-v4l2.c:232:24: warning: Value stored to 'frame' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct hva_frameinfo *frame = &ctx->frameinfo;
                                 ^~~~~   ~~~~~~~~~~~~~~~
   drivers/media/platform/sti/hva/hva-v4l2.c:232:24: note: Value stored to 'frame' during its initialization is never read
           struct hva_frameinfo *frame = &ctx->frameinfo;
                                 ^~~~~   ~~~~~~~~~~~~~~~
   drivers/media/platform/sti/hva/hva-v4l2.c:339:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:339:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:403:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:403:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:453:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:453:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:483:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:483:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:557:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:557:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:620:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:620:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:695:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:695:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:866:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:866:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:876:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:876:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:914:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:914:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:936:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:936:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:1069:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   drivers/media/platform/sti/hva/hva-v4l2.c:1069:17: note: Value stored to 'dev' during its initialization is never read
           struct device *dev = ctx_to_dev(ctx);
                          ^~~
   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.
   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/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores]
                   curr += len;
                   ^       ~~~
   drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: note: Value stored to 'curr' is never read
                   curr += len;
                   ^       ~~~
   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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   7 warnings generated.
   include/linux/log2.h:57:13: warning: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long' [clang-analyzer-core.UndefinedBinaryOperatorResult]
           return 1UL << fls_long(n - 1);
                      ^
   drivers/media/platform/ti-vpe/vpe.c:1790:8: note: Calling 'vpe_try_fmt'
           ret = vpe_try_fmt(file, priv, f);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Assuming field 'type' is not equal to V4L2_BUF_TYPE_VIDEO_OUTPUT
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:165:3: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
           ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Left side of '||' is false
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:165:3: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
           ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
            ^
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Assuming field 'type' is not equal to V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:166:6: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
            || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE         \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Left side of '||' is false
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:165:3: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
           ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
            ^
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Assuming field 'type' is not equal to V4L2_BUF_TYPE_VIDEO_OVERLAY
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:167:6: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
            || (type) == V4L2_BUF_TYPE_VIDEO_OVERLAY               \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Left side of '||' is false
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:165:3: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
           ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
            ^
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Assuming field 'type' is not equal to V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:168:6: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
            || (type) == V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY        \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Left side of '||' is false
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:165:3: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
           ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
            ^
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Assuming field 'type' is not equal to V4L2_BUF_TYPE_VBI_OUTPUT
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:169:6: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
            || (type) == V4L2_BUF_TYPE_VBI_OUTPUT                  \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Left side of '||' is false
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:165:3: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
           ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
            ^
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Assuming field 'type' is not equal to V4L2_BUF_TYPE_SLICED_VBI_OUTPUT
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:170:6: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
            || (type) == V4L2_BUF_TYPE_SLICED_VBI_OUTPUT           \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Left side of '||' is false
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:165:3: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
           ((type) == V4L2_BUF_TYPE_VIDEO_OUTPUT                   \
            ^
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Assuming field 'type' is not equal to V4L2_BUF_TYPE_SDR_OUTPUT
           if (V4L2_TYPE_IS_OUTPUT(f->type))
               ^
   include/uapi/linux/videodev2.h:171:6: note: expanded from macro 'V4L2_TYPE_IS_OUTPUT'
            || (type) == V4L2_BUF_TYPE_SDR_OUTPUT                  \
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/ti-vpe/vpe.c:1727:6: note: Left side of '||' is false
           if (V4L2_TYPE_IS_OUTPUT(f->type))

vim +/curr +1593 drivers/media/platform/allegro-dvt/allegro-core.c

09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1470  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1471  static void allegro_channel_finish_frame(struct allegro_channel *channel,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1472  		struct mcu_msg_encode_frame_response *msg)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1473  {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1474  	struct allegro_dev *dev = channel->dev;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1475  	struct vb2_v4l2_buffer *src_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1476  	struct vb2_v4l2_buffer *dst_buf;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1477  	struct {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1478  		u32 offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1479  		u32 size;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1480  	} *partition;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1481  	enum vb2_buffer_state state = VB2_BUF_STATE_ERROR;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1482  	char *curr;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1483  	ssize_t len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1484  	ssize_t free;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1485  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1486  	src_buf = allegro_get_buffer(channel, &channel->source_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1487  				     msg->src_handle);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1488  	if (!src_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1489  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1490  			  "channel %d: invalid source buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1491  			  channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1492  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1493  	dst_buf = allegro_get_buffer(channel, &channel->stream_shadow_list,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1494  				     msg->stream_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1495  	if (!dst_buf)
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1496  		v4l2_warn(&dev->v4l2_dev,
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1497  			  "channel %d: invalid stream buffer\n",
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1498  			  channel->mcu_channel_id);
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1499  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1500  	if (!src_buf || !dst_buf)
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1501  		goto err;
3b78f8a21ed685 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1502  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1503  	dst_buf->sequence = channel->csequence++;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1504  
b646f99642b749 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1505  	if (msg->error_code & AL_ERROR) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1506  		v4l2_err(&dev->v4l2_dev,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1507  			 "channel %d: failed to encode frame: %s (%x)\n",
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1508  			 channel->mcu_channel_id,
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1509  			 allegro_err_to_string(msg->error_code),
04d2a110187103 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1510  			 msg->error_code);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1511  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1512  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1513  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1514  	if (msg->partition_table_size != 1) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1515  		v4l2_warn(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1516  			  "channel %d: only handling first partition table entry (%d entries)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1517  			  channel->mcu_channel_id, msg->partition_table_size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1518  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1519  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1520  	if (msg->partition_table_offset +
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1521  	    msg->partition_table_size * sizeof(*partition) >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1522  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1523  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1524  			 "channel %d: partition table outside of dst_buf\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1525  			 channel->mcu_channel_id);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1526  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1527  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1528  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1529  	partition =
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1530  	    vb2_plane_vaddr(&dst_buf->vb2_buf, 0) + msg->partition_table_offset;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1531  	if (partition->offset + partition->size >
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1532  	    vb2_plane_size(&dst_buf->vb2_buf, 0)) {
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1533  		v4l2_err(&dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1534  			 "channel %d: encoded frame is outside of dst_buf (offset 0x%x, size 0x%x)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1535  			 channel->mcu_channel_id, partition->offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1536  			 partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1537  		goto err;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1538  	}
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1539  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1540  	v4l2_dbg(2, debug, &dev->v4l2_dev,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1541  		 "channel %d: encoded frame of size %d is at offset 0x%x\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1542  		 channel->mcu_channel_id, partition->size, partition->offset);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1543  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1544  	/*
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1545  	 * The payload must include the data before the partition offset,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1546  	 * because we will put the sps and pps data there.
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1547  	 */
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1548  	vb2_set_plane_payload(&dst_buf->vb2_buf, 0,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1549  			      partition->offset + partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1550  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1551  	curr = vb2_plane_vaddr(&dst_buf->vb2_buf, 0);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1552  	free = partition->offset;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1553  	if (msg->is_idr) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1554  		len = allegro_h264_write_sps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1555  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1556  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1557  				 "not enough space for sequence parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1558  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1559  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1560  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1561  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1562  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1563  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1564  			 "channel %d: wrote %zd byte SPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1565  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1566  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1567  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1568  	if (msg->slice_type == AL_ENC_SLICE_TYPE_I) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1569  		len = allegro_h264_write_pps(channel, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1570  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1571  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1572  				 "not enough space for picture parameter set: %zd left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1573  				 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1574  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1575  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1576  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1577  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1578  		v4l2_dbg(1, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1579  			 "channel %d: wrote %zd byte PPS nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1580  			 channel->mcu_channel_id, len);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1581  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1582  
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1583  	if (msg->slice_type != AL_ENC_SLICE_TYPE_I && !msg->is_idr) {
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1584  		dst_buf->vb2_buf.planes[0].data_offset = free;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1585  		free = 0;
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1586  	} else {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1587  		len = nal_h264_write_filler(&dev->plat_dev->dev, curr, free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1588  		if (len < 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1589  			v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1590  				 "failed to write %zd filler data\n", free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1591  			goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1592  		}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28 @1593  		curr += len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1594  		free -= len;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1595  		v4l2_dbg(2, debug, &dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1596  			 "channel %d: wrote %zd bytes filler nal unit\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1597  			 channel->mcu_channel_id, len);
e74145c2334d85 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1598  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1599  
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1600  	if (free != 0) {
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1601  		v4l2_err(&dev->v4l2_dev,
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1602  			 "non-VCL NAL units do not fill space until VCL NAL unit: %zd bytes left\n",
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1603  			 free);
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1604  		goto err;
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1605  	}
878344de61d0d5 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1606  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1607  	state = VB2_BUF_STATE_DONE;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1608  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1609  	v4l2_m2m_buf_copy_metadata(src_buf, dst_buf, false);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1610  	if (msg->is_idr)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1611  		dst_buf->flags |= V4L2_BUF_FLAG_KEYFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1612  	else
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1613  		dst_buf->flags |= V4L2_BUF_FLAG_PFRAME;
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1614  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1615  	v4l2_dbg(1, debug, &dev->v4l2_dev,
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1616  		 "channel %d: encoded frame #%03d (%s%s, QP %d, %d bytes)\n",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1617  		 channel->mcu_channel_id,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1618  		 dst_buf->sequence,
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1619  		 msg->is_idr ? "IDR, " : "",
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1620  		 msg->slice_type == AL_ENC_SLICE_TYPE_I ? "I slice" :
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1621  		 msg->slice_type == AL_ENC_SLICE_TYPE_P ? "P slice" : "unknown",
80c8449fc71c80 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1622  		 msg->qp, partition->size);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1623  
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1624  err:
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1625  	if (src_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1626  		v4l2_m2m_buf_done(src_buf, VB2_BUF_STATE_DONE);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1627  
09e6a7d63ead8d drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2020-03-16  1628  	if (dst_buf)
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1629  		allegro_channel_buf_done(channel, dst_buf, state);
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1630  }
f20387dfd06569 drivers/staging/media/allegro-dvt/allegro-core.c Michael Tretter 2019-05-28  1631  

:::::: The code at line 1593 was first introduced by commit
:::::: 878344de61d0d5f351a1b84fce009a321be3eb45 media: allegro: add SPS/PPS nal unit writer

:::::: TO: Michael Tretter <m.tretter@pengutronix.de>
:::::: CC: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 24773 bytes --]

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

end of thread, other threads:[~2022-01-02  7:15 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-14  7:23 drivers/media/platform/allegro-dvt/allegro-core.c:1593:3: warning: Value stored to 'curr' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2022-01-02  7:15 kernel test robot
2022-01-01 12:05 kernel test robot
2021-12-18  1:58 kernel test robot
2021-11-07 14:33 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.