Subject: Re: Do we still need devtree_lock?

From: Michael Ellerman <[email-masked]>
Date: Wed, 25 Jun 2008 09:25:28 +1000

On Tue, 2008-06-24 at 18:13 -0500, Timur Tabi wrote:
> I'm trying to write a function that gets a list of all aliases
> 
> 	aliases {
> 		serial0 = &serial0;
> 		serial1 = &serial1;
> 		pci0 = &pci0;
> 		pci1 = &pci1;
> 		pci2 = &pci2;
> 	};
> 
> That is, I do not know which aliases are in the /aliases node, so I need a
> function that works somewhat like of_find_property(), but just returns the Nth
> property instead of doing a strcmp.
> 
> I can't seem to find one, so I probably need to write one.  However, I noticed
> that of_find_property() uses a lock:
> 
> 	read_lock(&devtree_lock);
> 	for (pp = np->properties; pp != 0; pp = pp->next) {
> 		if (of_prop_cmp(pp->name, name) == 0) {
> 			if (lenp != 0)
> 				*lenp = pp->length;
> 			break;
> 		}
> 	}
> 	read_unlock(&devtree_lock);
> 
> But the comment for devtree_lock says this:
> 
> extern rwlock_t devtree_lock;	/* temporary while merging */
> 
> Since arch/ppc is going away, does this meant that the lock can go away do?

You wish :)  That /would/ make life easier.

I think the comment just refers to the extern declaration being in
the .c file, rather than a header - ie. now that the merge is done we
should clean it up and put it in a header.

cheers

-- 
Michael Ellerman
OzLabs, IBM Australia Development Lab

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person