All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
To: eric.auger-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Cc: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
Subject: [bug report] iommu: iommu_get_group_resv_regions
Date: Fri, 3 Feb 2017 12:14:40 +0300	[thread overview]
Message-ID: <20170203091440.GA23426@mwanda> (raw)

Hello Eric Auger,

The patch 6c65fb318e8b: "iommu: iommu_get_group_resv_regions" from
Jan 19, 2017, leads to the following static checker warning:

	drivers/iommu/iommu.c:215 iommu_insert_device_resv_regions()
	error: uninitialized symbol 'ret'.

drivers/iommu/iommu.c
   203  static int
   204  iommu_insert_device_resv_regions(struct list_head *dev_resv_regions,
   205                                   struct list_head *group_resv_regions)
   206  {
   207          struct iommu_resv_region *entry;
   208          int ret;
   209  
   210          list_for_each_entry(entry, dev_resv_regions, list) {
   211                  ret = iommu_insert_resv_region(entry, group_resv_regions);
   212                  if (ret)
   213                          break;
   214          }
   215          return ret;

On the one hand, it probably doesn't make sense that the dev_resv_regions
would ever be empty, but on the other hand, there some code that assumes
it is possible.  What I mean is that iommu_get_resv_regions() can
basically do nothing if ->get_resv_regions() isn't implemented.

I guess we should probably set ret = -EINVAL here?

   216  }
   217  
   218  int iommu_get_group_resv_regions(struct iommu_group *group,
   219                                   struct list_head *head)
   220  {
   221          struct iommu_device *device;
   222          int ret = 0;
   223  
   224          mutex_lock(&group->mutex);
   225          list_for_each_entry(device, &group->devices, list) {
   226                  struct list_head dev_resv_regions;
   227  
   228                  INIT_LIST_HEAD(&dev_resv_regions);
   229                  iommu_get_resv_regions(device->dev, &dev_resv_regions);
   230                  ret = iommu_insert_device_resv_regions(&dev_resv_regions, head);
   231                  iommu_put_resv_regions(device->dev, &dev_resv_regions);
   232                  if (ret)
   233                          break;
   234          }
   235          mutex_unlock(&group->mutex);
   236          return ret;
   237  }
   238  EXPORT_SYMBOL_GPL(iommu_get_group_resv_regions);


regards,
dan carpenter

             reply	other threads:[~2017-02-03  9:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-03  9:14 Dan Carpenter [this message]
2017-02-03  9:47 ` [bug report] iommu: iommu_get_group_resv_regions Auger Eric
     [not found]   ` <77520e58-f6e9-f4d5-d909-90cea7ed6bae-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2017-02-06  9:18     ` [patch] iommu: silence an uninintialized variable warning Dan Carpenter
2017-02-06  9:18       ` Dan Carpenter
2017-02-06  9:48       ` Dan Carpenter
2017-02-06  9:48         ` Dan Carpenter

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=20170203091440.GA23426@mwanda \
    --to=dan.carpenter-qhclzuegtsvqt0dzr+alfa@public.gmane.org \
    --cc=eric.auger-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
    --cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.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.