From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Dan Carpenter <dan.carpenter@linaro.org>
Cc: oe-kbuild@lists.linux.dev,
"Srinivas Kandagatla" <srinivas.kandagatla@linaro.org>,
lkp@intel.com, oe-kbuild-all@lists.linux.dev,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
"Robert Marko" <robert.marko@sartura.hr>,
"Luka Perkov" <luka.perkov@sartura.hr>,
"Michael Walle" <michael@walle.cc>,
linux-kernel@vger.kernel.org,
"Randy Dunlap" <rdunlap@infradead.org>,
"Chen-Yu Tsai" <wenst@chromium.org>,
"Daniel Golle" <daniel@makrotopia.org>,
"Rafał Miłecki" <rafal@milecki.pl>
Subject: Re: [PATCH v7 5/7] nvmem: core: Rework layouts to become platform devices
Date: Fri, 4 Aug 2023 17:46:25 +0200 [thread overview]
Message-ID: <20230804174625.4c27fe9a@xps-13> (raw)
In-Reply-To: <20230804173903.2b298cd3@xps-13>
Hi again Dan,
miquel.raynal@bootlin.com wrote on Fri, 4 Aug 2023 17:39:03 +0200:
> Hi Dan,
>
> dan.carpenter@linaro.org wrote on Thu, 3 Aug 2023 13:13:04 +0300:
>
> > Hi Miquel,
> >
> > kernel test robot noticed the following build warnings:
> >
> > https://git-scm.com/docs/git-format-patch#_base_tree_information]
> >
> > url: https://github.com/intel-lab-lkp/linux/commits/Miquel-Raynal/nvmem-core-Create-all-cells-before-adding-the-nvmem-device/20230802-022331
> > base: char-misc/char-misc-testing
> > patch link: https://lore.kernel.org/r/20230801182132.1058707-6-miquel.raynal%40bootlin.com
> > patch subject: [PATCH v7 5/7] nvmem: core: Rework layouts to become platform devices
> > config: x86_64-randconfig-m001-20230730 (https://download.01.org/0day-ci/archive/20230803/202308030002.DnSFOrMB-lkp@intel.com/config)
> > compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
> > reproduce: (https://download.01.org/0day-ci/archive/20230803/202308030002.DnSFOrMB-lkp@intel.com/reproduce)
> >
> > If you fix the issue in a separate patch/commit
> > (i.e. not just a new version of the same patch/commit),
>
> (Nice addition, a lot of newcomers would always add these tags
> otherwise.)
>
> > kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> > | Closes: https://lore.kernel.org/r/202308030002.DnSFOrMB-lkp@intel.com/
> >
> > New smatch warnings:
> > drivers/nvmem/core.c:1003 nvmem_register() warn: 'layout_np' is an error pointer or valid
> > drivers/nvmem/core.c:2130 nvmem_try_loading_layout_driver() warn: 'layout_np' is an error pointer or valid
> >
> > Old smatch warnings:
> > drivers/nvmem/core.c:761 nvmem_add_cells_from_fixed_layout() warn: 'layout_np' is an error pointer or valid
> > drivers/nvmem/core.c:802 nvmem_layout_get() warn: 'layout_np' is an error pointer or valid
> >
> > vim +/layout_np +1003 drivers/nvmem/core.c
> >
> > 266570f496b90d Michael Walle 2023-04-04 1000
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 1001 /* Populate layouts as devices */
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 1002 layout_np = of_nvmem_layout_get_container(nvmem);
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 @1003 if (layout_np) {
> >
> > So, ugh, of_nvmem_layout_get_container() return NULL on error or error
> > pointer if either CONFIG_NVMEM or CONFIG_OF is turned off. I feel like
> > that's a mistake. Normally when a function returns both error pointers
> > and NULL then the NULL means the feature is disabled and the error
> > pointers mean there was an error. Here it is the opposite.
> >
> > I have written a blog about this:
> > https://staticthinking.wordpress.com/2022/08/01/mixing-error-pointers-and-null/
>
> Nice (besides the huge spider which stared at me unexpectedly :-) )
>
> > At first I thought that this was to do with CONFIG_COMPILE_TEST but
> > actually that is disabled. The issue here is that CONFIG_OF is turned
> > off. So this is a genuine bug, we're compiling a module which will
> > always crash.
> >
> > So I guess the fix is easy that this should return NULL if either
> > CONFIG_NVMEM or CONFIG_OF is turned off. That was a long explanation
> > which is no longer required now that it's not a COMPILE_TEST issue. :P
>
> I wanted to disable CONFIG_OF to make the test, I totally forget, I'll
> handle this case and return NULL when this happens.
Actually of_nvmem_layout_get_container() already returns NULL if
CONFIG_OF is not defined. This helper returns either a valid pointer of
NULL. Where can it return an error pointer?
> However I don't understand why you mention CONFIG_NVMEM, because if it
> is not defined, this file will not compile at all?
>
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 1004 rval = of_platform_populate(nvmem->dev.of_node, NULL, NULL, NULL);
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 1005 if (rval)
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 1006 goto err_remove_cells;
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 1007 of_node_put(layout_np);
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 1008 }
> > 00d059fd6702f0 Miquel Raynal 2023-08-01 1009
> > 25c9b5d3aa24a0 Miquel Raynal 2023-08-01 1010 mutex_lock(&nvmem_devices_mutex);
> > 25c9b5d3aa24a0 Miquel Raynal 2023-08-01 1011 list_add_tail(&nvmem->node, &nvmem_devices_list);
> > 25c9b5d3aa24a0 Miquel Raynal 2023-08-01 1012 mutex_unlock(&nvmem_devices_mutex);
> > 25c9b5d3aa24a0 Miquel Raynal 2023-08-01 1013
> > f4853e1c321edb Bartosz Golaszewski 2019-02-15 1014 blocking_notifier_call_chain(&nvmem_notifier, NVMEM_ADD, nvmem);
> > bee1138bea15a6 Bartosz Golaszewski 2018-09-21 1015
> > eace75cfdcf7d9 Srinivas Kandagatla 2015-07-27 1016 return nvmem;
> > 3360acdf839170 Johan Hovold 2017-06-09 1017
> > b985f4cba6dbb3 Bartosz Golaszewski 2018-09-21 1018 err_remove_cells:
> > b985f4cba6dbb3 Bartosz Golaszewski 2018-09-21 1019 nvmem_device_remove_all_cells(nvmem);
> > fa72d847d68d78 Bartosz Golaszewski 2018-09-21 1020 if (config->compat)
> > ae0c2d725512f3 Srinivas Kandagatla 2019-04-16 1021 nvmem_sysfs_remove_compat(nvmem, config);
> > 3360acdf839170 Johan Hovold 2017-06-09 1022 err_put_device:
> > 3360acdf839170 Johan Hovold 2017-06-09 1023 put_device(&nvmem->dev);
> > 3360acdf839170 Johan Hovold 2017-06-09 1024
> > b6c217ab9be689 Andrew Lunn 2016-02-26 1025 return ERR_PTR(rval);
> > eace75cfdcf7d9 Srinivas Kandagatla 2015-07-27 1026 }
> >
>
>
> Thanks,
> Miquèl
Thanks,
Miquèl
next prev parent reply other threads:[~2023-08-04 15:56 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-01 18:21 [PATCH v7 0/7] NVMEM cells in sysfs Miquel Raynal
2023-08-01 18:21 ` [PATCH v7 1/7] nvmem: core: Create all cells before adding the nvmem device Miquel Raynal
2023-08-01 18:21 ` [PATCH v7 2/7] nvmem: core: Do not open-code existing functions Miquel Raynal
2023-08-01 18:21 ` [PATCH v7 3/7] nvmem: core: Track the registered devices Miquel Raynal
2023-08-01 18:21 ` [PATCH v7 4/7] nvmem: core: Notify when a new layout is registered Miquel Raynal
2023-08-01 18:21 ` [PATCH v7 5/7] nvmem: core: Rework layouts to become platform devices Miquel Raynal
2023-08-03 10:13 ` Dan Carpenter
2023-08-04 15:39 ` Miquel Raynal
2023-08-04 15:46 ` Miquel Raynal [this message]
2023-08-04 16:05 ` Dan Carpenter
2023-08-04 16:47 ` Miquel Raynal
2023-08-04 16:02 ` Dan Carpenter
2023-08-01 18:21 ` [PATCH v7 6/7] ABI: sysfs-nvmem-cells: Expose cells through sysfs Miquel Raynal
2023-08-05 14:50 ` Daniel Golle
2023-08-07 7:20 ` Miquel Raynal
2023-08-01 18:21 ` [PATCH v7 7/7] nvmem: core: " Miquel Raynal
2023-08-02 7:40 ` kernel test robot
2023-08-02 12:46 ` Miquel Raynal
2023-08-08 11:30 ` kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2023-08-02 16:49 [PATCH v7 5/7] nvmem: core: Rework layouts to become platform devices kernel test robot
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=20230804174625.4c27fe9a@xps-13 \
--to=miquel.raynal@bootlin.com \
--cc=dan.carpenter@linaro.org \
--cc=daniel@makrotopia.org \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkp@intel.com \
--cc=luka.perkov@sartura.hr \
--cc=michael@walle.cc \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=oe-kbuild@lists.linux.dev \
--cc=rafal@milecki.pl \
--cc=rdunlap@infradead.org \
--cc=robert.marko@sartura.hr \
--cc=srinivas.kandagatla@linaro.org \
--cc=thomas.petazzoni@bootlin.com \
--cc=wenst@chromium.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.