All of lore.kernel.org
 help / color / mirror / Atom feed
From: Martyn Welch <martyn.welch@ge.com>
To: "Emilio G. Cota" <cota@braap.org>,
	gregkh@suse.de, devel@driverdev.osuosl.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 5/8] staging: vme: add functions for bridge module refcounting
Date: Tue, 09 Aug 2011 15:26:09 +0100	[thread overview]
Message-ID: <4E414381.7070808@ge.com> (raw)
In-Reply-To: <20110809132413.GA9762@becoht-mvanga>

On 09/08/11 14:24, Manohar Vanga wrote:
> Hey Martyn,
> 
>> I think that by refcounting the resources being used we will know whether a
>> bridge module is being used or not, thus whether it can be unloaded or not. By
>> reference counting the use of resources we minimise the chance of poorly
>> written drivers using resources, but not registering the fact that they are in
>> fact using a VME bridge.
> 
> In the end, this discussion is about what we want the bride module reference count
> to represent. I see your point here that it would be really useful to know what
> resources have been allocated. I am just wondering whether the module refcount is
> a good place to give information on allocated resources (rather than the bridge
> module refcount).
> 
> I am not really an expert in these matters but would something like a sysfs file
> be a cleaner approach to providing information on allocated resources within the
> driver?
> 

That would probably be a better idea.

> With this approach, I am also thinking about cases where resources are not allocated
> within the probe call. This can cause issues if the bridge module is removed after
> a successful probe but before the resources are allocated. This would be a direct
> bug :-/
> 
> If we really don't want explicit module refcounting by drivers, can we perhaps use
> the return value of the probe to automatically do this? eg. in vme_bus_probe() like
> below:
> 
>     int ret = 0;
>     ...
>     vme_bridge_get(bridge);
>     if (driver->probe)
>             ret = driver->probe(vdev);
>     if (ret)
>         vme_bridge_put(bridge);
>     return ret;
> 
> Just a thought. Feel free to shoot it down if you think it's the incorrect
> approach :P
> 

After looking at the PCI and RapidIO subsystems, I think this is probably the
correct approach. I guess the only quiestion then is at which point is
vme_bridge_put() called assuming the probe is successful. I guess at module
unload time, though I haven't checked in the PCI and RapidIO code.

(Thank you for your patience)

Martyn

> Thanks!
> 
> --
> /manohar


-- 
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

  reply	other threads:[~2011-08-09 14:26 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-08-01 10:20 [PATCH 0/8] VME Driver Fixes Manohar Vanga
2011-08-01 10:20 ` [PATCH 1/8] staging: vme_user: change kmalloc+memset to kzalloc Manohar Vanga
2011-08-01 10:52   ` Martyn Welch
2011-08-10  7:44     ` Martyn Welch
2011-08-01 10:20 ` [PATCH 2/8] staging: vme: allow explicit assignment of bus numbers Manohar Vanga
2011-08-01 11:10   ` Dan Carpenter
2011-08-01 12:12     ` Manohar Vanga
2011-08-01 13:06   ` Martyn Welch
2011-08-01 14:31     ` Manohar Vanga
2011-08-01 15:50       ` Martyn Welch
2011-08-02 11:54         ` Manohar Vanga
2011-08-02 14:57           ` Martyn Welch
2011-08-03  8:54             ` Martyn Welch
2011-08-04  9:16               ` Manohar Vanga
2011-08-01 10:20 ` [PATCH 3/8] staging: vme: make [alloc|free]_consistent bridge specific Manohar Vanga
2011-08-01 11:10   ` Dan Carpenter
2011-08-01 12:24     ` Manohar Vanga
2011-08-01 13:41   ` Martyn Welch
2011-08-01 13:40     ` Manohar Vanga
2011-08-01 14:00     ` Manohar Vanga
2011-08-01 14:05       ` Martyn Welch
2011-08-01 10:20 ` [PATCH 4/8] staging: vme: keep track of registered buses Manohar Vanga
2011-08-01 10:20 ` [PATCH 5/8] staging: vme: add functions for bridge module refcounting Manohar Vanga
2011-08-03 14:04   ` Martyn Welch
2011-08-03 14:06     ` Manohar Vanga
2011-08-03 15:23       ` Emilio G. Cota
2011-08-04  7:23         ` Martyn Welch
2011-08-04 16:34           ` Emilio G. Cota
2011-08-05  7:45             ` Martyn Welch
2011-08-05  9:04               ` Manohar Vanga
2011-08-05  9:24                 ` Martyn Welch
2011-08-05 17:47                   ` Emilio G. Cota
2011-08-08  8:01                     ` Martyn Welch
2011-08-08  9:14                       ` Emilio G. Cota
2011-08-08  9:42                         ` Martyn Welch
     [not found]                         ` <4E3FABDA.8080204@ge.com>
     [not found]                           ` <20110808101140.GA21300@flamenco.cs.columbia.edu>
2011-08-08 11:06                             ` Martyn Welch
2011-08-08 17:22                               ` Emilio G. Cota
2011-08-08 18:04                                 ` Greg KH
2011-08-09  9:00                                 ` Martyn Welch
2011-08-09 19:19                                   ` Emilio G. Cota
2011-08-10  7:39                                     ` Martyn Welch
2011-08-10  9:15                                       ` Emilio G. Cota
2011-08-10  9:50                                         ` Martyn Welch
2011-08-10 18:35                                           ` Emilio G. Cota
2011-08-09 13:24                   ` Manohar Vanga
2011-08-09 14:26                     ` Martyn Welch [this message]
2011-08-09 14:35                       ` Manohar Vanga
2011-08-09 15:05                         ` Martyn Welch
2011-08-09 18:49                       ` Emilio G. Cota
2011-08-10  6:52                         ` Manohar Vanga
2011-08-01 10:20 ` [PATCH 6/8] staging: vme: rename *_slot_get to *_get_slot Manohar Vanga
2011-08-01 12:29   ` Martyn Welch
2011-08-01 12:31     ` Manohar Vanga
2011-08-09 15:18       ` Martyn Welch
2011-08-09 15:25         ` Greg KH
2011-08-09 15:32         ` Manohar Vanga
2011-08-01 10:20 ` [PATCH 7/8] staging: vme: add struct vme_dev for VME devices Manohar Vanga
2011-08-09 15:19   ` Martyn Welch
2011-08-01 10:20 ` [PATCH 8/8] staging: vme: make match() driver specific to improve non-VME64x support Manohar Vanga
2011-08-03  9:16   ` Martyn Welch
2011-08-03 12:18     ` Manohar Vanga
2011-08-01 14:29 ` [PATCH 0/8] VME Driver Fixes Martyn Welch
2011-08-01 14:32   ` Manohar Vanga
2011-08-23 22:07 ` Greg KH

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=4E414381.7070808@ge.com \
    --to=martyn.welch@ge.com \
    --cc=cota@braap.org \
    --cc=devel@driverdev.osuosl.org \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.