All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/bus/mhi/ep/main.c:641:33: warning: Uninitialized variable: ring [uninitvar]
Date: Mon, 06 Jun 2022 17:10:18 +0800	[thread overview]
Message-ID: <202206061719.FTH5onJU-lkp@intel.com> (raw)

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

:::::: 
:::::: Manual check reason: "low confidence static check warning: drivers/bus/mhi/ep/main.c:641:33: warning: Uninitialized variable: ring [uninitvar]"
:::::: 

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
CC: Alex Elder <elder@linaro.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f2906aa863381afb0015a9eb7fefad885d4e5a56
commit: 494a6f63937744d447630c9ab2f4a58f105b69f5 bus: mhi: ep: Add support for processing channel rings
date:   9 weeks ago
:::::: branch date: 9 hours ago
:::::: commit date: 9 weeks ago
compiler: riscv64-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 494a6f63937744d447630c9ab2f4a58f105b69f5
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

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


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> drivers/bus/mhi/ep/main.c:641:33: warning: Uninitialized variable: ring [uninitvar]
     ret = mhi_ep_update_wr_offset(ring);
                                   ^
   drivers/bus/mhi/ep/main.c:638:13: note: Assignment 'ring=itr->ring', assigned value is <Uninit>
     ring = itr->ring;
               ^
   drivers/bus/mhi/ep/main.c:641:33: note: Uninitialized variable: ring
     ret = mhi_ep_update_wr_offset(ring);
                                   ^
   drivers/bus/mhi/ep/main.c:689:24: warning: Uninitialized variable: itr->state [uninitvar]
       mhi_state_str(itr->state));
                          ^

vim +641 drivers/bus/mhi/ep/main.c

2b231a40e9073a Manivannan Sadhasivam 2022-02-12  618  
494a6f63937744 Manivannan Sadhasivam 2022-02-12  619  static void mhi_ep_ch_ring_worker(struct work_struct *work)
494a6f63937744 Manivannan Sadhasivam 2022-02-12  620  {
494a6f63937744 Manivannan Sadhasivam 2022-02-12  621  	struct mhi_ep_cntrl *mhi_cntrl = container_of(work, struct mhi_ep_cntrl, ch_ring_work);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  622  	struct device *dev = &mhi_cntrl->mhi_dev->dev;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  623  	struct mhi_ep_ring_item *itr, *tmp;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  624  	struct mhi_ring_element *el;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  625  	struct mhi_ep_ring *ring;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  626  	struct mhi_ep_chan *chan;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  627  	unsigned long flags;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  628  	LIST_HEAD(head);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  629  	int ret;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  630  
494a6f63937744 Manivannan Sadhasivam 2022-02-12  631  	spin_lock_irqsave(&mhi_cntrl->list_lock, flags);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  632  	list_splice_tail_init(&mhi_cntrl->ch_db_list, &head);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  633  	spin_unlock_irqrestore(&mhi_cntrl->list_lock, flags);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  634  
494a6f63937744 Manivannan Sadhasivam 2022-02-12  635  	/* Process each queued channel ring. In case of an error, just process next element. */
494a6f63937744 Manivannan Sadhasivam 2022-02-12  636  	list_for_each_entry_safe(itr, tmp, &head, node) {
494a6f63937744 Manivannan Sadhasivam 2022-02-12  637  		list_del(&itr->node);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  638  		ring = itr->ring;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  639  
494a6f63937744 Manivannan Sadhasivam 2022-02-12  640  		/* Update the write offset for the ring */
494a6f63937744 Manivannan Sadhasivam 2022-02-12 @641  		ret = mhi_ep_update_wr_offset(ring);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  642  		if (ret) {
494a6f63937744 Manivannan Sadhasivam 2022-02-12  643  			dev_err(dev, "Error updating write offset for ring\n");
494a6f63937744 Manivannan Sadhasivam 2022-02-12  644  			kfree(itr);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  645  			continue;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  646  		}
494a6f63937744 Manivannan Sadhasivam 2022-02-12  647  
494a6f63937744 Manivannan Sadhasivam 2022-02-12  648  		/* Sanity check to make sure there are elements in the ring */
494a6f63937744 Manivannan Sadhasivam 2022-02-12  649  		if (ring->rd_offset == ring->wr_offset) {
494a6f63937744 Manivannan Sadhasivam 2022-02-12  650  			kfree(itr);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  651  			continue;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  652  		}
494a6f63937744 Manivannan Sadhasivam 2022-02-12  653  
494a6f63937744 Manivannan Sadhasivam 2022-02-12  654  		el = &ring->ring_cache[ring->rd_offset];
494a6f63937744 Manivannan Sadhasivam 2022-02-12  655  		chan = &mhi_cntrl->mhi_chan[ring->ch_id];
494a6f63937744 Manivannan Sadhasivam 2022-02-12  656  
494a6f63937744 Manivannan Sadhasivam 2022-02-12  657  		mutex_lock(&chan->lock);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  658  		dev_dbg(dev, "Processing the ring for channel (%u)\n", ring->ch_id);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  659  		ret = mhi_ep_process_ch_ring(ring, el);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  660  		if (ret) {
494a6f63937744 Manivannan Sadhasivam 2022-02-12  661  			dev_err(dev, "Error processing ring for channel (%u): %d\n",
494a6f63937744 Manivannan Sadhasivam 2022-02-12  662  				ring->ch_id, ret);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  663  			mutex_unlock(&chan->lock);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  664  			kfree(itr);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  665  			continue;
494a6f63937744 Manivannan Sadhasivam 2022-02-12  666  		}
494a6f63937744 Manivannan Sadhasivam 2022-02-12  667  
494a6f63937744 Manivannan Sadhasivam 2022-02-12  668  		mutex_unlock(&chan->lock);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  669  		kfree(itr);
494a6f63937744 Manivannan Sadhasivam 2022-02-12  670  	}
494a6f63937744 Manivannan Sadhasivam 2022-02-12  671  }
494a6f63937744 Manivannan Sadhasivam 2022-02-12  672  

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

                 reply	other threads:[~2022-06-06  9:10 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202206061719.FTH5onJU-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.