linux-gpio.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: kbuild-all@lists.01.org, Linus Walleij <linus.walleij@linaro.org>,
	Srinivas Kandagatla <srinivas.kandagatla@linaro.org>,
	Khouloud Touil <ktouil@baylibre.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
	Bartosz Golaszewski <bgolaszewski@baylibre.com>
Subject: Re: [PATCH v4 3/4] nvmem: increase the reference count of a gpio passed over config
Date: Sat, 22 Feb 2020 19:54:09 +0800	[thread overview]
Message-ID: <202002221921.euxJGwes%lkp@intel.com> (raw)
In-Reply-To: <20200220100141.5905-4-brgl@bgdev.pl>

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

Hi Bartosz,

I love your patch! Yet something to improve:

[auto build test ERROR on next-20200221]
[also build test ERROR on v5.6-rc2]
[cannot apply to gpio/for-next linus/master v5.6-rc2 v5.6-rc1 v5.5]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    https://github.com/0day-ci/linux/commits/Bartosz-Golaszewski/nvmem-gpio-fix-resource-management/20200222-054341
base:    bee46b309a13ca158c99c325d0408fb2f0db207f
config: sparc-defconfig (attached as .config)
compiler: sparc-linux-gcc (GCC) 7.5.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=7.5.0 make.cross ARCH=sparc 

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

All errors (new ones prefixed by >>):

   drivers/nvmem/core.c: In function 'nvmem_register':
>> drivers/nvmem/core.c:352:20: error: implicit declaration of function 'gpiod_ref'; did you mean 'gpiod_get'? [-Werror=implicit-function-declaration]
      nvmem->wp_gpio = gpiod_ref(config->wp_gpio);
                       ^~~~~~~~~
                       gpiod_get
   drivers/nvmem/core.c:352:18: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
      nvmem->wp_gpio = gpiod_ref(config->wp_gpio);
                     ^
   cc1: some warnings being treated as errors

