lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <11227ab7-9f8e-ae6c-45a7-8c13fa16ebbb@pengutronix.de>
Date:   Mon, 6 Apr 2020 13:29:25 +0200
From:   Ahmad Fatoum <a.fatoum@...gutronix.de>
To:     Srinivas Kandagatla <srinivas.kandagatla@...aro.org>
Cc:     kernel@...gutronix.de, Christian Eggers <CEggers@...i.de>,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2] nvmem: core: don't consider subnodes not matching
 binding

Hello Srinivas,

On 3/23/20 4:28 PM, Ahmad Fatoum wrote:
> The nvmem cell binding applies to objects which match "^.*@[0-9a-f]+$",
> but so far the driver has matched all objects and failed if they didn't
> have the expected properties.
> 
> The driver's behavior in this regard precludes future extension of
> EEPROMs by child nodes other than nvmem and clashes with the barebox
> bootloader binding that extends the fixed-partitions MTD binding to
> EEPROMs as it tries to interpret the "fixed-partitions"-compatible
> partitions node as a nvmem cell.
> 
> Solve this issue by skipping all subnodes that don't contain an @.
> 
> This still allows for cell names like `partitions@0,0', but this
> is much less likely to cause future collisions.
> 
> Signed-off-by: Ahmad Fatoum <a.fatoum@...gutronix.de>
> ---
> v1 -> v2:
>   use ->full_name instead of ->name as to not break existing correct
>   cells (Christian)
> ---
>  drivers/nvmem/core.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
> index ef326f243f36..f051051fb1a8 100644
> --- a/drivers/nvmem/core.c
> +++ b/drivers/nvmem/core.c
> @@ -278,6 +278,8 @@ static int nvmem_add_cells_from_of(struct nvmem_device *nvmem)
>  	parent = dev->of_node;
>  
>  	for_each_child_of_node(parent, child) {
> +		if (!strchr(kbasename(child->full_name), '@'))
> +			continue;
>  		addr = of_get_property(child, "reg", &len);
>  		if (!addr || (len < 2 * sizeof(u32))) {
>  			dev_err(dev, "nvmem: invalid reg on %pOF\n", child);
> 

gentle ping. I'd also appreciate pointers if you wish to have this addressed
differently.

Cheers
Ahmad

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