lkml.org 
[lkml]   [2011]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 5/8] staging: vme: add functions for bridge module refcounting
    On 08/08/11 10:14, Emilio G. Cota wrote:
    > On Mon, Aug 08, 2011 at 09:01:46 +0100, Martyn Welch wrote:
    >> On 05/08/11 18:47, Emilio G. Cota wrote:
    >>> A driver leaking a resource will then leave a bogus refcount
    >>> Refcounting must be kept simple & stupid; doing it behind the
    >>> backs of the drivers we're trying to protect is a mistake.
    >>
    >> I just simply disagree. Forcing each driver to specifically maintain the
    >> refcount is just stupid when an alternative is possible.
    >
    > Martyn, no one in the kernel is doing what you propose, for
    > good reason. Look at USB, PCI, RapidIO. They all provide get
    > and put functions to be called from probe and release.
    >

    Really, which functions are these for PCI?

    > Doing otherwise is a bug. If a driver needs a resource *not
    > necessarily at .probe time*, it increments the refcount
    > then (in .probe) to make sure that the parent driver won't
    > be removed. IOW if you increase the refcount in the bridge
    > driver only when a resource is requested you're doomed,
    > because when the non-probe request arrives, the bridge driver
    > may have been removed already.. And the kernel gently reminds
    > you of this fact in the form of an oops.
    >

    The probe is going to need to request the resources to access the hardware it
    is designed to control. Hence it will be incrementing the refcount exactly
    when it needs to.

    Martyn

    --
    Martyn Welch (Principal Software Engineer) | Registered in England and
    GE Intelligent Platforms | Wales (3828642) at 100
    T +44(0)127322748 | Barbirolli Square, Manchester,
    E martyn.welch@ge.com | M2 3AB VAT:GB 927559189


    \
     
     \ /
      Last update: 2011-08-08 11:45    [W:2.771 / U:0.048 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site