All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/media/platform/renesas/rcar_drif.c:585:31: warning: Access to field 'addr' results in a dereference of an undefined pointer value [clang-analyzer-core.NullDereference]
@ 2022-06-01 19:05 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-06-01 19:05 UTC (permalink / raw)
  To: kbuild

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

:::::: 
:::::: Manual check reason: "low confidence static check warning: drivers/media/platform/renesas/rcar_drif.c:585:31: warning: Access to field 'addr' results in a dereference of an undefined pointer value [clang-analyzer-core.NullDereference]"
:::::: 

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   700170bf6b4d773e328fa54ebb70ba444007c702
commit: ee4a77a32b39064fdab0aa2b36bbd35ebf57e077 media: platform: place Renesas drivers on a separate dir
date:   3 months ago
:::::: branch date: 19 hours ago
:::::: commit date: 3 months ago
config: arm-randconfig-c002-20220531 (https://download.01.org/0day-ci/archive/20220602/202206020308.16xg6mSC-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c825abd6b0198fb088d9752f556a70705bc99dfd)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install arm cross compiling tool for clang build
        # apt-get install binutils-arm-linux-gnueabi
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ee4a77a32b39064fdab0aa2b36bbd35ebf57e077
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout ee4a77a32b39064fdab0aa2b36bbd35ebf57e077
        # save the config file
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer 

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
           ^
   drivers/gpu/drm/meson/meson_crtc.c:335:7: note: Assuming field 'osd1_afbcd' is false
                   if (priv->viu.osd1_afbcd) {
                       ^~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/meson/meson_crtc.c:335:3: note: Taking false branch
                   if (priv->viu.osd1_afbcd) {
                   ^
   drivers/gpu/drm/meson/meson_crtc.c:339:8: note: Assuming field 'disable_osd1_afbc' is non-null
                           if (meson_crtc->disable_osd1_afbc)
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/meson/meson_crtc.c:339:4: note: Taking true branch
                           if (meson_crtc->disable_osd1_afbc)
                           ^
   drivers/gpu/drm/meson/meson_crtc.c:340:5: note: Value assigned to field 'ops'
                                   meson_crtc->disable_osd1_afbc(priv);
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/meson/meson_crtc.c:341:8: note: Assuming field 'ops' is null
                           if (priv->afbcd.ops) {
                               ^~~~~~~~~~~~~~~
   drivers/gpu/drm/meson/meson_crtc.c:341:4: note: Taking false branch
                           if (priv->afbcd.ops) {
                           ^
   drivers/gpu/drm/meson/meson_crtc.c:369:7: note: Assuming field 'osd1_afbcd' is true
                   if (!priv->viu.osd1_afbcd)
                       ^~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/meson/meson_crtc.c:369:3: note: Taking false branch
                   if (!priv->viu.osd1_afbcd)
                   ^
   drivers/gpu/drm/meson/meson_crtc.c:378:7: note: Assuming field 'enable_osd1' is null
                   if (meson_crtc->enable_osd1)
                       ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/meson/meson_crtc.c:378:3: note: Taking false branch
                   if (meson_crtc->enable_osd1)
                   ^
   drivers/gpu/drm/meson/meson_crtc.c:381:17: note: Field 'osd1_afbcd' is true
                   if (priv->viu.osd1_afbcd) {
                                 ^
   drivers/gpu/drm/meson/meson_crtc.c:381:3: note: Taking true branch
                   if (priv->viu.osd1_afbcd) {
                   ^
   drivers/gpu/drm/meson/meson_crtc.c:382:4: note: Access to field 'reset' results in a dereference of a null pointer (loaded from field 'ops')
                           priv->afbcd.ops->reset(priv);
                           ^           ~~~
   1 warning generated.
   Suppressed 1 warnings (1 with check filters).
   7 warnings generated.
   Suppressed 7 warnings (7 with check filters).
   1 warning generated.
   include/linux/list.h:137:13: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
           __list_del(entry->prev, entry->next);
                      ^
   drivers/dma/ti/omap-dma.c:1847:6: note: Assuming field 'may_lose_context' is 0
           if (od->cfg->may_lose_context)
               ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma/ti/omap-dma.c:1847:2: note: Taking false branch
           if (od->cfg->may_lose_context)
           ^
   drivers/dma/ti/omap-dma.c:1850:6: note: Assuming field 'of_node' is null
           if (pdev->dev.of_node)
               ^~~~~~~~~~~~~~~~~
   drivers/dma/ti/omap-dma.c:1850:2: note: Taking false branch
           if (pdev->dev.of_node)
           ^
   drivers/dma/ti/omap-dma.c:1858:6: note: Assuming field 'legacy' is true
           if (!od->legacy) {
               ^~~~~~~~~~~
   drivers/dma/ti/omap-dma.c:1858:2: note: Taking false branch
           if (!od->legacy) {
           ^
   drivers/dma/ti/omap-dma.c:1863:6: note: Assuming field 'll123_supported' is false
           if (od->ll123_supported)
               ^~~~~~~~~~~~~~~~~~~
   drivers/dma/ti/omap-dma.c:1863:2: note: Taking false branch
           if (od->ll123_supported)
           ^
   drivers/dma/ti/omap-dma.c:1866:2: note: Calling 'omap_dma_free'
           omap_dma_free(od);
           ^~~~~~~~~~~~~~~~~
   drivers/dma/ti/omap-dma.c:1515:2: note: Loop condition is true.  Entering loop body
           while (!list_empty(&od->ddev.channels)) {
           ^
   drivers/dma/ti/omap-dma.c:1521:3: note: Memory is released
                   kfree(c);
                   ^~~~~~~~
   drivers/dma/ti/omap-dma.c:1515:2: note: Loop condition is true.  Entering loop body
           while (!list_empty(&od->ddev.channels)) {
           ^
   drivers/dma/ti/omap-dma.c:1519:3: note: Calling 'list_del'
                   list_del(&c->vc.chan.device_node);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:148:2: note: Calling '__list_del_entry'
           __list_del_entry(entry);
           ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/list.h:134:2: note: Taking false branch
           if (!__list_del_entry_valid(entry))
           ^
   include/linux/list.h:137:13: note: Use of memory after it is freed
           __list_del(entry->prev, entry->next);
                      ^~~~~~~~~~~
   2 warnings generated.
>> drivers/media/platform/renesas/rcar_drif.c:585:31: warning: Access to field 'addr' results in a dereference of an undefined pointer value [clang-analyzer-core.NullDereference]
                          i * sdr->hwbuf_size, buf[i]->addr, sdr->hwbuf_size);
                                               ^~~~~~~~~~~~
   drivers/media/platform/renesas/rcar_drif.c:535:6: note: Assuming the condition is false
           if (!vb2_is_streaming(&sdr->vb_queue)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/rcar_drif.c:535:2: note: Taking false branch
           if (!vb2_is_streaming(&sdr->vb_queue)) {
           ^
   drivers/media/platform/renesas/rcar_drif.c:543:6: note: Assuming field 'num_cur_ch' is not equal to RCAR_DRIF_MAX_CHANNEL
           if (sdr->num_cur_ch == RCAR_DRIF_MAX_CHANNEL) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/rcar_drif.c:543:2: note: Taking false branch
           if (sdr->num_cur_ch == RCAR_DRIF_MAX_CHANNEL) {
           ^
   drivers/media/platform/renesas/rcar_drif.c:565:7: note: Assuming the condition is false
                   if (buf[0]->status & RCAR_DRIF_BUF_OVERFLOW) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/rcar_drif.c:565:3: note: Taking false branch
                   if (buf[0]->status & RCAR_DRIF_BUF_OVERFLOW) {
                   ^
   drivers/media/platform/renesas/rcar_drif.c:576:2: note: Taking false branch
           rdrif_dbg(sdr, "ch%u: prod %u\n", ch->num, produced);
           ^
   drivers/media/platform/renesas/rcar_drif.c:139:2: note: expanded from macro 'rdrif_dbg'
           dev_dbg(sdr->v4l2_dev.dev, fmt, ## arg)
           ^
   include/linux/dev_printk.h:162:2: note: expanded from macro 'dev_dbg'
           if (0)                                                          \
           ^
   drivers/media/platform/renesas/rcar_drif.c:579:9: note: Calling 'rcar_drif_get_fbuf'
           fbuf = rcar_drif_get_fbuf(sdr);
                  ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/media/platform/renesas/rcar_drif.c:465:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&sdr->queued_bufs_lock, flags);
           ^
   include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:264:3: note: expanded from macro 'raw_spin_lock_irqsave'
                   _raw_spin_lock_irqsave(lock, flags);    \
                   ^
   include/linux/spinlock_api_up.h:69:45: note: expanded from macro '_raw_spin_lock_irqsave'
   #define _raw_spin_lock_irqsave(lock, flags)     __LOCK_IRQSAVE(lock, flags)
                                                   ^
   include/linux/spinlock_api_up.h:40:8: note: expanded from macro '__LOCK_IRQSAVE'
     do { local_irq_save(flags); __LOCK(lock); } while (0)
          ^
   include/linux/irqflags.h:244:36: note: expanded from macro 'local_irq_save'
   #define local_irq_save(flags)   do { raw_local_irq_save(flags); } while (0)
                                        ^
   include/linux/irqflags.h:176:2: note: expanded from macro 'raw_local_irq_save'
           do {                                            \
           ^
   drivers/media/platform/renesas/rcar_drif.c:465:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&sdr->queued_bufs_lock, flags);
           ^
   include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:264:3: note: expanded from macro 'raw_spin_lock_irqsave'
                   _raw_spin_lock_irqsave(lock, flags);    \
                   ^
   include/linux/spinlock_api_up.h:69:45: note: expanded from macro '_raw_spin_lock_irqsave'
   #define _raw_spin_lock_irqsave(lock, flags)     __LOCK_IRQSAVE(lock, flags)
                                                   ^
   include/linux/spinlock_api_up.h:40:8: note: expanded from macro '__LOCK_IRQSAVE'
     do { local_irq_save(flags); __LOCK(lock); } while (0)
          ^
   include/linux/irqflags.h:244:31: note: expanded from macro 'local_irq_save'
   #define local_irq_save(flags)   do { raw_local_irq_save(flags); } while (0)
                                   ^
   drivers/media/platform/renesas/rcar_drif.c:465:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&sdr->queued_bufs_lock, flags);
           ^
   include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:264:3: note: expanded from macro 'raw_spin_lock_irqsave'
                   _raw_spin_lock_irqsave(lock, flags);    \
                   ^
   include/linux/spinlock_api_up.h:69:45: note: expanded from macro '_raw_spin_lock_irqsave'
   #define _raw_spin_lock_irqsave(lock, flags)     __LOCK_IRQSAVE(lock, flags)
                                                   ^
   include/linux/spinlock_api_up.h:40:31: note: expanded from macro '__LOCK_IRQSAVE'
     do { local_irq_save(flags); __LOCK(lock); } while (0)
                                 ^
   include/linux/spinlock_api_up.h:31:27: note: expanded from macro '__LOCK'
     do { preempt_disable(); ___LOCK(lock); } while (0)
                             ^
   include/linux/spinlock_api_up.h:28:3: note: expanded from macro '___LOCK'
     do { __acquire(lock); (void)(lock); } while (0)
     ^
   drivers/media/platform/renesas/rcar_drif.c:465:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&sdr->queued_bufs_lock, flags);
           ^
   include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:264:3: note: expanded from macro 'raw_spin_lock_irqsave'
                   _raw_spin_lock_irqsave(lock, flags);    \

vim +/addr +585 drivers/media/platform/renesas/rcar_drif.c

7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  520  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  521  /* DMA callback for each stage */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  522  static void rcar_drif_dma_complete(void *dma_async_param)
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  523  {
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  524  	struct rcar_drif *ch = dma_async_param;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  525  	struct rcar_drif_sdr *sdr = ch->sdr;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  526  	struct rcar_drif_hwbuf *buf[RCAR_DRIF_MAX_CHANNEL];
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  527  	struct rcar_drif_frame_buf *fbuf;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  528  	bool overflow = false;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  529  	u32 idx, produced;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  530  	unsigned int i;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  531  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  532  	spin_lock(&sdr->dma_lock);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  533  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  534  	/* DMA can be terminated while the callback was waiting on lock */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  535  	if (!vb2_is_streaming(&sdr->vb_queue)) {
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  536  		spin_unlock(&sdr->dma_lock);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  537  		return;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  538  	}
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  539  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  540  	idx = sdr->produced % RCAR_DRIF_NUM_HWBUFS;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  541  	rcar_drif_channel_complete(ch, idx);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  542  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  543  	if (sdr->num_cur_ch == RCAR_DRIF_MAX_CHANNEL) {
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  544  		buf[0] = ch->num ? to_rcar_drif_buf_pair(sdr, ch->num, idx) :
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  545  				&ch->buf[idx];
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  546  		buf[1] = ch->num ? &ch->buf[idx] :
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  547  				to_rcar_drif_buf_pair(sdr, ch->num, idx);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  548  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  549  		/* Check if both DMA buffers are done */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  550  		if (!rcar_drif_bufs_done(buf)) {
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  551  			spin_unlock(&sdr->dma_lock);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  552  			return;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  553  		}
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  554  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  555  		/* Clear buf done status */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  556  		rcar_drif_bufs_clear(buf, RCAR_DRIF_BUF_DONE);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  557  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  558  		if (rcar_drif_bufs_overflow(buf)) {
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  559  			overflow = true;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  560  			/* Clear the flag in status */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  561  			rcar_drif_bufs_clear(buf, RCAR_DRIF_BUF_OVERFLOW);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  562  		}
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  563  	} else {
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  564  		buf[0] = &ch->buf[idx];
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  565  		if (buf[0]->status & RCAR_DRIF_BUF_OVERFLOW) {
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  566  			overflow = true;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  567  			/* Clear the flag in status */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  568  			buf[0]->status &= ~RCAR_DRIF_BUF_OVERFLOW;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  569  		}
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  570  	}
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  571  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  572  	/* Buffer produced for consumption */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  573  	produced = sdr->produced++;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  574  	spin_unlock(&sdr->dma_lock);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  575  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  576  	rdrif_dbg(sdr, "ch%u: prod %u\n", ch->num, produced);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  577  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  578  	/* Get fbuf */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  579  	fbuf = rcar_drif_get_fbuf(sdr);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  580  	if (!fbuf)
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  581  		return;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  582  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  583  	for (i = 0; i < RCAR_DRIF_MAX_CHANNEL; i++)
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  584  		memcpy(vb2_plane_vaddr(&fbuf->vb.vb2_buf, 0) +
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12 @585  		       i * sdr->hwbuf_size, buf[i]->addr, sdr->hwbuf_size);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  586  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  587  	fbuf->vb.field = V4L2_FIELD_NONE;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  588  	fbuf->vb.sequence = produced;
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  589  	fbuf->vb.vb2_buf.timestamp = ktime_get_ns();
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  590  	vb2_set_plane_payload(&fbuf->vb.vb2_buf, 0, sdr->fmt->buffersize);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  591  
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  592  	/* Set error state on overflow */
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  593  	vb2_buffer_done(&fbuf->vb.vb2_buf,
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  594  			overflow ? VB2_BUF_STATE_ERROR : VB2_BUF_STATE_DONE);
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  595  }
7625ee981af166 drivers/media/platform/rcar_drif.c Ramesh Shanmugasundaram 2017-06-12  596  

:::::: The code at line 585 was first introduced by commit
:::::: 7625ee981af166ddb569e2e6c0006e2af471326f [media] media: platform: rcar_drif: Add DRIF support

:::::: TO: Ramesh Shanmugasundaram <ramesh.shanmugasundaram@bp.renesas.com>
:::::: CC: Mauro Carvalho Chehab <mchehab@s-opensource.com>

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-01 19:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-01 19:05 drivers/media/platform/renesas/rcar_drif.c:585:31: warning: Access to field 'addr' results in a dereference of an undefined pointer value [clang-analyzer-core.NullDereference] 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.