vim +352 drivers/nvmem/core.c

   322	
   323	/**
   324	 * nvmem_register() - Register a nvmem device for given nvmem_config.
   325	 * Also creates an binary entry in /sys/bus/nvmem/devices/dev-name/nvmem
   326	 *
   327	 * @config: nvmem device configuration with which nvmem device is created.
   328	 *
   329	 * Return: Will be an ERR_PTR() on error or a valid pointer to nvmem_device
   330	 * on success.
   331	 */
   332	
   333	struct nvmem_device *nvmem_register(const struct nvmem_config *config)
   334	{
   335		struct nvmem_device *nvmem;
   336		int rval;
   337	
   338		if (!config->dev)
   339			return ERR_PTR(-EINVAL);
   340	
   341		nvmem = kzalloc(sizeof(*nvmem), GFP_KERNEL);
   342		if (!nvmem)
   343			return ERR_PTR(-ENOMEM);
   344	
   345		rval  = ida_simple_get(&nvmem_ida, 0, 0, GFP_KERNEL);
   346		if (rval < 0) {
   347			kfree(nvmem);
   348			return ERR_PTR(rval);
   349		}
   350	
   351		if (config->wp_gpio)
 > 352			nvmem->wp_gpio = gpiod_ref(config->wp_gpio);
   353		else
   354			nvmem->wp_gpio = gpiod_get_optional(config->dev, "wp",
   355							    GPIOD_OUT_HIGH);
   356		if (IS_ERR(nvmem->wp_gpio)) {
   357			ida_simple_remove(&nvmem_ida, nvmem->id);
   358			kfree(nvmem);
   359			return ERR_CAST(nvmem->wp_gpio);
   360		}
   361	
   362		kref_init(&nvmem->refcnt);
   363		INIT_LIST_HEAD(&nvmem->cells);
   364	
   365		nvmem->id = rval;
   366		nvmem->owner = config->owner;
   367		if (!nvmem->owner && config->dev->driver)
   368			nvmem->owner = config->dev->driver->owner;
   369		nvmem->stride = config->stride ?: 1;
   370		nvmem->word_size = config->word_size ?: 1;
   371		nvmem->size = config->size;
   372		nvmem->dev.type = &nvmem_provider_type;
   373		nvmem->dev.bus = &nvmem_bus_type;
   374		nvmem->dev.parent = config->dev;
   375		nvmem->priv = config->priv;
   376		nvmem->type = config->type;
   377		nvmem->reg_read = config->reg_read;
   378		nvmem->reg_write = config->reg_write;
   379		if (!config->no_of_node)
   380			nvmem->dev.of_node = config->dev->of_node;
   381	
   382		if (config->id == -1 && config->name) {
   383			dev_set_name(&nvmem->dev, "%s", config->name);
   384		} else {
   385			dev_set_name(&nvmem->dev, "%s%d",
   386				     config->name ? : "nvmem",
   387				     config->name ? config->id : nvmem->id);
   388		}
   389	
   390		nvmem->read_only = device_property_present(config->dev, "read-only") ||
   391				   config->read_only || !nvmem->reg_write;
   392	
   393		nvmem->dev.groups = nvmem_sysfs_get_groups(nvmem, config);
   394	
   395		device_initialize(&nvmem->dev);
   396	
   397		dev_dbg(&nvmem->dev, "Registering nvmem device %s\n", config->name);
   398	
   399		rval = device_add(&nvmem->dev);
   400		if (rval)
   401			goto err_put_device;
   402	
   403		if (config->compat) {
   404			rval = nvmem_sysfs_setup_compat(nvmem, config);
   405			if (rval)
   406				goto err_device_del;
   407		}
   408	
   409		if (config->cells) {
   410			rval = nvmem_add_cells(nvmem, config->cells, config->ncells);
   411			if (rval)
   412				goto err_teardown_compat;
   413		}
   414	
   415		rval = nvmem_add_cells_from_table(nvmem);
   416		if (rval)
   417			goto err_remove_cells;
   418	
   419		rval = nvmem_add_cells_from_of(nvmem);
   420		if (rval)
   421			goto err_remove_cells;
   422	
   423		blocking_notifier_call_chain(&nvmem_notifier, NVMEM_ADD, nvmem);
   424	
   425		return nvmem;
   426	
   427	err_remove_cells:
   428		nvmem_device_remove_all_cells(nvmem);
   429	err_teardown_compat:
   430		if (config->compat)
   431			nvmem_sysfs_remove_compat(nvmem, config);
   432	err_device_del:
   433		device_del(&nvmem->dev);
   434	err_put_device:
   435		put_device(&nvmem->dev);
   436	
   437		return ERR_PTR(rval);
   438	}
   439	EXPORT_SYMBOL_GPL(nvmem_register);
   440	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 13043 bytes --]

  reply	other threads:[~2020-02-22 11:54 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-20 10:01 [PATCH v4 0/4] nvmem/gpio: fix resource management Bartosz Golaszewski
2020-02-20 10:01 ` [PATCH v4 1/4] nvmem: fix memory leak in error path Bartosz Golaszewski
2020-02-20 11:30   ` Srinivas Kandagatla
2020-02-20 12:45     ` Bartosz Golaszewski
2020-02-20 10:01 ` [PATCH v4 2/4] gpiolib: use kref in gpio_desc Bartosz Golaszewski
2020-02-20 12:05   ` Srinivas Kandagatla
2020-02-20 12:51     ` Bartosz Golaszewski
2020-02-20 10:01 ` [PATCH v4 3/4] nvmem: increase the reference count of a gpio passed over config Bartosz Golaszewski
2020-02-22 11:54   ` kbuild test robot [this message]
2020-02-23 20:22     ` Bartosz Golaszewski
2020-02-20 10:01 ` [PATCH v4 4/4] nvmem: release the write-protect pin Bartosz Golaszewski

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=202002221921.euxJGwes%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=bgolaszewski@baylibre.com \
    --cc=brgl@bgdev.pl \
    --cc=geert@linux-m68k.org \
    --cc=kbuild-all@lists.01.org \
    --cc=ktouil@baylibre.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=srinivas.kandagatla@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).