Subject: Re: [PATCH 2/2] Use of_get_pci_dev_node() in axon_msi.c

From: Michael Ellerman <[email-masked]>
Date: Tue, 23 Oct 2007 17:36:56 +1000

On Thu, 2007-10-18 at 14:09 -0500, Linas Vepstas wrote:
> On Thu, Oct 18, 2007 at 11:27:23AM +1000, Michael Ellerman wrote:
> > 
> > It does what pci_device_to_OF_node() does, but in the right way. 
> > 
> > The plan is to remove pci_device_to_OF_node() once all the callers have
> > been converted to properly handle the refcounting. 
> 
> Oh. Yes. well, of course, then. Excellent reason. I didn't get 
> that from the patch commit comments. So, FWIW:
> 
> Ack'ed-by: Linas Vepstas <[email-masked]>

Thanks for the ACK. But on further consideration I'm going to NACK my
own patch :)

The reasoning being that a lot of the code that uses
pci_device_to_OF_node() only uses the device_node while it also holds a
reference to the pci_dev - so there's no possibility of the device_node
going away.

So Ben suggested what we really want is two routines,
of_get_pci_dev_node() and of_peek_pci_dev_node() - the former returning
a refcounted copy and the latter allowing you to "peek" at the
device_node as long as you own the pci_dev.

I'm not sure it's worth the churn really, so we should probably just
document that pci_device_to_OF_node() is contrary, and any users that
need a reference can take one explicitly.

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