Patchwork device-tree: Drop properties with "/" in their name

login
register
mail settings
Submitter Michael Ellerman
Date May 19, 2010, 12:32 p.m.
Message ID <0958c243b32f5f77028a794a9ce0d55f9a12121e.1274272289.git.michael@ellerman.id.au>
Download mbox | patch
Permalink /patch/52978/
State Accepted
Delegated to: Grant Likely
Headers show

Comments

Michael Ellerman - May 19, 2010, 12:32 p.m.
Some bogus firmwares include properties with "/" in their name. This
causes problems when creating the /proc/device-tree file system,
because the slash is taken to indicate a directory.

We don't care about those properties, and we don't want to encourage
them, so just throw them away when creating /proc/device-tree.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---

Hi Christian, if you could test this new patch that'd be great, thanks!


 fs/proc/proc_devtree.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
Michael Ellerman - May 20, 2010, 1:51 p.m.
On Wed, 2010-05-19 at 22:32 +1000, Michael Ellerman wrote:
> Some bogus firmwares include properties with "/" in their name. This
> causes problems when creating the /proc/device-tree file system,
> because the slash is taken to indicate a directory.
> 
> We don't care about those properties, and we don't want to encourage
> them, so just throw them away when creating /proc/device-tree.
> 
> Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
> ---
> 
> Hi Christian, if you could test this new patch that'd be great, thanks!

And thanks to Christian for testing it:

https://bugzilla.kernel.org/show_bug.cgi?id=15589

Tested-by: Christian Kujau <lists@nerdbynature.de>


cheers
Christian Kujau - June 13, 2010, 7:47 a.m.
On Wed, 19 May 2010 at 22:32, Michael Ellerman wrote:
> Some bogus firmwares include properties with "/" in their name. This
> causes problems when creating the /proc/device-tree file system,
> because the slash is taken to indicate a directory.
> 
> We don't care about those properties, and we don't want to encourage
> them, so just throw them away when creating /proc/device-tree.
> 
> Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
> ---
> 
> Hi Christian, if you could test this new patch that'd be great, thanks!

I've tested the patch, the Badness is gone and the system is stable as 
ever. Will this be pushed to 2.6.35?

Thanks,
Christian.

>  fs/proc/proc_devtree.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/fs/proc/proc_devtree.c b/fs/proc/proc_devtree.c
> index ce94801..d9396a4 100644
> --- a/fs/proc/proc_devtree.c
> +++ b/fs/proc/proc_devtree.c
> @@ -209,6 +209,9 @@ void proc_device_tree_add_node(struct device_node *np,
>  	for (pp = np->properties; pp != NULL; pp = pp->next) {
>  		p = pp->name;
>  
> +		if (strchr(p, '/'))
> +			continue;
> +
>  		if (duplicate_name(de, p))
>  			p = fixup_name(np, de, p);
>  
> -- 
> 1.7.0.4
> 
> 
>
Michael Ellerman - June 13, 2010, 8:15 a.m.
On Sun, 2010-06-13 at 00:47 -0700, Christian Kujau wrote:
> On Wed, 19 May 2010 at 22:32, Michael Ellerman wrote:
> > Some bogus firmwares include properties with "/" in their name. This
> > causes problems when creating the /proc/device-tree file system,
> > because the slash is taken to indicate a directory.
> > 
> > We don't care about those properties, and we don't want to encourage
> > them, so just throw them away when creating /proc/device-tree.
> > 
> > Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
> > ---
> > 
> > Hi Christian, if you could test this new patch that'd be great, thanks!
> 
> I've tested the patch, the Badness is gone and the system is stable as 
> ever. Will this be pushed to 2.6.35?

Hopefully yes :)

Looks like Ben has deferred it to Grant in patchwork, and he is pretty
busy I think with other OF patches ATM. Maybe he'll grab it or Ben can
pick it up .. guys ? :)

http://patchwork.ozlabs.org/patch/52978/

cheers

> >  fs/proc/proc_devtree.c |    3 +++
> >  1 files changed, 3 insertions(+), 0 deletions(-)
> > 
> > diff --git a/fs/proc/proc_devtree.c b/fs/proc/proc_devtree.c
> > index ce94801..d9396a4 100644
> > --- a/fs/proc/proc_devtree.c
> > +++ b/fs/proc/proc_devtree.c
> > @@ -209,6 +209,9 @@ void proc_device_tree_add_node(struct device_node *np,
> >  	for (pp = np->properties; pp != NULL; pp = pp->next) {
> >  		p = pp->name;
> >  
> > +		if (strchr(p, '/'))
> > +			continue;
> > +
> >  		if (duplicate_name(de, p))
> >  			p = fixup_name(np, de, p);
> >  
> > -- 
> > 1.7.0.4
> > 
> > 
> > 
>

Patch

diff --git a/fs/proc/proc_devtree.c b/fs/proc/proc_devtree.c
index ce94801..d9396a4 100644
--- a/fs/proc/proc_devtree.c
+++ b/fs/proc/proc_devtree.c
@@ -209,6 +209,9 @@  void proc_device_tree_add_node(struct device_node *np,
 	for (pp = np->properties; pp != NULL; pp = pp->next) {
 		p = pp->name;
 
+		if (strchr(p, '/'))
+			continue;
+
 		if (duplicate_name(de, p))
 			p = fixup_name(np, de, p);