mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Dan Carpenter <error27@gmail.com>
To: oe-kbuild@lists.linux.dev,
	Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	linux-kernel@vger.kernel.org, Jens Axboe <axboe@kernel.dk>
Subject: drivers/block/rnbd/rnbd-clt.c:1460 init_dev() error: Calling ida_alloc_max() with a 'max' argument which is a power of 2. -1 missing?
Date: Thu, 29 Dec 2022 12:03:50 +0300	[thread overview]
Message-ID: <202212290454.KjkzaEzK-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   1b929c02afd37871d5afb9d498426f83432e71c2
commit: 24afc15dbe218f860994f627b4ba1fb09225a298 block/rnbd: Remove a useless mutex
config: powerpc-randconfig-m031-20221226
compiler: powerpc-linux-gcc (GCC) 12.1.0

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

smatch warnings:
drivers/block/rnbd/rnbd-clt.c:1460 init_dev() error: Calling ida_alloc_max() with a 'max' argument which is a power of 2. -1 missing?

vim +/max +1460 drivers/block/rnbd/rnbd-clt.c

f7a7a5c228d45e Jack Wang          2020-05-11  1436  static struct rnbd_clt_dev *init_dev(struct rnbd_clt_session *sess,
f7a7a5c228d45e Jack Wang          2020-05-11  1437  				      enum rnbd_access_mode access_mode,
2958a995edc946 Gioh Kim           2021-04-19  1438  				      const char *pathname,
2958a995edc946 Gioh Kim           2021-04-19  1439  				      u32 nr_poll_queues)
f7a7a5c228d45e Jack Wang          2020-05-11  1440  {
f7a7a5c228d45e Jack Wang          2020-05-11  1441  	struct rnbd_clt_dev *dev;
f7a7a5c228d45e Jack Wang          2020-05-11  1442  	int ret;
f7a7a5c228d45e Jack Wang          2020-05-11  1443  
f7a7a5c228d45e Jack Wang          2020-05-11  1444  	dev = kzalloc_node(sizeof(*dev), GFP_KERNEL, NUMA_NO_NODE);
f7a7a5c228d45e Jack Wang          2020-05-11  1445  	if (!dev)
f7a7a5c228d45e Jack Wang          2020-05-11  1446  		return ERR_PTR(-ENOMEM);
f7a7a5c228d45e Jack Wang          2020-05-11  1447  
2958a995edc946 Gioh Kim           2021-04-19  1448  	/*
2958a995edc946 Gioh Kim           2021-04-19  1449  	 * nr_cpu_ids: the number of softirq queues
2958a995edc946 Gioh Kim           2021-04-19  1450  	 * nr_poll_queues: the number of polling queues
2958a995edc946 Gioh Kim           2021-04-19  1451  	 */
2958a995edc946 Gioh Kim           2021-04-19  1452  	dev->hw_queues = kcalloc(nr_cpu_ids + nr_poll_queues,
2958a995edc946 Gioh Kim           2021-04-19  1453  				 sizeof(*dev->hw_queues),
f7a7a5c228d45e Jack Wang          2020-05-11  1454  				 GFP_KERNEL);
f7a7a5c228d45e Jack Wang          2020-05-11  1455  	if (!dev->hw_queues) {
f7a7a5c228d45e Jack Wang          2020-05-11  1456  		ret = -ENOMEM;
f7a7a5c228d45e Jack Wang          2020-05-11  1457  		goto out_alloc;
f7a7a5c228d45e Jack Wang          2020-05-11  1458  	}
f7a7a5c228d45e Jack Wang          2020-05-11  1459  
24afc15dbe218f Christophe JAILLET 2022-02-07 @1460  	ret = ida_alloc_max(&index_ida, 1 << (MINORBITS - RNBD_PART_BITS),
                                                                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You wrote this Smatch check...  But, this should probably be
(1 << (MINORBITS - RNBD_PART_BITS)) - 1, yeah?

f7a7a5c228d45e Jack Wang          2020-05-11  1461  			    GFP_KERNEL);
f7a7a5c228d45e Jack Wang          2020-05-11  1462  	if (ret < 0) {
f7a7a5c228d45e Jack Wang          2020-05-11  1463  		pr_err("Failed to initialize device '%s' from session %s, allocating idr failed, err: %d\n",
f7a7a5c228d45e Jack Wang          2020-05-11  1464  		       pathname, sess->sessname, ret);
f7a7a5c228d45e Jack Wang          2020-05-11  1465  		goto out_queues;
f7a7a5c228d45e Jack Wang          2020-05-11  1466  	}
64e8a6ece1a5b1 Md Haris Iqbal     2020-11-26  1467  
e7508d48565060 Md Haris Iqbal     2020-12-10  1468  	dev->pathname = kstrdup(pathname, GFP_KERNEL);
64e8a6ece1a5b1 Md Haris Iqbal     2020-11-26  1469  	if (!dev->pathname) {
64e8a6ece1a5b1 Md Haris Iqbal     2020-11-26  1470  		ret = -ENOMEM;
64e8a6ece1a5b1 Md Haris Iqbal     2020-11-26  1471  		goto out_queues;
64e8a6ece1a5b1 Md Haris Iqbal     2020-11-26  1472  	}
64e8a6ece1a5b1 Md Haris Iqbal     2020-11-26  1473  
f7a7a5c228d45e Jack Wang          2020-05-11  1474  	dev->clt_device_id	= ret;
f7a7a5c228d45e Jack Wang          2020-05-11  1475  	dev->sess		= sess;
f7a7a5c228d45e Jack Wang          2020-05-11  1476  	dev->access_mode	= access_mode;
2958a995edc946 Gioh Kim           2021-04-19  1477  	dev->nr_poll_queues	= nr_poll_queues;
f7a7a5c228d45e Jack Wang          2020-05-11  1478  	mutex_init(&dev->lock);
f7a7a5c228d45e Jack Wang          2020-05-11  1479  	refcount_set(&dev->refcount, 1);
f7a7a5c228d45e Jack Wang          2020-05-11  1480  	dev->dev_state = DEV_STATE_INIT;
f7a7a5c228d45e Jack Wang          2020-05-11  1481  
f7a7a5c228d45e Jack Wang          2020-05-11  1482  	/*
f7a7a5c228d45e Jack Wang          2020-05-11  1483  	 * Here we called from sysfs entry, thus clt-sysfs is
f7a7a5c228d45e Jack Wang          2020-05-11  1484  	 * responsible that session will not disappear.
f7a7a5c228d45e Jack Wang          2020-05-11  1485  	 */
f7a7a5c228d45e Jack Wang          2020-05-11  1486  	WARN_ON(!rnbd_clt_get_sess(sess));
f7a7a5c228d45e Jack Wang          2020-05-11  1487  
f7a7a5c228d45e Jack Wang          2020-05-11  1488  	return dev;
f7a7a5c228d45e Jack Wang          2020-05-11  1489  
f7a7a5c228d45e Jack Wang          2020-05-11  1490  out_queues:
f7a7a5c228d45e Jack Wang          2020-05-11  1491  	kfree(dev->hw_queues);
f7a7a5c228d45e Jack Wang          2020-05-11  1492  out_alloc:
f7a7a5c228d45e Jack Wang          2020-05-11  1493  	kfree(dev);
f7a7a5c228d45e Jack Wang          2020-05-11  1494  	return ERR_PTR(ret);
f7a7a5c228d45e Jack Wang          2020-05-11  1495  }

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


                 reply	other threads:[~2022-12-29  9:04 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=202212290454.KjkzaEzK-lkp@intel.com \
    --to=error27@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=oe-kbuild@lists.linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®