mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org, Marcus Folkesson <marcus.folkesson@gmail.com>
Cc: lkp@intel.com, kbuild-all@lists.01.org,
	linux-kernel@vger.kernel.org,
	Jonathan Cameron <Jonathan.Cameron@huawei.com>,
	Andy Shevchenko <andy.shevchenko@gmail.com>
Subject: [jic23-iio:testing 55/63] drivers/iio/adc/mcp3911.c:441 mcp3911_probe() warn: passing zero to 'PTR_ERR'
Date: Tue, 27 Sep 2022 11:44:37 +0300	[thread overview]
Message-ID: <202209270726.iTLNBc3Y-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing
head:   df957373c1649c74b78bf2fcfd144f0c3baa68a5
commit: 08a65f61db69ae4850c3c15e8fbe6293a09a998d [55/63] iio: adc: mcp3911: add support for interrupts
config: openrisc-randconfig-m041-20220926
compiler: or1k-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 <dan.carpenter@oracle.com>

smatch warnings:
drivers/iio/adc/mcp3911.c:441 mcp3911_probe() warn: passing zero to 'PTR_ERR'

vim +/PTR_ERR +441 drivers/iio/adc/mcp3911.c

3a89b289df5df4 Marcus Folkesson 2018-08-08  366  static int mcp3911_probe(struct spi_device *spi)
3a89b289df5df4 Marcus Folkesson 2018-08-08  367  {
3a89b289df5df4 Marcus Folkesson 2018-08-08  368  	struct iio_dev *indio_dev;
3a89b289df5df4 Marcus Folkesson 2018-08-08  369  	struct mcp3911 *adc;
3a89b289df5df4 Marcus Folkesson 2018-08-08  370  	int ret;
3a89b289df5df4 Marcus Folkesson 2018-08-08  371  
3a89b289df5df4 Marcus Folkesson 2018-08-08  372  	indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*adc));
3a89b289df5df4 Marcus Folkesson 2018-08-08  373  	if (!indio_dev)
3a89b289df5df4 Marcus Folkesson 2018-08-08  374  		return -ENOMEM;
3a89b289df5df4 Marcus Folkesson 2018-08-08  375  
3a89b289df5df4 Marcus Folkesson 2018-08-08  376  	adc = iio_priv(indio_dev);
3a89b289df5df4 Marcus Folkesson 2018-08-08  377  	adc->spi = spi;
3a89b289df5df4 Marcus Folkesson 2018-08-08  378  
3a89b289df5df4 Marcus Folkesson 2018-08-08  379  	adc->vref = devm_regulator_get_optional(&adc->spi->dev, "vref");
3a89b289df5df4 Marcus Folkesson 2018-08-08  380  	if (IS_ERR(adc->vref)) {
3a89b289df5df4 Marcus Folkesson 2018-08-08  381  		if (PTR_ERR(adc->vref) == -ENODEV) {
3a89b289df5df4 Marcus Folkesson 2018-08-08  382  			adc->vref = NULL;
3a89b289df5df4 Marcus Folkesson 2018-08-08  383  		} else {
3a89b289df5df4 Marcus Folkesson 2018-08-08  384  			dev_err(&adc->spi->dev,
3a89b289df5df4 Marcus Folkesson 2018-08-08  385  				"failed to get regulator (%ld)\n",
3a89b289df5df4 Marcus Folkesson 2018-08-08  386  				PTR_ERR(adc->vref));
3a89b289df5df4 Marcus Folkesson 2018-08-08  387  			return PTR_ERR(adc->vref);
3a89b289df5df4 Marcus Folkesson 2018-08-08  388  		}
3a89b289df5df4 Marcus Folkesson 2018-08-08  389  
3a89b289df5df4 Marcus Folkesson 2018-08-08  390  	} else {
3a89b289df5df4 Marcus Folkesson 2018-08-08  391  		ret = regulator_enable(adc->vref);
3a89b289df5df4 Marcus Folkesson 2018-08-08  392  		if (ret)
3a89b289df5df4 Marcus Folkesson 2018-08-08  393  			return ret;
0e0a07adaff971 Marcus Folkesson 2022-08-15  394  
0e0a07adaff971 Marcus Folkesson 2022-08-15  395  		ret = devm_add_action_or_reset(&spi->dev,
0e0a07adaff971 Marcus Folkesson 2022-08-15  396  				mcp3911_cleanup_regulator, adc->vref);
0e0a07adaff971 Marcus Folkesson 2022-08-15  397  		if (ret)
0e0a07adaff971 Marcus Folkesson 2022-08-15  398  			return ret;
3a89b289df5df4 Marcus Folkesson 2018-08-08  399  	}
3a89b289df5df4 Marcus Folkesson 2018-08-08  400  
0e0a07adaff971 Marcus Folkesson 2022-08-15  401  	adc->clki = devm_clk_get_enabled(&adc->spi->dev, NULL);
3a89b289df5df4 Marcus Folkesson 2018-08-08  402  	if (IS_ERR(adc->clki)) {
3a89b289df5df4 Marcus Folkesson 2018-08-08  403  		if (PTR_ERR(adc->clki) == -ENOENT) {
3a89b289df5df4 Marcus Folkesson 2018-08-08  404  			adc->clki = NULL;
3a89b289df5df4 Marcus Folkesson 2018-08-08  405  		} else {
3a89b289df5df4 Marcus Folkesson 2018-08-08  406  			dev_err(&adc->spi->dev,
3a89b289df5df4 Marcus Folkesson 2018-08-08  407  				"failed to get adc clk (%ld)\n",
3a89b289df5df4 Marcus Folkesson 2018-08-08  408  				PTR_ERR(adc->clki));
0e0a07adaff971 Marcus Folkesson 2022-08-15  409  			return PTR_ERR(adc->clki);
3a89b289df5df4 Marcus Folkesson 2018-08-08  410  		}
3a89b289df5df4 Marcus Folkesson 2018-08-08  411  	}
3a89b289df5df4 Marcus Folkesson 2018-08-08  412  
4efc1c614d3348 Jonathan Cameron 2021-12-05  413  	ret = mcp3911_config(adc);
3a89b289df5df4 Marcus Folkesson 2018-08-08  414  	if (ret)
0e0a07adaff971 Marcus Folkesson 2022-08-15  415  		return ret;
3a89b289df5df4 Marcus Folkesson 2018-08-08  416  
08a65f61db69ae Marcus Folkesson 2022-08-15  417  	if (device_property_read_bool(&adc->spi->dev, "microchip,data-ready-hiz"))
08a65f61db69ae Marcus Folkesson 2022-08-15  418  		ret = mcp3911_update(adc, MCP3911_REG_STATUSCOM, MCP3911_STATUSCOM_DRHIZ,
08a65f61db69ae Marcus Folkesson 2022-08-15  419  				0, 2);
08a65f61db69ae Marcus Folkesson 2022-08-15  420  	else
08a65f61db69ae Marcus Folkesson 2022-08-15  421  		ret = mcp3911_update(adc, MCP3911_REG_STATUSCOM, MCP3911_STATUSCOM_DRHIZ,
08a65f61db69ae Marcus Folkesson 2022-08-15  422  				MCP3911_STATUSCOM_DRHIZ, 2);
08a65f61db69ae Marcus Folkesson 2022-08-15  423  	if (ret)
08a65f61db69ae Marcus Folkesson 2022-08-15  424  		return ret;
08a65f61db69ae Marcus Folkesson 2022-08-15  425  
3a89b289df5df4 Marcus Folkesson 2018-08-08  426  	indio_dev->name = spi_get_device_id(spi)->name;
3a89b289df5df4 Marcus Folkesson 2018-08-08  427  	indio_dev->modes = INDIO_DIRECT_MODE;
3a89b289df5df4 Marcus Folkesson 2018-08-08  428  	indio_dev->info = &mcp3911_info;
3a89b289df5df4 Marcus Folkesson 2018-08-08  429  	spi_set_drvdata(spi, indio_dev);
3a89b289df5df4 Marcus Folkesson 2018-08-08  430  
3a89b289df5df4 Marcus Folkesson 2018-08-08  431  	indio_dev->channels = mcp3911_channels;
3a89b289df5df4 Marcus Folkesson 2018-08-08  432  	indio_dev->num_channels = ARRAY_SIZE(mcp3911_channels);
3a89b289df5df4 Marcus Folkesson 2018-08-08  433  
3a89b289df5df4 Marcus Folkesson 2018-08-08  434  	mutex_init(&adc->lock);
3a89b289df5df4 Marcus Folkesson 2018-08-08  435  
08a65f61db69ae Marcus Folkesson 2022-08-15  436  	if (spi->irq > 0) {
08a65f61db69ae Marcus Folkesson 2022-08-15  437  		adc->trig = devm_iio_trigger_alloc(&spi->dev, "%s-dev%d",
08a65f61db69ae Marcus Folkesson 2022-08-15  438  				indio_dev->name,
08a65f61db69ae Marcus Folkesson 2022-08-15  439  				iio_device_id(indio_dev));
08a65f61db69ae Marcus Folkesson 2022-08-15  440  		if (!adc->trig)
08a65f61db69ae Marcus Folkesson 2022-08-15 @441  			return PTR_ERR(adc->trig);

This is return 0;  It should be return -ENOMEM;

08a65f61db69ae Marcus Folkesson 2022-08-15  442  
08a65f61db69ae Marcus Folkesson 2022-08-15  443  		adc->trig->ops = &mcp3911_trigger_ops;
08a65f61db69ae Marcus Folkesson 2022-08-15  444  		iio_trigger_set_drvdata(adc->trig, adc);
08a65f61db69ae Marcus Folkesson 2022-08-15  445  		ret = devm_iio_trigger_register(&spi->dev, adc->trig);
08a65f61db69ae Marcus Folkesson 2022-08-15  446  		if (ret)
08a65f61db69ae Marcus Folkesson 2022-08-15  447  			return ret;
08a65f61db69ae Marcus Folkesson 2022-08-15  448  
08a65f61db69ae Marcus Folkesson 2022-08-15  449  		/*
08a65f61db69ae Marcus Folkesson 2022-08-15  450  		 * The device generates interrupts as long as it is powered up.
08a65f61db69ae Marcus Folkesson 2022-08-15  451  		 * Some platforms might not allow the option to power it down so
08a65f61db69ae Marcus Folkesson 2022-08-15  452  		 * don't enable the interrupt to avoid extra load on the system.
08a65f61db69ae Marcus Folkesson 2022-08-15  453  		 */
08a65f61db69ae Marcus Folkesson 2022-08-15  454  		ret = devm_request_irq(&spi->dev, spi->irq,
08a65f61db69ae Marcus Folkesson 2022-08-15  455  				&iio_trigger_generic_data_rdy_poll, IRQF_NO_AUTOEN | IRQF_ONESHOT,
08a65f61db69ae Marcus Folkesson 2022-08-15  456  				indio_dev->name, adc->trig);
08a65f61db69ae Marcus Folkesson 2022-08-15  457  		if (ret)
08a65f61db69ae Marcus Folkesson 2022-08-15  458  			return ret;
08a65f61db69ae Marcus Folkesson 2022-08-15  459  	}
08a65f61db69ae Marcus Folkesson 2022-08-15  460  
5db9f38d394f12 Marcus Folkesson 2022-08-15  461  	ret = devm_iio_triggered_buffer_setup(&spi->dev, indio_dev,
5db9f38d394f12 Marcus Folkesson 2022-08-15  462  			NULL,
5db9f38d394f12 Marcus Folkesson 2022-08-15  463  			mcp3911_trigger_handler, NULL);
5db9f38d394f12 Marcus Folkesson 2022-08-15  464  	if (ret)
5db9f38d394f12 Marcus Folkesson 2022-08-15  465  		return ret;
5db9f38d394f12 Marcus Folkesson 2022-08-15  466  
0e0a07adaff971 Marcus Folkesson 2022-08-15  467  	return devm_iio_device_register(&adc->spi->dev, indio_dev);
3a89b289df5df4 Marcus Folkesson 2018-08-08  468  }


                 reply	other threads:[~2022-09-27  8:45 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=202209270726.iTLNBc3Y-lkp@intel.com \
    --to=dan.carpenter@oracle.com \
    --cc=Jonathan.Cameron@huawei.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=kbuild-all@lists.01.org \
    --cc=kbuild@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=marcus.folkesson@gmail.com \
    /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®