mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: linas@austin.ibm.com
To: Paul Mackerras <paulus@samba.org>
Cc: linuxppc64-dev@lists.linuxppc.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] 2.6 PPC64 EEH unbalanced dev_get/put calls
Date: Tue, 6 Jul 2004 11:18:50 -0500	[thread overview]
Message-ID: <20040706111850.A21634@forte.austin.ibm.com> (raw)
In-Reply-To: <16614.16478.9599.463185@cargo.ozlabs.ibm.com>; from paulus@samba.org on Sat, Jul 03, 2004 at 03:13:02PM +1000

On Sat, Jul 03, 2004 at 03:13:02PM +1000, Paul Mackerras wrote:
> Linas,
> 
> > This patch fixes some unbalanaced usage of pci_dev_get()/pci_dev_put() calls
> > in the eeh code.  The old code had too many calls to dev_put, which could
> > cause memory structs to be freed prematurely, possibly leading to bad
> > bad pointer derefs in certain cases.
> 
> When I apply this I end up with one pci_dev_get() call in
> __pci_addr_cache_insert_device and no pci_dev_put() calls.  That can't
> be right, surely?  If it is it needs a big fat comment explaining why.


No, that's right. The device is gotten for the length of time that 
it is in the cache, and is put when it is removed from the cache.
In this way, the device is not free()'ed as long as the cache holds 
a reference to it.

I can add a comment, but it seemed 'obvious' from the description of the
cache that it would be holding a reference to the device for an indefinite 
period of time.

The patch was really to fix the result of a misunderstanding of what 
the poorly-named routine "pci_get_device()" does:  yes, it does a get(), 
but it also does a put(), which one wouldn't guess from the name :(

A better name for this might be "pci_next_device()" or 
"pci_obtain_device()" or something like that ...


> > Cross-ref LTC bug 9283
> Confused - that's the bug about not using ibm,fw-phb-id.

Oops.

--linas


      reply	other threads:[~2004-07-06 20:48 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-02 18:45 linas
2004-07-03  5:13 ` Paul Mackerras
2004-07-06 16:18   ` linas [this message]

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=20040706111850.A21634@forte.austin.ibm.com \
    --to=linas@austin.ibm.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc64-dev@lists.linuxppc.org \
    --cc=paulus@samba.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®