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@xxxxxx | M2 3AB VAT:GB 927559189 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/devel