On 19/08/11 09:32, Martyn Welch wrote: > On 13/08/11 09:54, Emilio G. Cota wrote: >> On Fri, Aug 12, 2011 at 12:30:49 +0200, Manohar Vanga wrote: >>> This patch adds functions that allow for reference counting >>> bridge modules. The patch introduces the functions >>> 'vme_bridge_get()' and 'vme_bridge_put()'. >> (snip) >>> +int vme_bridge_get(unsigned int bus_id) >> (snip) >>> +void vme_bridge_put(struct vme_bridge *bridge) >> >> Note the input parameter imbalance; in fact this is serious >> (see my email on patch 5) because _get() needs to acquire >> vme_buses_lock, whereas _put() doesn't. Since a caller with >> bridge has bridge->num, but the opposite doesn't hold (num >> doesn't give you the bridge without acquiring vme_buses_lock), >> it seems reasonable to me to take the bus_id as the input for >> both functions, because the requirements on the caller are lower. >> > > Patch 4 makes changes the struct vme_bridge to struct vme_dev. Looking at the > callers we are then effectively doing: > Patch 5 even. Martyn > vme_bridge_get(vme_dev.id) > > Then in vme_bridge_get(), looping through all the buses to find the one with > the correct id... > > We could just pass in the struct vme_dev to both functions. > > Martyn > >> But the locking needs to be handled with care, see my reply >> to patch 5. >> >> Emilio >> >> _______________________________________________ >> devel mailing list >> devel@xxxxxxxxxxxxxxxxxxxxxx >> http://driverdev.linuxdriverproject.org/mailman/listinfo/devel > > -- 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